架构图

B站弹幕系统架构——GOIM解读-LMLPHP

说明

1.logic启动http服务器, 接受http请求,用于将数据推送到kafka以及获取在线用户信息,websocket身份校验

2.comet组件起动webdocket/tcp服务, 管理连接, 并负责将数据推送至指定连接

3. job组件订阅指定kafka指定频道的消息信息, 开启管道监听(将获得的数据推送到comet当中某个链接上)

从discovery当中找到comet组件

4. discovery负责监控以上组件的活动状态

代码结构:

由于作者应该是修改了项目文件目录结构,导致按照现在的readme文档运行是找不到对应的目录的。

B站弹幕系统架构——GOIM解读-LMLPHP

 说明:(个人理解,不一定准确。欢迎指正)

goim/api:主要定义了comet和logic模块用到的protocal buffer协议。

goim/benchmarks:演示了小部分的使用基准。

goim/cmd:这一部分对应了作者GitHub上readme文档的运行示例部分(如图)

B站弹幕系统架构——GOIM解读-LMLPHP

少了个router文件夹。

goim/docs:分模块文档。

goim/examples:一个前端演示demo,具体实现了什么没看。

B站弹幕系统架构——GOIM解读-LMLPHP

这三个分别是,基础模块包,依赖包,外部依赖运行脚本。

05-17 14:48