Nitro's

Aug 17, 2019 - Comments - dev tech golang

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推送,业务渠道的不统一?

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

Android StartActivity 调用时序图

comments powered by Disqus