来源:如何使用tldb MQ

tldb是高性能分布式数据库

  • 主要解决分布式服务问题与数据库集群问题
  • 基于 tldb,可以用最简洁最快的方式搭建分布式服务系统

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的当前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信息


有任何问题或建议请Email:donnie4w@gmail.comhttp://tlnet.top/contact 发信给我,谢谢!


donnie4w
6 声望0 粉丝

Github:[链接]