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
启动
- Zookeeper 支持Kafka的运行
- Kafka 消息队列启动,业务Push消息到这里
- Redis 用户在线状态、服务状态的缓存服务启动
- Discovery 启动服务注册、发现框架
- logic启动,接收业务Push消息,推送到消息队列
- comet启动,接受用户注册、连接注册、消息下发
- job启动,读取消息队列,发送到comet
测试
通过源代码中的example,测试连通性是否正确,通过RPC的Push接口发送消息测试。
疑问
服务注册发现为什么不用Zookeeper,wiki给出的原因是满足不了集群和对K8S的需求,所以使用了自家基于Netflix框架定制?
为什么Push不走TCP通道,而是HTTP推送,业务渠道的不统一?
读多写少的弹幕、直播间需求可能这样比较适合。