什么是服务注册
服务注册是一种目录服务,有利于服务的定义,服务的选择和在执行服务政策
通俗点讲,比如我们 (服务) 去餐厅 (注册中心) 吃饭,每个餐桌都有一个编号 (服务注册属性) 对应我们 (服务),这样服务员就可以通过编号找到我们,再进行点餐、结账操
Spring Cloud 怎么实现服务注册
在构建 Spring Cloud 微服务项目的时候,我们通常会在服务启动类加上 @SpringCloudApplication 注解并在配置文件中写上 spring.cloud.discovery 指定服务注册地址来实现服务注册,这服务注册看似很简单嘛(🙂)。那 Spring Cloud 做了哪些让我们服务注册很简单呢?带着这个疑问我们来一步步揪出罪魁祸首。
首先看 SpringCloudApplication 注解,在这类中有一个 @EnableDiscoveryClient (开启服务发现客户端) 注解
1 | /** |
那为啥引用 @EnableDiscoveryClient 注解就可以实现服务发现呢,我们再来看看 EnableDiscoveryClient 类中做了些什么
1 | /** |
从 EnableDiscoveryClient 类中我们可以看到定义了 autoRegister 方法,默认返回 true,并且它还引用了 EnableDiscoveryClientImportSelector 类,那这个类做了什么值得 EnableDiscoveryClient 去引用呢