商城抢购。现在开启了3条进程,那多条线程就出现问题。想把抢购的接口只用其中一条线程同步队列处理。能实现?

sbjwwjsm

实现的逻辑:某个接口只用一个进程。

3100 9 0
9个回答

walkor

可以每个接口开一个端口,进程数count=1

  • 暂无评论
sbjwwjsm

一个服务器端 就一个。客户端比如一个游戏客户端的接口得有好多。那就得开好多进程了。

  • 暂无评论
walkor

又要接口只用一个进程处理,又不想开很多进程,这是矛盾的。

  • 暂无评论
sbjwwjsm

就是在onMessage 中收到是某个接口时固定用某个进程

  • 暂无评论
walkor

你可以开固定数量的端口,比如10个端口,每个端口一个进程。
客户端根据接口名hash(或者其它算法)到这10个端口,能保证每个接口固定在一个进程内处理

  • 暂无评论
sbjwwjsm

是一种方法。开10个进程里 里面是怎么分配进程的? 轮询还是??

  • 暂无评论
walkor

每个端口一个进程啊。
客户端自己决定发给哪个端口,那就发给哪个进程。算法可以自己写

  • 暂无评论
sbjwwjsm

不想在客户端分配好,想在服务器端自定义分配

  • 暂无评论
walkor

上面的方法最简单。

但不是唯一的方法。
比如:建立一个接入层进程组,还有一个逻辑层进程组。逻辑层进程组启动后链接接入层进程组,
接入层进程组根据请求类型发给特定的逻辑层进程组的某个进程处理。

比如:你也可以利用Channel组件,基于订阅机制,将某个进程收到的消息转发给特定的某个进程处理

其它...

做到这些需要多一些开发工作

  • 暂无评论
年代过于久远,无法发表回答
🔝