作者:shihuaping0918@163.com,转载请注明作者
pomelo是约定开发的模式,特别是配置部分。有一部分约定字符串写在utils/constans.js里面,有一部分却是硬编码在代码里。这种模式的优点是简洁明了,耦合度低。但是这种模式有一个很大的缺点,就是需要大量的文档来说明这些约定。所以pomelo的文档里有一个很长的篇幅是在介绍pomelo的各种概念,以及各种概念下对应要做什么,要有哪些函数。如果对这些约定不够熟悉,或者是写错了配置的文字,程序就不能正常工作。如果文档不给力,又对源代码不熟悉的话,这会是一个非常头疼的事情。
这里是约定相关的文档:
https://github.com/NetEase/pomelo/wiki/%E9%A3%8E%E6%A0%BC%E4%B8%8E%E7%BA%A6%E5%AE%9A
这里是名词概念:
https://github.com/NetEase/pomelo/wiki/%E6%9C%AF%E8%AF%AD%E8%A7%A3%E9%87%8A
pomelo是微内核+插件的实现方式,由component组成,每个component完成一些特定的事情。pomelo有一些默认启动的component:
connection,connector,session,backendSession,channel,server,monitor。
connector接受外部连接。
connection管理连接。
session是一个连接的抽象表示。
backendSession是后端连接的表示,
channel是临时用户组,主要用来做消息广播。
server初始化,启动,停止服务器。
monitor向master注册自己,接收master的变化信息。
一个比较完备的pomelo服务有gate服务器,connector服务器,backend logic服务器,master服务器。gate服务器接受客户端的连接,做负载均衡,将连接分配到connector服务器。connector服务器接受连接,读取请求,然后路由到后端服务器。backend logic就是后端逻辑服务器,可以有授权,大厅、斗地主,炸金花,日志记录等种类。
下一篇将正式开始分析代码。