博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Apache Ignite(四):基于Ignite的分布式ID生成器
阅读量:6260 次
发布时间:2019-06-22

本文共 860 字,大约阅读时间需要 2 分钟。

1.Apache Ignite的分布式原子化类型

\

JDK在1.5版本之后,提供了java.util.concurrent包,其中java.util.concurrent.atomic子包中包含了对于单一变量的线程安全的支持lock-free的编程实现。该包中的类,比如AtomicLong,提供了和Long类型相对应的原子化操作,比如一些increment方法,基于这些功能,是可以开发出单JVM的序列生成器这样的功能的,但是对于分布式环境,则无能为力。

\

在Ignite中,除了提供标准的基于键-值的类似于Map的存储以外,还提供了一种分布式数据结构的实现,其中包括:IgniteAtomicLong, IgniteSet, IgniteQueue, IgniteAtomicReference, IgniteAtomicSequence, IgniteCountDownLatch, IgniteSemaphore,这些类除了提供和JDK相同的功能外,就是增加了对分布式环境的支持,也就是支持集群范围内的原子化操作。

\

鉴于本文重点是讨论分布式ID生成器,所有下文的重点在于IgniteAtomicSequence。

\

2.IgniteAtomicSequence

\

IgniteAtomicSequence接口提供了分布式的原子性序列,类似于分布式原子性的Long类型,但是他的值只能增长,他特有的功能是支持预留一定范围的序列值,来避免每次序列获取下一个值时都需要的昂贵的网络消耗和缓存更新,也就是,当在一个原子性序列上执行了incrementAndGet()(或者任何其他的原子性操作),数据结构会往前预留一定范围的序列值,他会保证对于这个序列实例来说跨集群的唯一性。

这个类型的使用是非常简单的,相关代码如下:

Ignite ignite = Ignition.start();\IgniteAtomicSequence seq = ignite.atomicSequence(\"seqName\

转载地址:http://uvhsa.baihongyu.com/

你可能感兴趣的文章
[sublime系列文章] sublime text 3构建系统
查看>>
995. Minimum Number of K Consecutive Bit Flips
查看>>
for-loop 与 json.Unmarshal 性能分析概要
查看>>
C++中new的三种使用方法说明
查看>>
爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
查看>>
Python中_new_方法详解及使用
查看>>
flutter安装开发环境-问题记录
查看>>
mp4文件如何转换为webm格式
查看>>
如何在线创建数据流图(DFD)?
查看>>
腾讯—最新iOS面试题总结
查看>>
CGI,FASTCGI,PHP-CGI,PHP-FPM 概念
查看>>
DApp引荐机制正式上线 | IOST开发者赏金计划
查看>>
【剑指offer】9.二进制中1的个数
查看>>
GIF动画解析RNN,LSTM,GRU
查看>>
前端:开发规范
查看>>
《剑指offer》11.链表中倒数第k个节点
查看>>
老旧话题:重新看看当年感觉很难的session
查看>>
python设计模式-外观模式
查看>>
NEO学习笔记,从WIF到地址
查看>>
C语言之父Dennis Ritchie告诉你:如何成为世界上最好的程序员?
查看>>