
使用 Redis 的 Key/Map 结构存储数据结构:
- 主 Key 为服务名和类型
- Map 中的 Key 为 URL 地址
- Map 中的 Value 为过期时间,用于判断脏数据,脏数据由监控中心删除:redis key过期监听 - 简书
使用 Redis 的 Publish/Subscribe 事件通知数据变更:
- 通过事件的值区分事件类型:
register,unregister,subscribe,unsubscribe - 普通消费者直接订阅指定服务提供者的 Key,只会收到指定服务的
register,unregister事件 - 监控中心通过
psubscribe功能订阅/dubbo/*,会收到所有服务的所有变更事件
调用过程:
- 服务提供方启动时,向
Key:/dubbo/com.foo.BarService/providers下,添加当前提供者的地址 - 并向
Channel:/dubbo/com.foo.BarService/providers发送register事件 - 服务消费方启动时,从
Channel:/dubbo/com.foo.BarService/providers订阅register和unregister事件 - 并向
Key:/dubbo/com.foo.BarService/consumers下,添加当前消费者的地址 - 服务消费方收到
register和unregister事件后,从Key:/dubbo/com.foo.BarService/providers下获取提供者地址列表 - 服务监控中心启动时,从
Channel:/dubbo/*订阅register和unregister,以及subscribe和unsubsribe事件 - 服务监控中心收到
register和unregister事件后,从Key:/dubbo/com.foo.BarService/providers下获取提供者地址列表 - 服务监控中心收到
subscribe和unsubsribe事件后,从Key:/dubbo/com.foo.BarService/consumers下获取消费者地址列表
Redis在服务注册与发现中的应用
该文介绍了如何使用Redis的Key/Map结构存储服务信息并进行过期监听,以及通过Publish/Subscribe机制实现服务注册、注销等事件的通知。服务提供者和消费者利用特定的Key进行交互,而监控中心则全面监控所有服务的变更事件。
7614

被折叠的 条评论
为什么被折叠?



