**w:**哦,你在一个配置文件里面把整个部署的情况都写在里面,然后所有的进程通用一份配置,不管是否部署在同一台物理机子上,只要进程的PID不同就行了,可以这么理解吗?
**q:**完全正确
**w:**进程启动命名是什么格式?
**q:**server -pid [ProcessID 进程ID] -conf [配置文件路径] -log [日志目录]
例如下面的例子:
Login的一个模块被分配到了 pid=login 的进程中运行 Chat的一个模块被分配到了 pid=chat01 和 pid=chat02 的两个进程中运行
"Login":[
{
"Id":"Login001",
"ProcessID":"user",
"Redis":{
"Uri" :"redis://:xxx@xxx:6379/10",
"Queue" :"Login001"
}
}
],
"Chat":[
{
"Id":"Chat001",
"ProcessID":"chat01",
"Redis":{
"Uri" :"redis://:xxx@xxx:6379/10",
"Queue" :"Chat001"
}
{
"Id":"Chat002",
"ProcessID":"chat02",
"Redis":{
"Uri" :"redis://:xxx@xxx:6379/10",
"Queue" :"Chat002"
}
}
],
结贴
借这串问个问题,如果是部署到不同的物理机,需要先启动一个新的Gate module进程配置吗?
@shinjuwu 没太看懂你想表达什么意思,分布式一般不分物理机,只要保证rpc能相互通就行
@liangdas 我的意思是,如果刚好配置在不同的新物理机,那不同物理机的ip要怎麽填? 是新增不同的gate模组来填吗?
mqant里面不需要管物理机IP,只需要管rpc通道的配置,例如你用redis做rpc,那么只需要保证各个物理机能连通redis就行
噢噢噢!! 我有点理解了!! 谢谢群主,我来试试看先!!!
mqant 是怎么保持一致性的 求大佬赐教!!!
@liangdas mqant 是怎么保持一致性的 求大佬赐教!!! 例如: login模块 启动了 A和B 两个进程 玩家 C的请求 由A处理 那么B 是如何 知道C 已经登录了 如何保持这两个 进程中的数据一致?
数据一致性不应该由框架来保证,而是项目自身去保障,这样不做深入讨论
有几个疑问,希望楼主可以解答 1.server部署是必须每次都要手动把每个模块的进程启动起来吗 2.redis server是跟随启动起来的模块一起启动的吗,如果在不同的物理机启动模块,那就是每个物理机都会启动一个redis server吗 3.redis client可以理解成是运行在master服务器上的吗,接收所有的请求然后推送到redis由其他链接redis的server执行
第一个问题答案是 每次都要手动把每个模块的进程重新启动
后面两个问题,你可以先了解一下redis的用法,我不做解释了