学习微服务首先要学习的组件就是注册中心。
1.为什么需要注册中心
我们知道微服务是将传统的单体架构的业务模块拆分为一个个独立的分布式服务。
不同服务之间我们可以通过UrlConnection,HttpClient,OKhttp等技术进行调用,我们通常会使用Spring提供的RestTemplate进行http通信。
这样不同服务之间可以相互调用传递数据,这样一个低配版的微服务已经可以运行了。
但是还存在一个问题:服务消费者对于服务提供者的url耦合过于严重(例如如果服务过多,服务提供者的地址变动,维护成本过高)。
为了解决这个问题,微服务中引入了注册中心,注册中心可以简单的理解为微服务中的通信录,维护服务的地址。
通常注册中心有三个重要功能:服务注册和发现,服务配置(对于服务信息变更时,需要将旧的信息配置为最新的信息),健康检查。
常用的微服务注册中心有Eureka,Zookeeper,consul,Nacos等,通常我们选择注册中心就是考量实际业务和注册中心对于CAP的支持情况。
2.Eureka简单学习
使用Eureka的步骤:
①搭建EurekaServer:
创建工程,添加EurekaServer依赖,添加配置application.yml,配置启动类
②将服务提供者注册到EurekaServer(服务提供者是EurekaClient)
添加EurekaClient依赖,在application.yml中添加EurekaServer信息,在启动类配置服务发现
使用@EnableEurekaClient或者@EnableDiscoveryClient注解支持服务发现。
③服务消费者从注册中心获取服务列表并调用服务
通过Eureka的元数据获取服务信息,SpringCloud提供的DisCoveryClient.getInstance(service-name)获取List<ServiceInstance>。通过ServiceInstance提供的元数据获取url和port来解耦调用服务提供者。
3.Eureka的高可用
①多个EurekaServer之间相互注册
②把微服务注册到每一个EurekaServer
4.Eureka的自我保护配置
5.Springboot自动装配
6.EurekaServer的执行流程
7.总结
通过黑马程序员的课程学习Eureka的配置,使用方式及Springboot的自动装配原理。