关于数据库:如何使用tldb-MQ

7次阅读

共计 1926 个字符,预计需要花费 5 分钟才能阅读完成。

起源:如何应用 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 客户端:

  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 发信给我,谢谢!

正文完
 0