Spring Cloud服务治理(一)

前面写了一篇Spring boot使用案例。这一节来入门Spring Cloud Eureka服务治理。Spring Cloud Eureka使用的是Netflix Eureka,然后在其基础之上,对Spring boot做了二次封装。Eureka由两个组件组成:Eureka服务器和Eureka客户端。Eureka服务器用作服务注册服务器。Eureka客户端是一个java客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支持。并且Eureka客户端注册到Eureka服务注册中心后,会每30s发送一次心跳,如果几分钟步伐送心跳。那就会被服务中心移除。这篇文章主要记录Spring Cloud Eureka的注册中心搭建,服务中心搭建,高可用的注册中心以及服务的发现和消费。

客户端搭建

客户端搭建和上一章没什么大的不同,只是做一些配置和加一些依赖.

maven依赖

配置

  • 在Application上加入@EnableEurekaClient
  • 声明一个application.properties文件,指定当前的版本spring.profiles.active=dev,我们这里指定的是开发版本。

2017062814986587448974.png

  • 分别建立上边三个版本的文件,然后在里面配置如下:

现在如果启动,会找不到我们指定的服务中心地址。我们先把服务中心写完在一起运行。

注册中心搭建

加入依赖

创建服务中心和配置

  • 加入服务中心注解@EnableEurekaServer
  • 同创建客户端一样添加配置文件

运行结果

我们打开服务中心地址:

20170628149865946966999.png

发现有一个实例在当前服务中心注册,并且在客户端每隔30s发送心跳到服务端。如下:

20170628149865955678402.png

高可用注册中心

上面我们讲的是单个服务中心的情况,很显然,这不靠谱。生产环境肯定要多个服务中心才行。其实多个服务中心就是大家相互注册,相互绑定。我们现在有两个服务中心,如下:

  • eureka.client.serviceUrl.defaultZone=http://127.0.0.1:8084/eureka

  • eureka.client.serviceUrl.defaultZone=http://127.0.0.1:8083/eureka

  • 客户端指定两个服务中心:eureka.client.service-url.defaultZone=http://127.0.0.1:8083/eureka,http://127.0.0.1:8084/eureka

    然后分别启动这两个实例,我们打开两个服务中心。

20170628149866007491197.png

20170628149866010867447.png

服务中心分别注册了对方,并且,都可以检查到客户端的实例。最重要的要作为一个服务的配置。

服务的发现和消费

Spring Cloud 使用Ribbon来进行服务的负载均衡。在这里,只是提一下,顺便用代码实现一下,看一下效果,毕竟当前我也只学习到这。哈哈。废话不多说,本来写到这不太想写了。但还是好好写完。

添加消费者

添加依赖

配置

添加主函数

编写Controller

启动

启动两个客户端实例,一个注册中心实例,一个消费者实例,像下面这样:

20170628149866412381583.png

然后我们访问一下刚才那个链接:

http://127.0.0.1:9090/product?productId=26

多访问几次,你就看到命令行这样:

20170628149866426523105.png

20170628149866427758874.png

这样负载均衡就实现了。我把客户端代码贴一下,免得一脸懵逼。

  • Controller

  • Service

完事,睡觉了。

Add a Comment

电子邮件地址不会被公开。 必填项已用*标注