求教多个koa服务进程间如何更好的通信呢?
发布于 5 年前 作者 xwwscu 2878 次浏览 来自 问答

各位,请教一个问题: 如果服务端有两个借助Koa搭建的服务,比如服务A和服务B,服务A中有些数据自己暂时用不到,但是服务B需要使用,这个时候服务B中怎么更好的获取到这些数据呢?

17 回复

redis ,你觉得咋样呢

keyword: 微服务

消息队列或者数据库

@ddzyan redis还没用过,之前只是放数据库里了,我应该大体明白你的意思了,感谢

@yuedun rpc,我也想到了,因为目前还没引入redis或者kafka消息队列这些高级的东西,基本仅是Koa+mongo,但如何在服务A不做大的调整的前提下,融入rpc,这个是没想明白的地方,多请教哈,或者有相关学习资料也行哈,感谢

@kzfile 消息队列暂时还未涉及,框架上基本就是koa+mongo,数据库是什么意思?本来数据库是在服务A中创建和修改的,服务B也能连接数据库,但不太想再把服务A中的db一套再复制到服务B中。所以想问下这里数据库方案是指?

@atian25 我理解这里的微服务的意思是把数据那块剥离出去,做成一个单独的服务C,让服务A负责创建,添加数据,服务B去使用数据?

@captainblue2013 看好多小伙伴都提到消息队列了,只是kafka还没用过,可以去学习使用,目前想再多了解几个方案,看看有没有性价比更高的哈,也当一次学习的机会,感谢

数据都在mongo里的话,A服务能连mongo,B服务也能连呀,如果不能连,B服务能访问A服务提供的接口呀,接口也不能连,那就找个能连的服务器当中转,在这里可以是redis也可以是mq

来自酷炫的 CNodeMD

要说最简单的方法那redis应该最简单了,rpc和消息队列都有一定的改造成本

我个人是不太支持不同进程/服务都操作同一个数据库,更倾向 A服务提供接口给B服务去调用然后获取到数据

@zhulinwei 有同感,毕竟数据库没有剥离出去。也想过服务A给服务B提供接口,但也有个没想好的地方,就是如果服务A和B都在一台云主机上,再从服务B给A发http接口请求,总感觉费力不讨好,所以当时想到RPC,但是又没想好rpc如何融入的问题。。。

@FantasyGao 是的,解决方案可以有很多种

@yuedun redis放这里感觉有点大材小用,从业务本身考虑,个人是感觉rpc要合适一些,但是如何在已有服务A上提供rpc接口,这个是没想清楚的地方,所以想请教一下这块。

@xwwscu rpc的话就和微服务有点牵扯了,比如rpc是长连接,1对1的连接,如果你A服务和B服务都部署多台服务器的话此时该怎么去连接?nginx是否支持?如果是短连接的话又回到了restful接口了

回到顶部