`
yangzb
  • 浏览: 3503192 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hazelcast 参考文档-3

阅读更多

 

2.  分布式数据结构

 

所有Hazelcast 数据结构的共同特征:

  • 群集中的数据几乎是均匀分布(分区)在所有节点。因此,每个节点携带~ (1/n * total-data) + backupsn 为集群中的节点数。
  • 如果一个成员出现故障,它的持有相同的数据的备份副本,将重新动态地分配拥有所有权的数据,并为剩余的活动节点锁定那些数据。因此,没有数据会丢失。
  • 当一个新节点加入群集时,新的节点将获取所有权(负责),并装载集群中的全部数据的某些部分。最终,新的节点将携带几乎(1/n * total-data) + backups 数据,并成为新的分区节点,减少其他节点的负载。
  • 没有单一的群集Master 或可导致单点故障东西。集群中的每个节点都具有平等的权利和责任。没有人具有特权,而且没有依赖外部' 服务器''Master 节点' 类的概念。

以下是你如何获取现有的数据结构的实例(map, queue, set, lock, topic, 等),以及当一个实例被创建或销毁时, 你如何可以监听到实例的事件通知。

import java.util.Collection;

import com.hazelcast.core.Hazelcast;

import com.hazelcast.core.Instance;

import com.hazelcast.core.InstanceEvent;

import com.hazelcast.core.InstanceListener;

public class Sample implements InstanceListener {

         public static void main(String[] args) {

                 Sample sample = new Sample();

                 Hazelcast.addInstanceListener(sample);

                 Collection<Instance> instances = Hazelcast.getInstances();

                 for (Instance instance : instances) {

                     System.out.println(instance.getInstanceType() + "," + instance.getId());

                }

         }

         public void instanceCreated(InstanceEvent event) {

                Instance instance = event.getInstance();

                System.out.println("Created " + instance.getInstanceType() + "," + instance.getId());

         }

         public void instanceDestroyed(InstanceEvent event) {

               Instance instance = event.getInstance();

               System.out.println("Destroyed " + instance.getInstanceType() + "," + instance.getId());

       }

}

2.1.  分布式Queue

 

Hazelcast 分布式队列是一个 java.util.concurrent.BlockingQueue 的实现 .

import com.hazelcast.core.Hazelcast;

import java.util.concurrent.BlockingQueue;

import java.util.concurrent.TimeUnit;

 

BlockingQueue<MyTask> q = Hazelcast.getQueue("tasks");

q.put(new MyTask());

MyTask task = q.take();

 

boolean offered = q.offer(new MyTask(), 10, TimeUnit.SECONDS);

task = q.poll (5, TimeUnit.SECONDS);

if (task != null) {

        //process task

}

 

如果你有1 亿个 “任务”任务排队,你正在超过10JVM (或服务器)上运行相应代码,然后每个服务器进行1 千万任务对象(加上备份)。在集群范围内应用先进先出( FIFO )顺序处理所有队列操作。队列中的用户对象(如上面的例子的MyTask )必须是可序列化的( Serializable )。每JVM 为队列提供的最大容量和TTL (生存时间)是可配置的,如显示在下面的例子。

<hazelcast>

        ...

        <queue name="default">

        <!--

            Maximum size of the queue. When a JVM's local queue size reaches the maximum,

            all put/offer operations will get blocked until the queue size

            of the JVM goes down below the maximum.

            Any integer between 0 and Integer.MAX_VALUE. 0 means Integer.MAX_VALUE. Default is 0.

        -->

        <max-size-per-jvm>10000</max-size-per-jvm>

       

        <!--

            Maximum number of seconds for each item to stay in the queue. Items that are

            not consumed in <time-to-live-seconds> will get automatically evicted from the queue.

            Any integer between 0 and Integer.MAX_VALUE. 0 means infinite. Default is 0.

        -->

        <time-to-live-seconds>0</time-to-live-seconds>

    </queue>

</hazelcast>

 

分享到:
评论

相关推荐

    PyPI 官网下载 | hazelcast-python-client-3.7.1.tar.gz

    4. `docs/`: 可能包含项目的文档,如API参考、用户指南等,帮助开发者理解和使用库。 5. `LICENSE`: 文件包含了该库的许可协议,规定了可以如何使用、分发和修改库的代码。 6. `README`: 这通常是一个简短的文件,...

    java后端源码-hazelcast-reference-manual:Hazelcast参考手册

    Hazelcast IMDG 参考手册 构建文档 以下命令用于在 repo 的根文件夹中构建文档。 ./gradlew build 生成的文件在哪里 生成的文档可以在build/asciidoc/ 。 如何产生不同的输出格式 在build.gradle文件中,您将看到...

    hazelcast-csharp-client:Hazelcast IMDG .NET客户端

    上提供了客户端的,并提供了示例,指南和常见问题解答,以及公共API的完整参考文档。 .NET客户端本身通过NuGet作为名为的软件包。 它可以像其他任何NuGet程序包一样通过Visual Studio GUI或程序包管理器进行安装。...

    hazelcast-3.7.2.jar中文-英文对照文档.zip

    中文-英文对照文档:【***-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【***.jar Maven依赖信息(可用于项目pom.xml).txt】 ...

    shiro-hazelcast-1.4.0.jar中文-英文对照文档.zip

    中文-英文对照文档:【***-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【***.jar Maven依赖信息(可用于项目pom.xml).txt】 ...

    最高效的交易所撮合引擎,采用伦敦外汇交易所LMAX开源的Disruptor框架,用Hazelcast进行分布式内存存.zip

    配置文件可能会定义了系统环境、网络设置、缓存策略等,而文档可能提供了系统的架构设计、使用指南、API参考等信息。 深入研究这些内容,我们可以学习到如何利用高级并发框架提升系统的性能,以及如何设计和实施...

    apache-shiro-1.2.x-reference-中文文档

    总的来说,Apache Shiro 1.2.x中文参考文档详细涵盖了上述所有内容,对于理解和使用Shiro进行应用安全开发具有极大的指导价值。无论你是初学者还是经验丰富的开发者,都能从中受益,构建更安全、更健壮的应用系统。

    Vertx-Web初探

    具体配置详情可以参考[Hazelcast官方文档](https://docs.hazelcast.com/imdg/latest/). #### 三、Vert.x的启动流程 根据项目需求,Vert.x的启动可以分为两种模式: 1. **单实例启动**:适用于不需要集群功能的...

    spring-boot-1.2.6.RELEASE.zip

    - **官方文档**:Spring Boot的官方文档详尽且实用,是学习和解决问题的重要参考。 - **社区支持**:Spring Boot有着庞大的开发者社区,Stack Overflow、GitHub等平台上有丰富的讨论和示例。 - **教程与书籍**:...

    apache-shiro-1-2-x-reference.zip

    这个压缩包文件"apache-shiro-1-2-x-reference.zip"包含了Shiro的官方中文参考文档,对于理解和使用Shiro进行Java安全开发来说是非常宝贵的资源。 **身份认证** 在Shiro中,身份认证是指验证用户的身份。Shiro提供...

    wiki:vert-x3 组织的维基和问题

    Vert.x 3的维基页面包含了详细的文档、教程和API参考,是学习和掌握Vert.x的关键资源。同时,开发者还可以在社区论坛和GitHub问题中找到更多关于Vert.x 3的讨论和解决方案。 综上所述,"wiki:vert-x3 组织的维基和...

    Java分布式开发与集群技术.pdf

    3. Web集群技术概念:文档描述了Web集群技术的工作原理,即通过前端服务器将用户请求分发到后台多台Web负载服务器上,并将负载服务器生成的结果返回给用户。集群技术使得对单个服务器的高依赖转化为对服务器池的依赖...

    基于springboot教师工作量计算系统的论文和ppt.zip

    **基于SpringBoot的教师工作量计算系统** ...通过以上内容,我们可以了解到基于SpringBoot的教师工作量计算系统的设计与实现,这不仅可以提高高校教务管理的效率,也为其他类似系统的开发提供了参考。

    springboot-technology:springboo整合自己到目前学习到的各种技术

    SpringBoot是Java开发领域的一款流行框架,它简化...这个项目"springboot-technology"可能包含了上述技术的实践应用,通过阅读源代码和项目文档,可以深入理解SpringBoot如何与其他技术结合,为实际项目开发提供参考。

    tresor-pdp-caching

    4. **缓存接口和实现**:项目可能提供一个抽象的缓存接口,用于存储和检索决策结果,同时有多个具体的实现,如基于内存的缓存(如Guava Cache)或分布式缓存(如Redis或Hazelcast)。 5. **性能测试和基准**:为了...

    ehcache-extensions:一些ehcache扩展

    - **文档**:详细说明如何使用这些扩展,包括API参考、配置示例和最佳实践。 - **测试用例**:展示如何测试和验证扩展功能的正确性。 - **示例**:提供使用扩展的代码示例,帮助快速上手。 - **构建脚本**:如Maven...

    forevercache:缓存即使过期也不会被删除

    3. **文档**:`.md`文件,可能包含了使用指南、API参考和示例,帮助开发者理解和使用这个库。 4. **配置文件**:如`.json`或`.yaml`,可能包含了库的配置选项和默认设置。 5. **许可证文件**:`.txt`文件,定义了库...

    springboot部署系统(部署+缓存管理+业务降级+应用监控).zip

    【标题】"springboot部署系统...总之,这个项目是一个综合性的学习资源,涵盖了从Spring Boot应用的开发、部署到运维的全过程,对于学习和提升Java Web开发技能,特别是微服务架构下的最佳实践,具有很高的参考价值。

    程序员的刷题软件-JGroups:JGroups项目

    开发者可以在其官方网站上找到详细的技术文档、API参考和示例代码,以便更好地理解和使用JGroups。 总之,JGroups是构建分布式系统的重要工具,尤其对于需要高效、可靠通信的程序员刷题软件,JGroups提供了强大的...

Global site tag (gtag.js) - Google Analytics