# 《分布式IM系统》大后端平台-群组服务-第02节:群组微服务整合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/17hBjPsAC (opens new window)

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

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

大家好,我是冰河~~

群组微服务是分布式IM即时通讯大后端平台的核心服务之一,承载着群组和群成员相关的业务,在整个分布式IM即时通讯系统中,群组微服务并不是孤立存在的,需要跟用户微服务和好友微服务进行数据交互,并且需要提供接口供其他微服务调用。

# 一、前言

在前面的文章中,我们已经对群组微服务的主要功能进行了设计和实现,在整个实现的过程中,群组微服务会承接群组和群成员相关的业务,并且需要与大后端平台的其他微服务进行交互。对群组微服务来说,在整个技术栈的选型上,也需要整合Dubbo对外提供服务,调用用户微服务和好友微服务的接口来完成整个交互流程。

# 二、本节诉求

对群组微服务整合Dubbo的流程进行设计和实现,通过Dubbo调用用户微服务来获取用户的基本信息,调用好友微服务来获取用户的好友信息,并通过Dubbo对外提供服务,掌握SpringCloud Alibaba技术栈中Dubbo整合Nacos的实现方案和编码技巧,并能够将其灵活应用到自身实际项目中。

# 三、调用流程

群组微服务整合Dubbo后,既作为服务提供者将自身服务注册到Nacos注册中心,又作为服务消费者订阅Nacos中的服务,整体流程如图2-1所示。


可以看到,群组微服务在整个大后端平台中,既作为服务提供者将服务注册到Nacos注册中心,供其他服务订阅。也会作为服务消费者订阅用户微服务和好友微服务注册到Nacos注册中心的接口,调用用户微服务的接口获取用户的基本信息,调用好友微服务的接口获取用户的好友消息。

# 四、编码实现

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

# 4.1 引入Dubbo依赖

在bh-im-platform-group-domain工程下的pom.xml文件中将引用bh-im-platform-common工程的配置更新为引用bh-im-platform-dubbo工程,如下所示。

<dependency>
    <groupId>io.binghe.im</groupId>
    <artifactId>bh-im-platform-dubbo</artifactId>
    <version>${project.version}</version>
</dependency>
1
2
3
4
5

# 4.2 服务提供者

当群组微服务作为Dubbo提供者时,需要对外提供检测群组是否存在,获取指定的群成员,获取某个群中的成员ID列表,以及获取某个用户在各个群组的信息等。此时,就需要定义一个GroupDubboService来对外提供这些服务。

# 查看完整文章

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