服务提供者
Eureka服务治理体系支持跨平台,虽然我们前文使用了Spring Boot来作为服务提供者,但是对于其他技术平台只要支持Eureka通信机制,一样也是可以作为服务提供者,换句话说,服务提供者既可以是Java写的,也可以是python写的,也可以是js写的。这些服务提供者将自己注册到Eureka上,供其它应用发现然后调用,这就是我们的服务提供者,服务提供者主要有如下一些功能:
服务注册
服务提供者在启动的时候会通过发送REST请求将自己注册到Eureka Server上,同时还携带了自身服务的一些元数据信息。Eureka Server在接收到这个REST请求之后,将元数据信息存储在一个双层结构的Map集合中,第一层的key是服务名,第二层的key是具体服务的实例名,我们在上篇文章最后展示出来的截图中,大家也可以看出一些端倪,如下:
同时,我们在服务注册时,需要确认一下eureka.client.register-with-eureka=true配置是否正确,该值默认就为true,表示启动注册操作,如果设置为false则不会启动注册操作。
服务同步
再说服务同步之前,我先描述一个场景:首先我有两个服务注册中心,地址分别是http://localhost:1111和http://localhost:1112,然后我还有两个服务提供者,地址分别是http://localhost:8080和http://localhost:8081,然后我将8080这个服务提供者注册到1111这个注册中心上去,将8081这个服务提供者注册到1112这个注册中心上去,此时我在服务消费者中如果只向1111这个注册中心去查找服务提供者,那么是不是只能获取到8080这个服务而获取不到8081这个服务?大家看下面一张图: