分布式常用工具组件 distributed-tool

Apache
Java
跨平台
2018-08-16
徐安是个好人

项目介绍

一个分布式常用工具组件。例如:分布式缓存、分布式序列号生成器、分布式锁、分布式订阅发布等等。

软件架构

目前项目分两个module,distributed-tool和distributed-tool-test。前者是核心源码。后者是测试代码。
distributed-tool主要分如下组件:

  1. client 所有的核心组件依赖模块,主要提供了最简单的分布式set、get、del、incre等操作。(V1.0支持)

  2. cache 简单的分布式缓存模块。(V1.0支持)

  3. sequence 分布式序列号生成组件。(V1.0支持)

版本更新

  1. V1.0 支持分布式缓存、分布式序列号生成组件

Maven引用

<dependency>
    <groupId>com.xuanner</groupId>
    <artifactId>distributed-tool</artifactId>
    <version>1.0</version>
</dependency>

使用说明

(1)核心Client使用(一般不建议直接使用,但是后面的所有分布式组件都基于他来开发的,目前使用了Redis来做实现方案)

  • 构建DtClient

protected DtClient buildClient() {
    RedisClient redisClinet = new RedisClient();
    redisClinet.setHost("localhost");
    redisClinet.setPort(1234);
    redisClinet.setAuth("1234");
    redisClinet.init();
    return redisClinet;
}

  • 代码使用

protected DtClient buildClient() {
    DtClient client = buildClient();
    client.set("key", "value", 10);
    client.get("key");
    client.del("key");
    client.exists("key");
}

(2)分布式缓存工具使用

  • 构建CacheClient

protected CacheClient buildCacheClient() {
    DefaultCacheClient defaultCacheClient = new DefaultCacheClient();
    defaultCacheClient.setClient(buildClient());
    return defaultCacheClient;
}

  • 代码使用

CacheClient cacheClient = buildCacheClient();
cacheClient.set("key", "value", 60);
cacheClient.get("key");
cacheClient.del("key");
cacheClient.setBulk(map, 60);
cacheClient.getBulk(list);
cacheClient.del(list);

(3)分布式序列号使用

  • 构建Sequence

protected Sequence buildSequence() {
    DefaultSequence defaultSequence = new DefaultSequence();
    defaultSequence.setClient(buildClient());
    defaultSequence.setStep(1000);//步长,如果需要严格连续序号可以设置:1
    defaultSequence.setStepStart(0);//序列号开始位置
    return defaultSequence;
}

  • 代码使用

Sequence sequence = buildSequence();
sequence.nextId();

后续支持功能

  1. 分布式订阅发布(通知功能)

  2. 分布式锁

联系方式

  1. 姓名:徐安

  2. 邮箱:javaandswing@163.com

  3. QQ:349309307

  4. 个人博客:xuanner.com

的码云指数为
超过 的项目
加载中

评论(2)

卖萌的程序猿
卖萌的程序猿
能对标:Redisson 吗?
如风如水
看着不错,抽空看看代码

常用分布式工具组件 distributed-tool V1.4 发布

分布式常用工具组件 distributed-tool V1.4 发布了,之前版本,只支持redis的单点连接,1.4之后,新增支持了哨兵模式部署的redis连接方式。初始化方式: //哨兵地址端口集合 Set<String> s...

2018/09/05 11:19

分布式常用工具组件 distributed-tool V1.3 发布

本次更新 这次更新改动还是有点大的,稍微重构了底层实现架构,不过对上次API改动不多。主要还优化了用户使用体验。主要更新说明如下: 重构底层实现,使用户使用更加的方便 新增分布式锁(使...

2018/08/31 09:39

分布式常用工具组件 distributed-tool V1.2 发布

本次升级内容 新增queue模块(分布式队列) 重构底层DtClient模块,该模块线程不安全,如果多线程操作,需要自己同步锁,或者新建不同实例 新增全局单例Dt类,初始化一次后,后面使用各组件不...

2018/08/28 09:29

分布式常用工具组件 distributed-tool V1.1 发布

项目介绍 一个分布式常用工具组件。例如:分布式缓存、分布式序列号生成器、分布式锁、分布式订阅发布等等。 目前微服务开发的系统很多,这个就涉及到分布式集群问题。像以前如果是单机,那么...

2018/08/24 11:47

distributed-tool,一个分布式常用工具组件 V1.0 发布

distributed-tool 项目介绍 一个分布式常用工具组件。例如:分布式缓存、分布式序列号生成器、分布式锁、分布式订阅发布等等。后续会持续加入一些常用的分布式(微服务)需要用到的策略和工具...

2018/08/16 09:30

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

分布式工具的一次小升级⏫

![](https://ws4.sinaimg.cn/large/006tNc79ly1fs2s4f0jf4j31g80ytn6i.jpg) ## 前言 之前在做 [秒杀架构实践](https://crossoverjie.top/2018/05/07/ssm/SSM18-seconds-kill/#distributed-r...

2018/06/08 08:42
370
1
常用分布式工具组件 distributed-tool V1.4 发布

分布式常用工具组件 distributed-tool V1.4 发布了,之前版本,只支持redis的单点连接,1.4之后,新增支持了哨兵模式部署的redis连接方式。初始化方式: //哨兵地址端口集合 Set<String> se...

2018/09/05 16:27
1
0
1: Version Control Systems( Introduction to Git )

1: Version Control Systems When you're working with teams, you'll generally be making changes to the same files. Imagine you're working on a project to make a Python script, and...

2016/09/14 13:11
0
0
Hadoop工具箱:到底应该什么时候用哪一个?

开始搞hadoop和spark,有些基本的概念不是很清晰,下面这个博客解释的很好,有时间翻译下,不过看英文也不错:)。 Eight years ago not even Doug Cutting would have thought that the to...

2014/11/14 09:34
24
0
A DISTRIBUTED SYSTEMS READING LIST

『MARK』A DISTRIBUTED SYSTEMS READING LIST 原文:http://dancres.org/reading_list.html Introduction I often argue that the toughest thing about distributed systems is changing t...

03/02 03:00
1
0
AboutMe

## **Basic** - **Tool** ```java 1. java&c/c++/python/golang, etc 2. linux ``` - **Contact** - `wechat:niwenxianq` - `Email:niwenxianq@qq.com` - `address:Beijing, China` - [gitoc...

2017/10/29 18:58
9
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部