作者:陈刚,叩丁狼高级讲师。原创文章,转载请注明出处。
一.服务治理
服务治理从名字上理解就是对服务的管理,我们知道在微服务架构下,我们的业务模块会被抽成一个个独立的服务,服务治理就是对那些独立的服务实现自动化注册与发现。在服务实例不多的情况下服务之间的通信我们可以使用静态配置来实现服务调用,但是随着服务的不断增多,再加上服务地址的变动,服务名的变动等,使用静态配置就会显得越来越难维护,而服务治理模块就很好的解决了这个问题,服务治理框架有很多,我们学习的是Netflix Eureka。
二.Netflix Eureka
在 Spring Cloud 中我们使用 Netflix Eureka 来实现服务注册与发现,它是一种基于REST的服务,Eureka包含了服务端(Eureka server)和客户端(Eureka client)两部分,Eureka服务端即注册中心,主要用于服务定位,以实现中间层服务器的负载平衡和故障转移,而Eureka客户端主要处理服务的注册与发现,并通过心跳机制来实现服务续约。
例如订单服务(消费者)需要和用户服务(提供者)通信,那订单服务和用户服务都需要在注册中心进行注册,而注册中心的服务注册列表会记录每一个注册过的服务的通信地址,服务ID等相关信息,如果订单服务需要和用户服务进行通信,订单服务需要先向注册中心发起咨询服务请求获取用户服务的通信地址等信息,当订单服务发起调用时就根据拿到的通信地址实现通信。图例: