置顶 mqant分布式部署启动和配置思路
发布于 9 个月前 作者 liangdas 1482 次浏览 最后一次编辑是 8 个月前 来自 分享

**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"
                    }
               }
           ],
10 回复

借这串问个问题,如果是部署到不同的物理机,需要先启动一个新的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的用法,我不做解释了

回到顶部