服务发现原理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


现有架构存在问题:

如果被调用方的地址发生变化怎么办?
修改调用方的代码重新发布,这个是不现实的。
那么怎么让服务消费者感知服务提供者的地址变化呢?

一、服务发现是什么?

服务消费者能够感知服务提供者的地址变化。
现实生活中的例子:你手机存了一个人的两个电话,有一天你发现有一个打不通了,然后你把这个打不通的电话删了,留下了能打通的电话。

二、服务发现原理

形象举例:
在这里插入图片描述
假设,服务发现组件里内嵌了一个mysql,来维护一张表。
1.每个微服务启动都会去给服务发现组件发一条insert sql.
2.微服务content-center 调用user-center 时,content-center会发送给服务发现组件一条sql :select ip from table where service_name=user-center and status=UP;
3.实际每个微服务都会缓存这张表,定时与服务发现同步,实际调用不会每次都请求服务发现组件。
4.微服务会定时给服务发现组件发心跳,如果服务发现组件 发现user-center长时间没有收到一个服务的心跳,则会把这个服务的statu=DOWN
5.content-center微服务同步了服务发现的这个表后,就会发现有个服务的地址发生了变化,就不会调用statu=DOWN的这个user-center了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值