解决问题:若接口更改,服务提供者和服务消费都需要修改,即使Nginx维护也比较繁琐,为解决硬编码问题,所以用服务发现和服务注册解决问题。
服务发现组件的功能:
1.服务注册表
服务注册表是一个记录当前可用服务实例的网络信息的数据库,是服务发现机制的核心。服务注册表提供查询API和管理API,使用查询API获得可用的服务实例,使用管理API实现注册和注销;
2.服务注册
3.健康检查
服务发现方式:
客户端发现:Eureka/Zookeeper
服务端发现:Consul+Nginx
What is Eureka ?
Eureka是一种基于REST(具像状态传输)的服务,主要用于AWS云中定位服务,以实现中间层服务器的负载平衡和故障转移。我们将此服务称为Eureka服务器。Eureka还附带了一个基于java的客户端组件——Eureka客户端,它使与服务的交互更加容易。客户机还有一个内置的负载均衡器,它执行基本的循环负载平衡。在Netflix,一种更为复杂的负载均衡器封装了Eureka,根据流量、resour等几个因素提供加权负载平衡.
Why Eureka ?
在AWS云中,由于其固有的特性,服务器来来往往。与传统的负载均衡器不同,传统的负载均衡器使用已知IP地址和主机名的服务器,而在AWS中,负载均衡器要求在动态地使用负载均衡器注册和注销服务器时更加复杂。由于AWS还没有提供中间层负载平衡器,Eureka填补了中间层负载平衡领域的空白.
github地址:https://github.com/netflix/eureka
应用程序客户机和应用程序服务器如何通信?
通信技术可以是你喜欢的任何东西。Eureka帮助您找到关于您想要通信的服务的信息,但不限制协议或通信方法。例如,您可以使用Eureka获取目标服务器地址,并使用协议,如thrift、http(s)或任何其他RPC机制。