在织梦网站做静态网页伦敦做网站

news/2025/10/4 8:57:40/文章来源:
在织梦网站做静态网页,伦敦做网站,青岛外贸网站设计,陕西省建设网三类人员公示文章目录 一、Hazelcast简介1、Hazelcast概述2、Hazelcast之IMDG3、数据分区 二、Hazelcast配置1、maven坐标2、集群搭建#xff08;1#xff09;组播自动搭建 3、客户端4、集群分组5、其他配置 三、Hazelcast分布式数据结构1、IMap2、IQueue#xff1a;队列3、MultiMap4、I… 文章目录 一、Hazelcast简介1、Hazelcast概述2、Hazelcast之IMDG3、数据分区 二、Hazelcast配置1、maven坐标2、集群搭建1组播自动搭建 3、客户端4、集群分组5、其他配置 三、Hazelcast分布式数据结构1、IMap2、IQueue队列3、MultiMap4、ISet5、IList6、其它 参考资料 一、Hazelcast简介 1、Hazelcast概述 官方文档https://docs.hazelcast.com/hazelcast/5.3/ Hazelcast是驻内存数据网格(In-Memory Data GridIMDG)的数据网格开源项目同时也是该公司的名称。Hazelcast提供弹性可扩展的分布式内存计算Hazelcast被公认是提高应用程序性能和扩展性最好的方案。Hazelcast通过开放源码的方式提供以上服务。更重要的是Hazelcast通过提供对开发者友好的Map、Queue、ExecutorService、Lock和JCache接口使分布式计算变得更加简单。例如Map接口提供了内存中的键值存储这在开发人员友好性和开发人员生产力方面提供了NoSQL的许多优点。 除了在内存中存储数据外Hazelcast还提供了一组方便的api来访问集群中的cpu以获得最大的处理速度。轻量化和简单易用是Hazelcast的设计目标。Hazelcast以Jar包的方式发布因此除Java语言外Hazelcast没有任何依赖。Hazelcast可以轻松地内嵌已有的项目或应用中并提供分布式数据结构和分布式计算工具。 Hazelcast 具有高可扩展性和高可用性100%可用从不失败。分布式应用程序可以使用Hazelcast进行分布式缓存、同步、集群、处理、发布/订阅消息等。Hazelcast基于Java实现并提供C/C.NETRESTPython、Go和Node.js客户端。Hazelcast遵守内存缓存协议可以内嵌到Hibernate框架并且可以和任何现有的数据库系统一起使用. 如果你正在寻找基于内存的、高速的、可弹性扩展的、对开发者友好的NoSQLHazelcast是一个很棒的选择。 2、Hazelcast之IMDG Hazelcast功能非常强大本文主要讨论Hazelcast用于做分布式缓存。 Hazelcast做IMDG的官方文档如下https://docs.hazelcast.com/imdg/4.2/ Hazelcast支持如下语言的APIJava、.NET、C、Node.js、Python、Go。在此我们主要讨论JavaAPI。 下面的架构图中包含所有Hazelcast IMDG版本的功能 3、数据分区 默认情况下Hazelcast提供271个分区。当您启动只有一个成员的集群时它拥有全部271个分区(即它保留271个分区的主副本)。下图显示了具有单个成员的Hazelcast群集中的分区。 当添加更多成员时Hazelcast会将一些主分区副本和备份分区副本逐个移动到新成员从而使所有成员都是平等的和冗余的。得益于一致的哈希算法只有最少量的分区被移动以横向扩展Hazelcast。下面是一个有四个成员的Hazelcast集群中的分区副本分布图 也就是说Hazelcast会对数据进行冗余以实现它的高可用。一个节点挂掉之后其分区中的数据一定会在集群中其它服务中找到。 Hazelcast通过分区表存储分区id和它们所属的集群成员的地址。这个表的目的是让集群中的所有成员(包括lite成员)都知道这个信息确保每个成员都知道数据在哪里。 二、Hazelcast配置 1、maven坐标 直接引入jar包即可使用非常方便。 !-- https://mvnrepository.com/artifact/com.hazelcast/hazelcast -- dependencygroupIdcom.hazelcast/groupIdartifactIdhazelcast/artifactIdversion5.3.6/version /dependency Gradle等其他坐标请移步 https://mvnrepository.com/artifact/com.hazelcast/hazelcast/5.3.6 2、集群搭建 1组播自动搭建 Config cfg new Config(); HazelcastInstance instance Hazelcast.newHazelcastInstance(cfg); MapInteger, String 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());QueueString 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());以上代码运行两次就会形成一个集群 Members {size:2, ver:2} [Member [127.0.0.1]:5701 - e40081de-056a-4ae5-8ffe-632caf8a6cf1 thisMember [127.0.0.1]:5702 - 93e82109-16bf-4b16-9c87-f4a6d0873080 ]在这里您可以看到集群的大小(size)和成员列表版本(ver).当集群发生变化时成员列表版本递增例如成员离开或加入集群。 默认情况下Hazelcast通过组播的形式在同一个网络中自动发现其它成员。 3、客户端 下面的代码启动一个Hazelcast客户机连接到我们的集群并打印customers Map public class GettingStartedClient {public static void main( String[] args ) {ClientConfig clientConfig new ClientConfig();HazelcastInstance client HazelcastClient.newHazelcastClient( clientConfig );IMap map client.getMap( customers );System.out.println( Map Size: map.size() );} }Hazelcast其实有两种用法一种是搭建一个独立的服务器集群然后客户端连接上进行使用就像redis那样。还有一种是随着项目的启动而启动此时就不需要客户端了每一个java应用都作为Hazelcast集群服务的一员。 4、集群分组 通过指定集群名称可以简单地对集群进行分离和分组。 可以通过编程方式定义集群配置也可以使用xml和yaml进行配置https://docs.hazelcast.com/imdg/4.2/clusters/creating-clusters。一个JVM可以托管多个Hazelcast实例。每个Hazelcast实例只能参与一个组。每个Hazelcast实例只加入自己的组不与其他组交互下面的代码示例创建三个单独的Hazelcast实例-h1属于production群集而h2和h3属于development集群 Config configProd new Config(); configProd.setClusterName( production );Config configDev new Config(); configDev.setClusterName( development );HazelcastInstance h1 Hazelcast.newHazelcastInstance( configProd ); HazelcastInstance h2 Hazelcast.newHazelcastInstance( configDev ); HazelcastInstance h3 Hazelcast.newHazelcastInstance( configDev );5、其他配置 Hazelcast用于在集群成员之间通信的端口。其默认值为5701如果端口被占用会递增可以进行配置 Config config new Config(); config.getNetworkConfig().setPort( 5701 ).setPortAutoIncrement( true ).setPortCount( 20 );其他网络配置Hazelcast提供自动检测、多播、TCP/IP、AWS、Kubernetes、Azure、GCP、Eureka等等。 https://docs.hazelcast.com/imdg/4.2/clusters/network-configuration Hazelcast可以使用xml或者yaml进行特殊的额外配置在项目中新建一个hazelcast.yml或者hazelcast.xml在里面进行配置更多配置请移步官方文档 三、Hazelcast分布式数据结构 1、IMap IMap继承了ConcurrentMap所以我们可以使用其put和get方法对数据进行写入和读取。其所有的操作都是线程安全的。 Hazelcast对IMap数据进行分区上面讨论过存储并进行备份。 Config config new Config(); config.setClusterName(CLUSTER_NAME);MapConfig mapConfig new MapConfig(); mapConfig.setName(MY_MAP); mapConfig.setBackupCount(1); // 同步备份默认就是1 mapConfig.setAsyncBackupCount(1); // 异步备份默认是0 mapConfig.setTimeToLiveSeconds(100); // 100秒过期时间 mapConfig.setMaxIdleSeconds(100); // 100秒活跃时间最后一次对其进行读写时间 过期 mapConfig.setInMemoryFormat(InMemoryFormat.NATIVE); // 设置内存格式二进制、反序列化、堆外内存。默认是二进制方式存储EvictionConfig evictionConfig new EvictionConfig(); evictionConfig.setEvictionPolicy(EvictionPolicy.LRU); // LRU形式驱逐key evictionConfig.setSize(1000); // 1000最大key mapConfig.setEvictionConfig(evictionConfig);config.addMapConfig(mapConfig); HazelcastInstance hazelcastInstance Hazelcast.newHazelcastInstance(config); IMapString, String map hazelcastInstance.getMap(map);map.put( key, value, 50, TimeUnit.SECONDS); // 可以为单个key设置过期时间 map.setTtl(key, 50, TimeUnit.SECONDS ); // 单独设置过期时间 map.put( key, value, 50, TimeUnit.SECONDS, 40, TimeUnit.SECONDS );// 过期时间、活跃时间 map.put(key, value); map.get(key); // 获取的是一个克隆并不是原对象 map.putIfAbsent(key, value); map.lock(key); // 锁定键 map.evictAll(); // 清除锁定键之外的所有的键 map.clear(); // 清除// 可以实现分布式锁 map.lock(key); map.unlock(key);// 乐观锁 map.replace(key, old, new);// 还可以为map添加拦截器详见官方文档2、IQueue队列 IQueue继承了BlockingQueue是分布式队列Hazelcast分布式队列允许所有集群成员与之交互。使用Hazelcast分布式队列您可以在一个集群成员中添加一个项目并从另一个集群成员中删除它。 Config config new Config(); config.setClusterName(CLUSTER_NAME);QueueConfig queueConfig new QueueConfig(); queueConfig.setName(task); // 设置队列名 queueConfig.setMaxSize(10); // 设置队列最大数量超过最大数量再添加将阻塞 queueConfig.setBackupCount(1); // 备份数量config.addQueueConfig(queueConfig);HazelcastInstance hazelcastInstance Hazelcast.newHazelcastInstance(config); IQueueString queue hazelcastInstance.getQueue( task ); queue.put(MyTask); // 放值 String task queue.take(); // 取值boolean offered queue.offer( task, 10, TimeUnit.SECONDS ); task queue.poll( 5, TimeUnit.SECONDS ); if ( task ! null ) {//process task }3、MultiMap HazelcastInstance hazelcastInstance Hazelcast.newHazelcastInstance(); MultiMapString, String map hazelcastInstance.getMultiMap(map);map.put(a, 1); map.put(a, 2); map.put(b, 3); System.out.printf(PutMember:Done);for (String key: map.keySet()){CollectionString values map.get(key);System.out.printf(%s - %s\n, key, values); }b → [3] a → [2, 1] 4、ISet ISet是的分布式并发实现java.util.Set。它具有以下特点: ISet不允许重复元素。ISet不保留元素的顺序。ISet是一种非分区的数据结构属于一个集合的所有数据都存在于该成员的一个分区中。ISet的规模不能超过单台机器的容量。由于整个集合位于单个分区上因此在单个集合上存储大量数据可能会造成内存压力。因此您应该使用多个集合来存储大量数据。这样所有的集分布在集群中分担负载。ISet的备份存储在集群中另一个成员的分区上以便在主成员出现故障时数据不会丢失。所有项都被复制到本地成员迭代在本地发生。在ISet中实现的equals方法使用对象的序列化字节版本而不是java.util.HashSet. HazelcastInstance hz Hazelcast.newHazelcastInstance(); ISetString set hz.getSet(set); set.add(Tokyo); set.add(Paris); set.add(London); set.add(New York); System.out.println(Putting finished!);5、IList Hazelcast列表(IList)类似于Hazelcast的ISet但它也允许重复元素。 除了允许重复元素之外Hazelcast列表(IList)还保留了元素的顺序。 Hazelcast列表(IList)是一种非分区的数据结构其中值和每个备份由它们自己的单个分区表示。 Hazelcast列表(IList)不能超出单台机器的容量。 所有项目都被复制到本地迭代在本地进行。 HazelcastInstance hz Hazelcast.newHazelcastInstance(); IListString list hz.getList(list); list.add(Tokyo); list.add(Paris); list.add(London); list.add(New York); System.out.println(Putting finished!);6、其它 Haselcast还实现了Ringbuffer环型缓冲器、Topic发布订阅、FencedLock分布式锁、IAtomicLong原子Long类型、ISemaphore分布式信号量、IAtomicReference分布式原子引用、ICountDownLatch分布式闭锁、PNCounterPN计数器、FlakeIdGenerator ID生成器等等数据结构但是由于Haselcast基于内存使用可靠性并没有Redis高所以还是得分场景进行使用。 参考资料 https://www.lidihuo.com/hazelcast/hazelcast-index.html https://www.cnblogs.com/jdw5/p/12017044.html https://xie.infoq.cn/article/9c7e32628b5839f8490b1f782 官方文档https://docs.hazelcast.com/imdg/4.2/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/926952.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

长沙做网站推广代理记账公司注册需要什么条件

📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 1. 引言 人工智能(AI)已经成为当今世界最具革命性的技术之一,它正在深刻改变各个行业&#x…

网站流量提升方法vps搭建asp网站

八爪鱼,被动收入,财务自由,现金流,现金流游戏,各银行利率,money,资产负债表,财务自由,资产管理,个人理财,管理个人资产,理财,打造被动收入,躺着赚钱,让钱为我打工

汉文博士词典库源文件已在 github 开放

无版权问题的词典源文件已从城通网盘转存至 Github: https://github.com/wmjordan/Hanbox.Dict 部分词典的编译配置文件需使用汉文博士 7.0 或更新的版本编译。

网站自己怎么制作做网站用asp还是php

3.1 表达式和语句 表达式一共分为三种: (1)变量或常量 运算符构成的计算表达式 (2)new 表达式,结果是一个数组或类的对象。(后面讲) (3)方法调用表达式&…

梧州市建设局网站数据来源网站怎么做脚注

问题描述: 我的团队一直在处理一个包含基于标准库的 SD 卡的项目。最近我们决定迁移到 HAL 并开始了。 幸运的是,我们项目的所有部分都尽可能地更改为 HAL,它们运行良好,但我们不知道为什么 SD 卡不能正常运行。 我们没有更改外设的配置时钟&…

读人形机器人30未来20年

读人形机器人30未来20年1. 长期技术可能性 1.1. AI与认知计算的进步1.1.1. 人形机器人进化的核心在于AI和认知计算的进步1.1.2. 未来的机器人将拥有比现今复杂得多的AI系统,能够进行细致入微的理解、基于情境的推理和…

Flutter + Ollama:开启本地AI的全平台新纪元 —— 从零剖析一款现代化AI客户端的技能奥秘

Flutter + Ollama:开启本地AI的全平台新纪元 —— 从零剖析一款现代化AI客户端的技能奥秘pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !importa…

wordpress站点改名推广方案框架

from: https://blog.csdn.net/dcrmg/article/details/52851913工业相机基础知识(一) CCD与CMOS 工业相机按照图像的传感器元件的不同分为CCD(Charge Coupled Device,电荷耦合元件)和CMOS(金属氧化物半导体元件&#xf…

免费网站建设 百度一下手机功能网站案例

如何使用Python获取计算机用户名 一、Python自带的getpass模块可以用于获取用户输入的密码,但是它同样可以用来获取计算机用户名。 import getpassuser getpass.getuser() print("计算机用户名为:", user)二、使用os模块获取用户名 Python的…

产业园区招商团队快躺平了 - 智慧园区

招商人,你是否也曾被这些招商广告刷屏? “0租金”、“0物业费”; “水电暖全免”、“装免期10个月”; “交押金进即可办理入住”; 2025园区招商已经进入白热化阶段,园区之间的竞争早已不在是价值的比拼,已然演变…

DaYe-PhotoStudio-2 v2.0.0 安装教程(64位/AMD64)详细步骤

DaYe-PhotoStudio-2 v2.0.0 安装教程(64位/AMD64)详细步骤​DaYe-PhotoStudio-2​ 是一款 ​专业的照片编辑与处理软件,适用于 ​Windows 64位系统​(amd64/x64)。最新版本为 ​v2.0.0,提供了丰富的图像编辑功能…

股票资料API接口全解析:从技术原理到多语言实战(含实时行情、MACD、KDJ等技术指标数据与API文档详解)

股票资料API接口全解析:从技术原理到多语言实战(含实时行情、MACD、KDJ等技术指标数据与API文档详解)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: b…

无锡专业网站推广电商运营怎么做如何从零开始

图像匹配matlab程序设计:1. 概念解释,2.数字图像匹配算法设计:⑴基于灰度的归一化匹配算法⑵基于灰度的快速模板匹配算法。三.相应matlab程序设计:1.数字图像匹配相关函数 2.数字图像匹配函数&a…

洛谷 P3545

洛谷 P3545https://www.luogu.com.cn/problem/P3545<—原题指路 很典的一道带反悔贪心 题意简述 一共 \(n\) 天。 第 \(i\) 天上午进货 \(ai\) 件商品,中午有一个顾客需要 \(bi\) 件商品,可以满足他或无视他。 要…

建材城电商网站建设专业模板网站制作哪家好

这篇文章将介绍将C# 7类库升级到C# 8&#xff08;支持可空引用类型&#xff09;的一个案例。本案例中使用的项目Tortuga Anchor由一组MVVM风格的基类、反射代码和各种实用程序函数组成。之所以选择这个项目&#xff0c;是因为它很小&#xff0c;并且同时包含了惯用和不常用的C#…

国外前端 网站wordpress怎么搭建成论坛

文章目录 前言一、物业缴费的数字化革新二、在线缴费功能的实现三、智能化缴费管理的优势四、面临的挑战与未来展望五、结语 前言 随着科技的不断进步&#xff0c;二维码门楼牌管理应用平台已成为物业管理的新趋势。在这样一个平台上&#xff0c;物业缴费的数字化革新不仅提高…

网站建设确认表国家认可的赚钱游戏

目录 计算机视觉任务 1.K近邻算法 2.得分函数 3.损失函数的作用 4.向前传播整体流程 5.反向传播计算方法 计算机视觉任务 机器学习的流程&#xff1a; 数据获取 特征工程 建立模型 评估与应用 计算机视觉&#xff1a; 图像表示&#xff1a;计算机眼中的图像&#…

题解:AT_wtf22_day2_b The Greatest Two

神仙题。官方题解搬运工,尽量加上自己的理解使得这篇题解更好理解。 题意: 首先会发现,每个数只要在一个区间 \([l_v,r_v]\) 中那么一定有解,并且一定是 \(v\) 更大的会套住 \(v\) 更小的形成一个树形结构。有点反…

深入解析:docker 安装 xxl-job 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

威胁狩猎实战:终端攻击行为分析与检测

本文通过Try Hack Me平台的威胁狩猎实验,详细解析了在终端攻击目标阶段如何检测恶意活动,包括键盘记录、ICMP数据外泄和系统破坏等技术的实战狩猎过程,帮助安全分析师提升威胁检测能力。Try Hack Me — 威胁狩猎:终…