前言:Tldb是一个高性能的分布式数据库和MQ服务器,tldb数据库的测重点在于性能和分布式解决方案,通过tldb可以快速搭建分布式系统,
官网有详细介绍
tldb源码地址:https://github.com/donnie4w/tldb
tldb 第二个版本 v0.0.2 发布
该版本主要发布的内容:
- 性能优化。这个版本主要针对客户端数据服务接口与序列化进行性能优化。tldb的客户端与服务器交互的接口使用了thrift,该版本将官方thrift库换成 gothrift,gothrift针对序列化和网络传输上做了优化,在反序列化上,有至少3倍性能的提升,在网络传输上也有大幅度的提高,这与接口参数相关. gothrift的相关介绍在《gothrift 一 go版thrift性能优化项目》
- tldb提供分布式锁的方法。 分布式锁是分布式系统中重要的工具。tldb提供了作用于整个tldb集群的分布式锁,所以多个客户端向 tldb集群中的不同节点可以获取到相同资源的分布式锁。分布式锁的相关方法是lock,trylock,unlock. tldb的锁资源(或者说锁对象)为字符串. 也就是说,tldb对客户端提供的一串字符串进行分布式加锁。在同一时刻,tldb集群中对相同的字符串的分布式锁只有一个。 tldb的分布式锁的用法在《全新的分布式锁,功能简单且强大》中有详细的说明
- tldb对管理后台的界面进行了优化。
- mq的客户端部分增加了subJson(topic)方法,通过该方法,服务器会把所有发布该topic数据,包括非json格式的数据,都转换为json格式,推送到该链接。tldb MQ的使用是非常简洁和灵活的,每个客户端链接都可以设置针对本链接的需要的功能,如,接收的数据格式,是否回执,数据是否聚合发送,是否压缩等。
- MQ的客户端使用在《TLDB MQ客户端使用》《tldb数据库的java客户端如何使用》《如何使用tldb MQ》有比较详细的说明
- 分布式锁的客户端方法在MQ客户端中实现。目前已经实现的mq客户端 java,golang已经同步更新
java MQ客户端tlmq-j 的maven配置为: <dependency> <groupId>io.github.donnie4w</groupId> <artifactId>tlmq-j</artifactId> <version>0.0.2</version> </dependency>
MQ客户端:
- golang:https://github.com/donnie4w/tlmq-go
- java:https://github.com/donnie4w/tlmq-j
- python:https://github.com/donnie4w/tlmq-py
- js:https://github.com/donnie4w/tlmq-js
以下是部分分布式锁的功能测试数据
多线程并发使用自旋的方式调用trylock与lock获取同一个对象锁:
以下是tldb0.0.2部分优化的后台界面:
还没有评论,来说两句吧...