Goim单机配置启动简单记录

Goim v2.0.0为例

运行环境:MacOS 10.14

依赖组件、框架

  • Java Kafka依赖
  • Kafka 消息队列
  • Zookeeper Kafka依赖
  • Redis 在线状态、服务状态缓存
  • Discovery 服务注册、发现框架

配置

Redis配置

host=localhost

port=6379

ZooKeeper配置

host=localhost

port=2081

Kafka配置

host=localhost

port=9092

job

job
-conf=goim/cmd/job/job-example.toml
-region=sh
-zone=sh001
-deploy.env=dev

comet

comet
-conf=goim/cmd/comet/comet-example.toml
-region=sh
-zone=sh001
-deploy.env=dev
-weight=10
-addrs=127.0.0.1

logic

logic
-conf=goim/cmd/logic/logic-example.toml
-region=sh
-zone=sh001
-deploy.env=dev
-weight=10

启动

  1. Zookeeper 支持Kafka的运行
  2. Kafka 消息队列启动,业务Push消息到这里
  3. Redis 用户在线状态、服务状态的缓存服务启动
  4. Discovery 启动服务注册、发现框架
  5. logic启动,接收业务Push消息,推送到消息队列
  6. comet启动,接受用户注册、连接注册、消息下发
  7. job启动,读取消息队列,发送到comet

测试

通过源代码中的example,测试连通性是否正确,通过RPC的Push接口发送消息测试。

疑问

服务注册发现为什么不用Zookeeper,wiki给出的原因是满足不了集群和对K8S的需求,所以使用了自家基于Netflix框架定制?

为什么Push不走TCP通道,而是HTTP推送,业务渠道的不统一?

读多写少的弹幕、直播间需求可能这样比较适合。