共计 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 客户端:
-
引入包 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 信息
- tldb mq 的 go 客户端:tlmq-go
- 应用用例:tldbTest
- 应用用例 地址 2:tldbTest
有任何问题或倡议请 Email:donnie4w@gmail.com 或 http://tlnet.top/contact 发信给我,谢谢!
正文完