服务器集群信息cd,一个golang推送服务器集群:gopush-cluster - Go语言中文社区

服务器集群信息cd,一个golang推送服务器集群:gopush-cluster


Terry-Mao/gopush-cluster 是一个支持集群的comet服务(支持websocket,和tcp协议)。

特性

轻量级

高性能

纯Golang实现

支持消息过期

支持离线消息存储

支持单个以及多个私信推送

支持单个Key多个订阅者(可限制订阅者最大人数)

心跳支持(应用心跳和tcp keepalive)

支持安全验证(未授权用户不能订阅)

多协议支持(websocket,tcp)

详细的统计信息

可拓扑的架构(支持增加和删除comet节点,web节点,message节点)

利用Zookeeper支持故障转移

安装(版本1.0.5)

一、安装依赖

二、搭建zookeeper

1.新建目录

2.下载zookeeper,推荐下载3.4.5或更高版本

3.启动zookeeper(zookeeper的集群配置在这里不做详细介绍,如果有多台机器,建议做集群)

三、搭建redis

如果如下报错,则安装tcl8.5(参考附资料2)

四、安装git工具(如果已安装则可跳过此步)

参考:git

$yum -y install git

五、搭建golang环境

1.下载源码(根据自己的系统下载对应的安装包)

2.配置GO环境变量 (这里我加在/etc/profile.d/golang.sh)

六、部署gopush-cluster

1.下载gopush-cluster及依赖包

$./dependencies.sh

如果提示如下,说明需要安装谷歌的hg工具(安装mercurial,参考附资料1)

2.安装message、comet、web模块(配置文件请依据实际机器环境配置)

到此所有的环境都搭建完成!

七、启动gopush-cluster

八、测试

1.推送单个私信(例:消息过期时间为expire=600秒)

成功返回:{"ret":0}

2.批量推送私信

成功返回:{"data":{"fk":["t1","t2"]},"ret":0}

字段m是消息体,k是要批量推送的订阅key,每个key用,分割。

3.获取离线消息接口

在浏览器中打开:

http://localhost:8090/1/msg/get?k=Terry-Mao&m=0

成功返回:

4.获取节点接口

在浏览器中打开:

http://localhost:8090/1/server/get?k=Terry-Mao&p=2

成功返回:

九、附资料

1.下载安装hg

如果安装提示找不到文件‘Python.h’ 则需要安装 python-devel

$yum -y install python-devel

如果报错:couldn`t find libraries,则添加环境变量

$exportPYTHONPATH=/usr/local/lib64/python2.6/site-packages

2.安装tcl8.5

配置

web节点的配置文件示例:

comet节点的配置文件示例:

message节点的配置文件示例:

例子

文档

web节点相关的文档:

内部协议主要针对内部管理如推送消息、管理comet节点等。

客户端协议主要针对客户端使用,如获取节点、获取离线消息等。

comet节点相关的文档:

客户端协议主要针对客户端连接comet节点的协议说明。

内部RPC协议主要针对内部RPC接口使用的说明。

message节点的相关文档:

内部RPC协议主要针对内部RPC接口的使用说明。

架构

266b64961f4c4b74cc91af51308dbec1.png

有疑问加站长微信联系(非本文作者)

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_31885875/article/details/119622112
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-12-11 12:26:39
  • 阅读 ( 902 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢