如何使用tldb MQ


tldb MQ是基于tldb分布式数据库基础之上的。它的主要侧重点在数据与性能方面,相对来说功能比较少,主要就是订阅主题与发布主题信息

tldb MQ的消息协议格式有两种:一是字节数组,一是字符串json格式

封装在tlmq客户端分别对应的对象是:MqBean{Id,Topic,Msg} JMqBean{"Id":0,"Topic":"","Msg":""}

tlmq客户端目前有4个 分别是JavaPythonGolangJavaScript

tlmq的客户端函数分别有:

函数名称作用用例
Connect连接服务器Connect()
Sub订阅主题Sub("userinfo")
SubCancel取消订阅SubCancel("userinfo")
MergeOn数据集合发送MergeOn(1)
SetZlib数据压缩SetZlib(true)
RecvAckOn客户端回执RecvAckOn(10)
PullIdSync拉取topic的当前IdPullIdSync("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发布topicPubJson("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.comhttp://tlnet.top/contact  发信给我,谢谢!