1.Eureka服务治理
在上一系列中,我们以最简单的业务场景急速入门了微服务,当然了,忽略了很多的细节,作为入门是可以的,但是真正使用的时候,还是需要了解很多额外的使用知识,所以本系列就孕育而生,即在上一系列的基础上继续强化,加深对spring cloud的使用理解。本章首先还是介绍eureka服务注册和发现组件,因为它是微服务的基石。
关于Eureka
的基本使用,在另外一篇文章中详细介绍了:7.天气预报系统-微服务的注册和发现,不再赘述。本章学习如何搭建一个eureka
高可用集群。
一、前言
首先来看看Eureka
高可用的架构。
其中,续约是指:服务端维持一个有过期时间的服务列表,当客户端访问一次,我就刷新一下过期时间。
1 | # 90秒不来续约就剔除 |
在客户端也可以设置一个定时任务,每隔多长时间去请求一下服务器,刷新一下服务列表:
1 | # 默认每隔30去请求一下服务器 |
二、总结
Eureka
包含两个组件:Eureka Server
和 Eureka Client
,它们的作用如下:
Eureka Client
是一个Java客户端,用于简化与Eureka Server
的交互;Eureka Server
提供服务发现的能力,各个微服务启动时,会通过Eureka Client
向Eureka Server
进行注册自己的信息(例如网络信息),Eureka Server
会存储该服务的信息;- 微服务启动后,会周期性地向
Eureka Server
发送心跳(默认周期为30秒)以续约自己的信息。如果Eureka Server
在一定时间内没有接收到某个微服务节点的心跳,Eureka Server
将会注销该微服务节点(默认90秒); - 每个
Eureka Server
同时也是Eureka Client
,多个Eureka Server
之间通过复制的方式完成服务注册表的同步; Eureka Client
会缓存Eureka Server
中的信息。即使所有的Eureka Server
节点都宕掉,服务消费者依然可以使用缓存中的信息找到服务提供者。
三、集群配置
Server1端配置文件:
1 | server: |
Server2端配置文件:
1 | server: |
就是说两个server
互相注册。形成一个server
集群。
client1配置文件:
1 | server: |
client2也是如此。
1 | server: |
分别启动之后,我们会看到效果:
关于本系列的所有代码,将按照1-10的章节依次存放在:https://github.com/sunweiguo/swgBook-for-spring-cloud/tree/master/spring-cloud-modules 后面不再赘述。