目录
一.概念
服务提供者:服务的被调用方(为其他微服务提供接口的微服务) Server
服务消费者:服务的调用方(调用其他微服务接口的微服务) Client
这两者的界限并不是特别明显,服务提供者也可能在某个场景是服务消费者。
二.应用场景
以微服务互相调用为前提,有服务A和B,假设有一业务A调用B,之后需求更改,服务B的地址需要改变,那该怎么办?
首先想到一个模型来解决这个服务之间调用的问题。在数据库中可以表示为:
id | server_name | ip | port | status |
---|---|---|---|---|
1 | user_center | 192.168.1.1 | 8080 | UP |
2 | aply_center | 192.168.1.2 | 8084 | UP |
在代码中可以通过user_name来获取ip等其他信息,构造url访问其他微服务。
但是这个服务发现有以下问题:
每次调用都需要访问这张表,如果此数据库数据挂了,会导致全部微服务都调用不了。
所以需要由一个服务注册中心,将服务全部注册到一个地方,本地将服务缓存到本地,定时刷新缓存。
这样就可以直接去访问其他微服务,即使服务发现组件崩溃,也可以使用本地缓存区访问,只是缓存不会刷新。
微服务通过向服务发现组件发送心跳(证明自己运行正常)来保证程序运行正常,如果长时间不发送,数据库模拟中会将status标记为down,在服务发现组件中,也会将微服务状态设置为不可用。
三.Nacos(Nacos文档)
1.什么是Nacos
是一个服务发现组件,同时也是一个配置服务器。
他解决了服务A如何找到服务B的问题,管理服务的配置。
每个微服务都需要引入Nacos client,将自己注册到Nacos Server。
2.搭建Nacos
下载Nacos: