tldb MQ是基于tldb分布式数据库基础之上的。它的主要侧重点在数据与性能方面,相对来说功能比较少,主要就是订阅主题与发布主题信息
tldb MQ的消息协议格式有两种:一是字节数组,一是字符串json格式
封装在tlmq客户端分别对应的对象是:MqBean{Id,Topic,Msg}
与 JMqBean{"Id":0,"Topic":"","Msg":""}
tlmq客户端目前有4个 分别是
Java
,
Python
,
Golang
,
JavaScript
tlmq的客户端函数分别有:
函数名称 | 作用 | 用例 |
---|---|---|
Connect | 连接服务器 | Connect() |
Sub | 订阅主题 | Sub("userinfo") |
SubCancel | 取消订阅 | SubCancel("userinfo") |
MergeOn | 数据集合发送 | MergeOn(1) |
SetZlib | 数据压缩 | SetZlib(true) |
RecvAckOn | 客户端回执 | RecvAckOn(10) |
PullIdSync | 拉取topic的当前Id | PullIdSync("userinfo") |
PullJsonSync | 拉取topic信息 | PullJsonSync("userinfo",20) |
PullByteSync | 拉取topic信息 | PullByteSync("userinfo",20) |
PullJson | 异步拉取topic信息 | PullJson("userinfo",20) |
PullByte | 异步拉取topic信息 | PullByte("userinfo",20) |
PubMem | 发布topic,不存储信息 | PubMem("userinfo",“this is mem info”) |
PubJson | 发布topic | PubJson("userinfo",“this is json info”) |
PubByte | 发布topic,字节数组 | PubByte("userinfo",[1,0,1,0,1,0,1,0]) |
PullByteHandler | 异步处理PullByte拉取的信息 | 根据需要实现该方法或接口 |
PullJsonHandler | 异步处理PullJson拉取的信息 | 根据需要实现该方法或接口 |
PubByteHandler | 处理PubByte发布的信息 | 根据需要实现该方法或接口 |
PubJsonHandler | 处理PubJson发布的信息 | 根据需要实现该方法或接口 |
PubMemHandler | 处理PubMem发布的信息 | 根据需要实现该方法或接口 |
AckHandler | 处理服务器回执 | 如业务需要确认服务器收到客户端信息,则实现该方法或接口 |
ErrHandler | 处理服务器返回的错误码 | 服务器返回登录信息或客户端协议错误的错误码 |
Before | 链接上服务器时触发该接口 | 根据需要实现该方法或接口 |
可以使用已经实现的客户端连接服务器,也可以根据mq协议自己实现客户端
如何使用tlmq-go 客户端:
1. 引入包 import "github.com/donnie4w/tlmq-go/cli"
sc := cli.NewMqClient("ws://127.0.0.1:5000", "mymq=123")
2. 首先 实例化一个连接对象 ,如果服务器启动tls,第一个参数则是 wss://IP:端口
第二个参数格式 用户=密码
3. 第二 实现接收订阅信息的方法 一个或多个: PubByteHandler , PubJsonHandler , PubMemHandler
sc.PubJsonHandler(
func
(jmb *JMqBean){ logging.Debug(
"PubJson >> "
, jmb) })
PubJsonHandler
对应的发布方法是 PubJson
PubByteHandler
对应的发布方法是 PubByte
PubMemHandler
对应的发布方法是 PubMem
解析:如果有节点通过 PubJson发布了mq信息,如pubjson("logininfo","tom login")
服务器则会把("logininfo","tom login")信息推送到订阅 "logininfo" 的节点上,由节点的PubJsonHandler方法处理
4. 第三 调用 sc.Connect()
连接MQ服务器
5. 第四 sc.Sub("
logininfo
"
)
订阅mq的topic
6. 第五 sc.PubJson(
"
logininfo
"
, "tom login")
发布mq信息
tldb mq的go客户端 :tlmq-go
使用用例:tldbTest
使用用例 地址2:tldbTest
有任何问题或建议请Email:donnie4w@gmail.com或 http://tlnet.top/contact 发信给我,谢谢!