# 《分布式IM系统》大后端平台-用户服务-第06节:用户微服务整合Dubbo的流程设计与实现

作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)
源码获取地址:https://t.zsxq.com/0dhvFs5oR (opens new window)
课程视频:https://t.zsxq.com/175utW8w0 (opens new window)

沉淀,成长,突破,帮助他人,成就自我。

  • 本节难度:★★☆☆☆
  • 本节重点:用户微服务整合Dubbo对外提供获取用户基本信息的接口,以便好友微服务和群成员等调用,掌握SpringCloud Alibaba技术栈中Dubbo整合Nacos的实现方案和编码技巧,并能够将其灵活应用到自身实际项目中。
  • 课程视频:https://t.zsxq.com/175utW8w0 (opens new window)

大家好,我是冰河~~

在分布式IM即时通讯的大后端平台中,每个微服务并不是孤立的,各个微服务之间也会存在数据交互,考虑到各个微服务之间的性能问题。我们选取了Dubbo3作为各个微服务之间的数据通信框架,并且采用Nacos作为服务注册中心,实现服务的注册与发现。

# 一、前言

经过不断地迭代,目前,对于分布式IM即时通讯系统的大后端平台的用户微服务来说,功能已经越来越完善,考虑到我们已经将大后端平台拆分成了用户微服务、好友微服务、群组微服务和消息微服务,并且每个微服务并不是孤立存在的,各个微服务之间也是有数据交互。

对于用户微服务来说需要对外提供获取用户基本信息的接口,以便好友微服务和群组微服务中的群成员功能调用,所以,用户微服务需要整合Dubbo框架对外提供基本的服务

# 二、本节诉求

用户微服务整合Dubbo对外提供获取用户基本信息的接口,使用Nacos作为注册中心,掌握SpringCloud Alibaba整合Dubbo以及Dubbo整合Nacos的落地实现方案,并结合自身实际业务场景思考,将本节学到的知识灵活应用到自身实际项目中。

# 三、调用流程

用户微服务整合Dubbo后,作为服务提供者会将获取用户基本信息的接口注册到Nacos注册中心,后续供好友微服务和群组微服务调用,整体流程如图6-1所示。


可以看到,在整个调用流程中,用户微服务作为服务提供者,好友微服务或者群组微服务作为消费者。

用户微服务会将接口注册到Nacos注册中心,而好友微服务或者群组微服务会订阅Nacos注册中心的服务,当感知到Nacos注册中心的服务后,会将服务的列表缓存到本地,随后,好友微服务或者群组微服务会直接远程调用用户微服务的接口来获取数据。

当用户微服务注册到Nacos注册中心的服务数据发生变更时,好友微服务或者群主微服务能够及时感知到。

# 四、编码实现

用户微服务整合Dubbo的具体编码实现步骤如下所示。

# 4.1 引入相关依赖

在顶级父工程的pom.xml文件中,引入如下依赖。

# 查看完整文章

加入冰河技术 (opens new window)知识星球,解锁完整技术文章与完整代码