来源:如何使用tldb MQ
tldb是高性能分布式数据库
- 主要解决分布式服务问题与数据库集群问题
- 基于 tldb,可以用最简洁最快的方式搭建分布式服务系统
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 客户端:
引入包 import "github.com/donnie4w/tlmq-go/cli"
sc := cli.NewMqClient("ws://127.0.0.1:5000", "mymq=123")
- 首先 实例化一个连接对象 ,如果服务器启动tls,第一个参数则是 wss://IP:端口 第二个参数格式 用户=密码
第二 实现接收订阅信息的方法 一个或多个: 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方法处理
- 第三 调用 sc.Connect() 连接MQ服务器
- 第四 sc.Sub("logininfo") 订阅mq的topic
- 第五 sc.PubJson("logininfo", "tom login") 发布mq信息
有任何问题或建议请Email:donnie4w@gmail.com或 http://tlnet.top/contact 发信给我,谢谢!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。