Spring Cloud 那些事之Spring Cloud 学习笔记二:SpringCloud之Eureka-Service集群搭建

1.Spring-boot之Eureka-Service集群搭建

Eureka是Spring Cloud提供的众多模块中的一个,它主要用于服务管理,对服务进行分布式和集群,Eureka提供了服务器端和客户端,服务端致力于服务列表的维护和后台管理,客户端分为提供者(provider消费者(consumer)。

每一个客户端将自己注册到服务器端之后,其余的客户端就能检索发现对应的服务,所以提供者消费者是针对调用关系来说的,实际上每一个客户端都可以同时作为提供者消费者。如图简易的集群结构所示,一个Eureka服务器端,两个Eureka客户端(两个作为提供者,一个作为消费者),来演示具体的调用过程。

2创建Eureka服务器端

使用https://start.spring.io/  链接创建三个springCloud的maven工程,在Selected Dependencies选择需要的服务,至少包涵以下服务web,Eureka Server, Ribbon如图所示,把三个工程解压到同一个工作目录下,启动intellij idea把工作目录切换到该目录,然后给每个工程添加maven管理(具体步骤详见:intiallije idea中配置spring-boot并启动文档)。如图所示。

打开resource目录新建文件application.yml,在文件中进行服务配置,配置如下:

server:
  port: 8810

eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

其中port: 8810表示启动占用端口号,可以随意配置。

Hostnamelocalhost服务的名称,也可以随意配置

registerWithEureka 表示是否将自身注册到服务器,false表示不将自身注册,true将自身注册,这里不注册。

fetchRegistry :如果为true,启动时会报警。

http://${eureka.instance.hostname}:${server.port}/eureka/:注册中心默认端口就是8761,可通过这句来定义选择其他端口号(网上这么说的,但是亲测,此句不要也可以选择其他端口号)。

完成了上面的配置和代码编写,就可以启动我们的eureka-server了,运行EurekaService的main()方法,访问http://localhost:8810,在浏览器看到我们的后台管理页面,Eureka服务器端就搭建完成了。

 

3创建Eureka客户端的提供者(Eureka-Provider)

同第2节类似,打开springCloud1.02工程中的application.java文件,修改文件名为EurekaProvider,其他不变。

创建provider案例:在同一个目录下创建ApplicationProviderController.java和user.java如图所示

在resource目录下配置application.yml

spring:

  application:

    name: eureka-provider



eureka:

  client:

    serviceUrl:

      defaultZone: http://localhost:8810/eureka/

 其中defaultZone: http://localhost:8810/eureka/:表示向Eureka-server注册服务。
如图:

运行EurekaProvider的main()方法,启动成功后访问http://localhost:8080/search/1,这里没有配置端口,就默认使用了8080端口,在浏览器端可以看到控制器返回的数据。

刷新访问http://localhost:8810,可以看到我们的服务提供者已经注册到Eureka服务器了。

 

4创建Eureka客户端的消费者

同第三节一样,打开springCloud1.03工程中的application.java文件,修改文件名为EurekaConsumer,其他不变。

创建consumer消费者案例:在同一个目录下创建ApplicationConsumerController.java,住已配置负载均衡,RestTemplate是Spring框架里面提供的,它可以自动配置去使用Ribbon。要创建一个负载均衡的RestTemplate,使用创建RestTemplate的Bean组件(@Bean)并使用@LoadBalanced限定符。

在src/main/resources下创建application.yml,写明自己的服务名称和需要注册到那个Eureka服务器上,并配置属于自己的端口。

 
server:

  port: 8811


spring:

  application:

    name: eureka-consumer

eureka:

  client:

    serviceUrl:

      defaultZone: http://localhost:8810/eureka/

 运行EurekaConsumer的main()方法,启动成功后访问http://localhost:8811/consumer,在浏览器端,我们可以看见eureka-consumer成功调用了eureka-provider的方法。

再次访问http://localhost:8810,我们可以看到eureka-server控制台上维护着两个Eureka客户端

自此,集群配置成功。 

完整代码地址:https://github.com/ZFCC/springCloud1.0.1

https://github.com/ZFCC/springCloud1.0.2

https://github.com/ZFCC/springCloud1.0.3

有关springCloud的更多更新内容,请移步:个人博客   https://zfcc.github.io/   (Spring Cloud 技术标签)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值