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

实现的逻辑:某个接口只用一个进程。
2017-01-04 14:58 添加评论 分享
已邀请:

最佳回复

0

walkor

赞同来自:

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

sbjwwjsm

赞同来自:

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

walkor

赞同来自:

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

sbjwwjsm

赞同来自:

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

walkor

赞同来自:

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

sbjwwjsm

赞同来自:

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

walkor

赞同来自:

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

sbjwwjsm

赞同来自:

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

walkor

赞同来自:

上面的方法最简单。

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

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

其它...

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

要回复问题请先登录注册

退出全屏模式 全屏模式 回复