版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013037201/article/details/76974610
我门在上篇遗留了两个问题:
一个是如何解决硬编码的问题,另一个是如何解决负载的问题?
由这两个问题,我们引出服务发现和服务注册的概念,这两个问题也将在后面更新的博文中一一浮出水面。
服务发现:
原理描述:将服务消费者和服务提供者都注册到服务发现组件上,然后服务消费者定时向服务发现组件发送心跳。然后对服务提供者进行调用。即使服务发现组件挂掉了,服务消费者依然能够调用服务提供者。即使有多个服务提供者,也能够都注册到服务发现组件,让服务发现组件对其进行管理。很好地解决了负载的问题。
服务发现的方式:
分为客户端发现和服务器端发现:
客户端发现常用有Eureka和Zookeeper,服务器端发现有Consul+nginx
服务发现组件的功能:
目前市场上的书籍,服务注册、服务发现、注册中心,在很多场景下,都可以理解为是服务发现组件。功能包括服务注册表,服务注册和健康检查。
服务注册表示一个记录当前可用服务实例的网络信息的数据库,是服务发现机制的核心。服务注册表提供查询API和管理API,使用查询API获得可用的服务实例,使用管理API实现注册和注销。
更多关于此内容,有一篇微服务系列的文章讲得非常不错。http://blog.daocloud.io/microservices-4/