hazelcast教程-入门

最近一直在研究hazelcast,被hazelcast简单的API操作和丰富的功能所震撼,但是困于中文文档的匮乏,所以想要编写一些关于hazelcast的一些教程文档,想要把hazelcast的功能详细的描述给大家。而这篇文档就是hazelcast的基本入门文档。

hazelcast是什么

hazelcast按照官网的介绍是基于内存的数据网格系统(In memory data grid)。基于内存的讲就是数据全部保存在内存中(比如memcached),网格系统是采用内存作为存储结构,并使其分布到多个服务器上,该方法的目的是更容易获取数据、改进其可扩展性和更好地进行数据分析。

hazelcast能做什么

hazelcast提供了丰富的功能:

分布式缓存

AtomicLong

AtomicReference

CountDownLatch

Cardinality Estimator Service (HyperLogLog)

IdGenerator

List

Lock

Map

MultiMap

Queues

Replicated Map

Ringbuffer

Semaphores

Set

Topic and ReliableTopic

分布式计算

Entry Processor

Executor Service

Scheduled Executor

Partition Predicate

User Defined Services

Fast Batch and Stream Processing

分布式查询

Fast Aggregations

Continuous Query

Listener with Predicate

Query

集成集群

Hibernate Second Level Cache

Tomcat Clustered Web Sessions

Jetty Clustered Web Sessions

Grails 3

Hazelcast JCS Resource Adapter

独立平台功能

JCache

Apache jclouds Support

看了上面这么多功能,是不是感觉有点头晕,没事,之后我会慢慢给大家讲解的。学习java的童鞋看了上面的功能是不是感觉很熟悉,没错,那就是很像java.util.*包下一些经常使用的API,但是他们并不是java自带的功能。而是hazelcast封装的一些对象,使得他们拥有分布式对象的能力,同时又可以让我们想操作map、list、set一样来操作方法。

查看更多...

hazelcast特性

横向拓展: 每一个节点都可以给集群提供cpu

弹性: 每个节点都允许宕机而没有数据的损失,并且不影响运行的应用程序

编程模型: 对于开发者来说非常容易的进行集群创建和拓展,就好像单节点一样简单

快速的、大数据: 允许非常大的数据操纵在内存中

动态拓展: 节点可以动态的添加到一个集群中

弹性主内存: 每一个节点RAM内存到集群中

基于内存的数据网络经常被用于缓存数据库的数据,来提高应用程序的性能,现在市面上比较出名的No-Sql数据库当属memcache和redis。memcache支持k/v数据结构,数据保存在内存中,每一个节点都是相互不可知,需要客户端来做负载均衡。redis支持k/v、set、list、zset、hash等数据结构,并且支持数据的持久保存,可以搭建集群架构。而hazelcast相对memcache和redis来说,提供了许多他们没有的功能,如分布式锁、分布式队列、分布式主题、分布式闭锁、分布式map等众多分布式工具类,方便在分布式环境下进行数据的操作。

hazelcast没有主节点和从节点之分,所有的节点都是平等的,所依当一个节点宕机之后,不会影响到应用程序。集群中的节点会备份各自节点部分的数据,当一个节点宕机之后,其他的节点会重新分区,恢复宕机节点数据。

hazelcast怎么使用

首先将hazelcast的dependency复制到项目pom.xml文件中,如果非maven项目,可以下载这两个jar复制到lib包即可,hazelcast没有依赖其他的jar包,使用非常方便。

com.hazelcast

hazelcast

3.8.5

com.hazelcast

hazelcast-client

3.8.5

代码集成

hazelcast提供了两种方式来使用hazelcast。

内嵌模式

在代码中直接开启hazelcast服务

Config config = new Config();

HazelcastInstance instance = Hazelcast.newHazelcastInstance(config);

客户端/服务端模式

在服务端开启hazelcast服务,然后客户端连接服务端。

ClientConfig clientConfig = new ClientConfig();

clientConfig.addAddress(HAZELCAT_HOST);

HazelcastInstance client = HazelcastClient.newHazelcastClient(clientConfig);

代码示例

public class GettingStarted {

public static void main(String[] args) {

Config cfg = new Config();

HazelcastInstance instance = Hazelcast.newHazelcastInstance(cfg);

Map mapCustomers = instance.getMap("customers");

mapCustomers.put(1, "Joe");

mapCustomers.put(2, "Ali");

mapCustomers.put(3, "Avi");

System.out.println("Customer with key 1: "+ mapCustomers.get(1));

System.out.println("Map Size:" + mapCustomers.size());

Queue queueCustomers = instance.getQueue("customers");

queueCustomers.offer("Tom");

queueCustomers.offer("Mary");

queueCustomers.offer("Jane");

System.out.println("First customer: " + queueCustomers.poll());

System.out.println("Second customer: "+ queueCustomers.peek());

System.out.println("Queue size: " + queueCustomers.size());

}

}

代码示例中首先使用内嵌的方式开启hazelcast服务,并且获取hazelcast实例对象,然后获取Map对象、Queue对象,然后就可以像我们经常使用的Map、Queue一样来对数据进行增加、更新、查询和删除了。

hazelcast 搭建_hazelcast教程 入门相关推荐

  1. hazelcast 搭建_Hazelcast 配置教程

    在入门及使用案例一文介绍了什么是Hazelcast,并展示了一个简单的使用例子.原理大家都懂了,后面的篇章会给兄弟们更多干货. 本篇博文将细说如何配置Hazelcast,听我慢慢给你们侃. XML基本 ...

  2. hazelcast 搭建_Hazelcast 集群功能及配置

    在前2篇博文中,介绍了 Hazelcast的基本原理 和 Hazelcast基本配置. 后续的博文会逐一介绍Hazelcast的主要功能组件.本篇将详细说明Hazelcast集群组建.集群数据通信相关 ...

  3. hazelcast 搭建_hazelcast Management Center 源码分析

    [Java] 纯文本查看 复制代码public static License checkLicenseKeyPerFeature(String licenseKey, String versionSt ...

  4. 服务器centos系统诛仙,云服务器搭建诛仙教程

    云服务器搭建诛仙教程 内容精选 换一换 使用Neutron命令创建Port.使用Cinder命令,创建系统盘和数据盘.使用Nova命令,创建弹性云服务器.在创建云服务器之前,需要先申请port,并且需 ...

  5. 视频教程-新React+VUE前端教程入门到精通-Vue

    新React+VUE前端教程入门到精通 10年以上开发经验,曾经是八维教育实训主任,千峰教育高级HTML5前端讲师,尚品中国创始人.现任程序思维创始人.曾和大厂.国企等大型企业合作开发项目.百余客户, ...

  6. 组态王图素制作_组态王实例教程入门

    组态王实例教程入门 组态王 kingview6.55 是亚控科技根据当前的自动化技术的发展趋势, 面向低端自动化市场及应用, 以实现企业一体化为目标开发的一套产 品. 该产品以搭建战略性工业应用服务平 ...

  7. wordpress建站教程入门-wordpress模板建站教程入门

    wordpress建站教程入门?为什么要使用wordpress建站因为wordpress网站程序是一个老牌的内容管理程序网站,今天给大家推荐一款万能wordpress工具:网站搭建(只需输入域名选择模 ...

  8. 【python教程入门学习】Python实现自动玩贪吃蛇程序

    这篇文章主要介绍了通过Python实现的简易的自动玩贪吃蛇游戏的小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学一学 实现效果 先看看效果 这比我手动的快多了,而且是单机的,自动玩没惹 ...

  9. Windows server 2012 搭建×××图文教程(二)配置路由和远程访问服务

    Windows server 2012 搭建×××图文教程(一)安装×××相关服务 Windows server 2012 搭建×××图文教程(二)配置路由和远程访问服务 Windows server ...

最新文章

  1. How to run CAB file
  2. 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-人机界面HMI自锁按钮和自复位按钮如何理解(Toggle variable Tap variable)...
  3. java jsch api_详解Java使用Jsch与sftp服务器实现
  4. 人人都是 DBA(V)SQL Server 数据库文件
  5. Java设计模式(八):外观设计模式
  6. 四则运算计算器c语言switch,设计一个五个数进行四则运算的计算器 c语言
  7. python版本升级后编译_Centos6.X 编译安装升级Python版本到3.X
  8. Java前端顺序,java种初始化顺序
  9. 如何进行大数据可视化分析
  10. SQL Server 2000 Service Pack 4 升级指南
  11. 华为ensp(telnet)实验
  12. 移动wap浏览器网页调试工具vconsole和eruda
  13. NCH ClickCharts(流程图绘制软件)v4.10 汉化免费版
  14. pytorch GPU内存管理
  15. 【codevs4355】王的对决(简单数论) 莫比乌斯反演
  16. r1音箱原生系统更改服务器,某讯R1音响——版本升级和安装DLNA细致教程
  17. 【年度总结】满船清梦压星河
  18. 操作系统发展历程 (Unix、Linux、windows)
  19. Rails permit params 接受Hash,Array
  20. python英文分句_教你如何对英文段落进行分句

热门文章

  1. 福特汉姆大学计算机科学专业,留学福特汉姆大学专业
  2. postgresql 数据库中 like 、ilike、~~、~~*、~、~*的含义
  3. vue父与子组件,子与子组件间的方法调用和通信
  4. 创业公司期权如何运作
  5. g mysql windows_Windows平台配置5.7版本+MySQL数据库服务
  6. What is the difference of PO Charge Account,PO Accrual Account and PO Variance Account
  7. 同一个图表创建双坐标轴,显示多个图例
  8. AliOS-Things--Visual Studio Code Windows环境搭建 EMW3060
  9. 构建基于MX1919的超声波阵列驱动板
  10. 2018-2019 起风了,唯有努力生存