Hazelcast作为一个高度可扩展的数据分发和集群平台,提供了高效的、可扩展的分布式数据存储、数据缓存。Hazelcast是开源的,在分布式技术方面,Hazelcast提供了十分友好的接口供开发者选择,如Map,Queue,ExecutorService, Lock和Jcache。 
Hazelcast的稳定性很高,分布式应用可以使用Hazelcast进行存储数据、同步数据、发布订阅消息等。Hazelcast是基于Java开发的,其客户端有Java, C/C++, .NET以及REST。Hazelcast同时也支持memcache协议。它很好的支持了Hibernate,可以很容易的在当今流行的数据库系统中应用。

如果你在寻找一个基于内存的、可扩展的以及对开发者友好的NoSql,那么Hazelcast是一个很不错的选择!

Hazelcast是一个高度可扩展的数据分发和集群平台。特性包括:

  • 提供java.util.{Queue, Set, List, Map}分布式实现。
  • 提供java.util.concurrency.locks.Lock分布式实现。
  • 提供java.util.concurrent.ExecutorService分布式实现。
  • 提供用于一对多关系的分布式MultiMap。
  • 提供用于发布/订阅的分布式Topic(主题)。
  • 通过JCA与J2EE容器集成和事务支持。
  • 提供用于安全集群的Socket层加密。
  • 支持同步和异步持久化。
  • 为Hibernate提供二级缓存Provider 。
  • 通过JMX监控和管理集群。
  • 支持动态HTTP Session集群。
  • 利用备份实现动态分割。
  • 支持动态故障恢复。

1.优点

a. Hazelcast开发比较简单 
Hazelcast是基于Java写的,没有任何其它的以来。它提供的API跟Java util包很像。对于开发者来说,只需要加入hazelcast.jar,然后就可以快速使用在多个JVM之间的数据共享(分布式)。

b. Hazelcast的节点之间是平等的(Peer-to-Peer) 
不像其它很多的NoSql解决方案,Hazelcast的节点之间是对等的(没有主次之分)。所有的节点存储的数据都是相等的,在应用中可以很容易的增加一个Hazelcast节点。或者以客户端-服务端的形式使用。

c. Hazelcast是可扩展的 
Hazelcast的扩展性非常强,可以很简单的增加或减少节点。可以自动的监听节点的增加,并以线性的方式增加存储空间和能力。节点之间的通信是以TCP的方式建立的。

d. Hazelcast效率很高。 
将数据存储在内存中,所以是非常高效的,包括读操作和写操作。

e. Hazelcast是可备份的 
Hazelcast的数据会在多个节点上进行备份。一旦一个节点失败了,数据将会从别的节点上进行恢复。

f. Hazelcast页面元素齐全

页面可以看到map,list等数据内容,以及一些容量的仪表图.可以看到很多有用的数据,包括每个Map的请求次数等.

2. 使用场景 
分布式缓存,通常使用在数据库之前的那一层 
缓存服务器 
NoSql的数据存储 
Spring cache 
微服务的结构 
储存临时数据,如web的session等

3. Hazelcast的数据拆分 
Hazelcast的数据拆分叫做间隔(Partitions)。默认情况下,Hazelcast会将数据拆分成271个间隔(总数,并不是单个单点)。当传入一个key时,Hazelcast会对它进行序列化,以及进行hash的算法等算出一个数值,通过该数值它存放在相应的间隔中(271个的其中一个)。在不同的节点中存放相同数量的间隔。Hazelcast还会生成备份的间隔,同样也是存放在这些间隔中。

4.配置

配置组连接选项

    <group>
<name>test</name>
<password>test</password>
</group>

配置管理页面,如果配置为true,则可以在mancenter目录下启动页面管理

<management-center enabled="true">http://10.1.4.97:8080/mancenter</management-center>

配置连接网络(自增长如果配为true,端口启动失败时会自增)

        <port auto-increment="true" port-count="100">5701</port>

集群节点发现机制,自选一种

        <join>
<multicast enabled="false">
<multicast-group>224.2.2.3</multicast-group>
<multicast-port>54327</multicast-port>
</multicast>
<tcp-ip enabled="true">
<interface>10.10.10.10</interface>
<member-list>
<member>10.10.10.10</member>
</member-list>
</tcp-ip>
<aws enabled="false">
<access-key>my-access-key</access-key>
<secret-key>my-secret-key</secret-key>
<!--optional, default is us-east-1 -->
<region>us-west-1</region>
<!--optional, default is ec2.amazonaws.com. If set, region shouldn't be set as it will override this property -->
<host-header>ec2.amazonaws.com</host-header>
<!-- optional, only instances belonging to this group will be discovered, default will try all running instances -->
<security-group-name>hazelcast-sg</security-group-name>
<tag-key>type</tag-key>
<tag-value>hz-nodes</tag-value>
</aws>
</join>

配置节点对套接字加密,算法可选

        <symmetric-encryption enabled="false">
<!--
encryption algorithm such as
DES/ECB/PKCS5Padding,
PBEWithMD5AndDES,
AES/CBC/PKCS5Padding,
Blowfish,
DESede
-->
<algorithm>PBEWithMD5AndDES</algorithm>
<!-- salt value to use when generating the secret key -->
<salt>thesalt</salt>
<!-- pass phrase to use when generating the secret key -->
<password>thepass</password>
<!-- iteration count to use when generating the secret key -->
<iteration-count>19</iteration-count>
</symmetric-encryption>

配置执行服务器的线程和队列容量

    <executor-service name="default">
<pool-size>16</pool-size>
<!--Queue capacity. 0 means Integer.MAX_VALUE.-->
<queue-capacity>0</queue-capacity>
</executor-service>

参考:http://blog.csdn.net/hengyunabc/article/details/18514563

hazelcast初探的更多相关文章

  1. Apache Ignite高性能分布式网格框架-初探

    Apache Ignite初步认识 今年4月开始倒腾openfire,过程中经历了许多,更学到了许多.特别是在集群方面有了很多的认识,真正开始认识到集群的概念及应用方法. 在openfire中使用的集 ...

  2. 初探领域驱动设计(2)Repository在DDD中的应用

    概述 上一篇我们算是粗略的介绍了一下DDD,我们提到了实体.值类型和领域服务,也稍微讲到了DDD中的分层结构.但这只能算是一个很简单的介绍,并且我们在上篇的末尾还留下了一些问题,其中大家讨论比较多的, ...

  3. CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探

    CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码 ...

  4. 从273二手车的M站点初探js模块化编程

    前言 这几天在看273M站点时被他们的页面交互方式所吸引,他们的首页是采用三次加载+分页的方式.也就说分为大分页和小分页两种交互.大分页就是通过分页按钮来操作,小分页是通过下拉(向下滑动)时异步加载数 ...

  5. JavaScript学习(一) —— 环境搭建与JavaScript初探

    1.开发环境搭建 本系列教程的开发工具,我们采用HBuilder. 可以去网上下载最新的版本,然后解压一下就能直接用了.学习JavaScript,环境搭建是非常简单的,或者说,只要你有一个浏览器,一个 ...

  6. .NET文件并发与RabbitMQ(初探RabbitMQ)

    本文版权归博客园和作者吴双本人共同所有.欢迎转载,转载和爬虫请注明原文地址:http://www.cnblogs.com/tdws/p/5860668.html 想必MQ这两个字母对于各位前辈们和老司 ...

  7. React Native初探

    前言 很久之前就想研究React Native了,但是一直没有落地的机会,我一直认为一个技术要有落地的场景才有研究的意义,刚好最近迎来了新的APP,在可控的范围内,我们可以在上面做任何想做的事情. P ...

  8. 【手把手教你全文检索】Apache Lucene初探

    PS: 苦学一周全文检索,由原来的搜索小白,到初次涉猎,感觉每门技术都博大精深,其中精髓亦是不可一日而语.那小博猪就简单介绍一下这一周的学习历程,仅供各位程序猿们参考,这其中不涉及任何私密话题,因此也 ...

  9. Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用

    一.高可用的Session服务器场景简介 1.1 应用服务器的无状态特性 应用层服务器(这里一般指Web服务器)处理网站应用的业务逻辑,应用的一个最显著的特点是:应用的无状态性. PS:提到无状态特性 ...

随机推荐

  1. ReactNative WebView组件详解

    在开发Android的时候,一般我们会有一些加载网页的需求,或者执行一些JavaScript,我们都知道在Android中实现这个功能的控件是WebView,在ReactNative中也有实现此类需求 ...

  2. AWS & ASP.NET

    https://dotnetcodr.com/amazon-cloud/ Amazon cloud Big Data overall architecture Architecture of a Bi ...

  3. Java:concurrent包下面的Map接口框架图(ConcurrentMap接口、ConcurrentHashMap实现类)

    Java集合大致可分为Set.List和Map三种体系,其中Set代表无序.不可重复的集合:List代表有序.重复的集合:而Map则代表具有映射关系的集合.Java 5之后,增加了Queue体系集合, ...

  4. CentOS 7 安装开发者环境

    在vagrant box中安装了基本的centos7的box,但是,该环境没有安装编译软件,所以要求自行安装. 1.查看群组安装的源包数量: yum group list ,搜索Development ...

  5. Java设计模式之工厂模式的两种实现方式

    工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 1. 为什么要有工厂模式? "Talk i ...

  6. Objective的头文件@interface属性

    源码:http://files.cnblogs.com/ios8/TestPropertyDemo.zip 1 前言 最近有个疑惑 @interface中的属性和@property声明的属性有什么区别 ...

  7. python实现tail -f功能

    这篇文章最初是因为reboot的群里,有人去面试,笔试题有这个题,不知道怎么做,什么思路,就发群里大家讨论 我想了一下,简单说一下我的想法吧,当然,也有很好用的pyinotify模块专门监听文件变化, ...

  8. org.apache.flink.runtime.entrypoint.StandaloneSessionClusterEntrypoint

    org.apache.flink.runtime.entrypoint.StandaloneSessionClusterEntrypoint-Xms2024m -Xmx2024m -Dlog.file ...

  9. [Windows Azure] What is a Storage Account?

    What is a Storage Account? A storage account gives your applications access to Windows Azure Blob, T ...

  10. running boot2docker -> error in run: Failed to get machine “boot2docker-vm”: machine does not exist

    登陆和使用.详细请看.....https://github.com/boot2docker/boot2docker boot2docker start error in run: Failed to ...