本来前几天就想开始写springcloud的学习心得,因为电脑坏了,所以今天才有空。
springcloud可以基于springboot进行微服务的开发
今天我们先介绍:Eureka服务注册于发现
springcloud集成了Eureka,提供了开箱即用的功能,其中Eureka又分为Eureka Server和Eureka Client。
服务启动后向Eureka注册,Eureka Server会将注册信息向其他Eureka Server进行同步,当服务消费者要调用服务提供者,则向服务注册中心获取服务提供者地址,然后会将服务提供者地址缓存在本地,下次再调用时,则直接从本地缓存中取,完成一次调用。
服务提供者在启动后,周期性(默认30秒)向Eureka Server发送心跳,以证明当前服务是可用状态。Eureka Server在一定的时间(默认90秒)未收到客户端的心跳,则认为服务宕机,注销该实例。
分布式系统中为什么需要服务注册呢?
可以用一个或者多个Eureka Server来接受 Client的注册,即拥有了当前所有的注册成员信息,当需要一个Client时即可以去服务中心中取,因为30s的心跳检测,所以服务中心能及时更新现存的client服务数量,并记录他们的地址
服务中心Eureka Server究竟部署一个好还是多个好呢?
答案是肯定的:多个,如果是一个,一旦超过请求的负荷就可能崩溃,导致整个服务的请求崩溃,多个可以做到负载均衡的作用
那多个Eureka Server之间如何相互订阅,形成一个Server集群呢?
1.首先:对每个Server设置不同的端口号
2.每个Server去订阅其他所有的端口号
重要代码:
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka,http://localhost:8761/eureka