Hazelcast系列(六): TCP-IP发现机制

2023-10-06 20:15

本文主要是介绍Hazelcast系列(六): TCP-IP发现机制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

系列文章

Hazelcast系列(一):初识hazelcast

Hazelcast系列(二):hazelcast集成

Hazelcast系列(三):hazelcast管理中心

Hazelcast系列(四):Auto-Detection发现机制

Hazelcast系列(五):Multicast发现机制

Hazelcast系列(六): TCP-IP发现机制

目录

前言

配置

配置元素

其他

总结


前言

如果是通信环境比较复杂,在外网或者安全性不高的网络通信的情况下,Multicast 可能不是首选,那么,这里就可以采用 TCP/IP 集群配置的方式。

当将 Hazelcast 配置为通过 TCP/IP 发现成员时,必须将成员的主机名和/或 IP 地址的全部或子集列出为集群成员。TCP/IP 不必列出所有这些集群成员,但当新成员加入时,所列出的成员中至少有一个必须在集群中处于活动状态

配置

  • XML
<hazelcast>...<network><join><tcp-ip enabled="true"><member-list><member>machine1</member><member>machine2</member><member>machine3:5799</member><member>192.168.1.0-7</member><member>192.168.1.21</member></member-list></tcp-ip></join></network>...
</hazelcast>
  • YAML
hazelcast:network:join:tcp-ip:enabled: truemember-list:- machine1- machine2- machine3:5799- 192.168.1.0-7- 192.168.1.21

注意:

  1. 这里TCP/IP enabled 为 true 后,其他的发现方式需要设置为false,尤其是默认的发现方式
  2. machine1、machine2、machine3 等名称可以是 主机名 或者 IP地址
  3. member-list 中每个成员,可以设置范围,但是必须要配置至少一个存活的成员
  4. 可以不配置端口,Hazelcast 会自动尝试端口 5701、5702

配置元素

  • enabled:指定是否启用 TCP/IP 发现。值可以是true或false。
  • required-member:所需成员的IP地址。仅当找到具有该 IP 地址的成员时才会形成集群。
  • member-list:一位或多位集群成员的 IP 地址。一旦会员连接到这些众所周知的地址,所有成员地址就会相互通信。这里还可以使用members元素给出以逗号分隔的 IP 地址。
  • connection-timeout-seconds:定义连接超时(以秒为单位)。这是 Hazelcast 在放弃之前尝试连接到成员的最长时间。将其设置为太低的值可能意味着成员无法连接到集群。将其设置为过高的值意味着成员启动可能会因超时较长而变慢,例如当集群成员未启动时。如果列出了许多 IP 并且成员无法正确构建集群,建议增加此值。它的默认值为 5 秒。

其他

  • 默认情况下,Hazelcast 绑定到所有本地网络接口以接受传入流量。可以使用系统属性更改此行为 hazelcast.socket.bind.any 。如果将此属性设置为 false,Hazelcast 将使用元素中指定的接口 interfaces 。如果未提供接口,则它会尝试解析一个接口以从 member 元素绑定。
System.setProperty("hazelcast.socket.bind.any", "false");
  • TCP/IP 在网络情况不好的情况下,发现成员时 或者 脑裂恢复 会有一个集群成员合并的过程,这里可以通过设置两个参数:
    • hazelcast.merge.first.run.delay.seconds:分裂或者合并在服务初始后多久开始,默认300,单位秒
    • hazelcast.merge.next.run.delay.seconds:分裂或者合并过程的运行间隔,默认120,单位秒
System.setProperty("hazelcast.merge.first.run.delay.seconds", "300");
System.setProperty("hazelcast.merge.next.run.delay.seconds", "120");
  • TCP/IP  发现成员IP可以配置为 负载均衡的服务器IP 网关IP,主要 负载均衡IP 或者 网关IP 能跟下面的具体集群成员之间相互通信

总结

TCP/IP 是一个可以解决复杂环境的 Hazelcast 集群成员发现方式,但是需要指定一个存活的成员地址。

这篇关于Hazelcast系列(六): TCP-IP发现机制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/153924

相关文章

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

Nginx之upstream被动式重试机制的实现

《Nginx之upstream被动式重试机制的实现》本文主要介绍了Nginx之upstream被动式重试机制的实现,可以通过proxy_next_upstream来自定义配置,具有一定的参考价值,感兴... 目录默认错误选择定义错误指令配置proxy_next_upstreamproxy_next_upst

Nginx实现动态封禁IP的步骤指南

《Nginx实现动态封禁IP的步骤指南》在日常的生产环境中,网站可能会遭遇恶意请求、DDoS攻击或其他有害的访问行为,为了应对这些情况,动态封禁IP是一项十分重要的安全策略,本篇博客将介绍如何通过NG... 目录1、简述2、实现方式3、使用 fail2ban 动态封禁3.1 安装 fail2ban3.2 配

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

Spring排序机制之接口与注解的使用方法

《Spring排序机制之接口与注解的使用方法》本文介绍了Spring中多种排序机制,包括Ordered接口、PriorityOrdered接口、@Order注解和@Priority注解,提供了详细示例... 目录一、Spring 排序的需求场景二、Spring 中的排序机制1、Ordered 接口2、Pri

查询SQL Server数据库服务器IP地址的多种有效方法

《查询SQLServer数据库服务器IP地址的多种有效方法》作为数据库管理员或开发人员,了解如何查询SQLServer数据库服务器的IP地址是一项重要技能,本文将介绍几种简单而有效的方法,帮助你轻松... 目录使用T-SQL查询方法1:使用系统函数方法2:使用系统视图使用SQL Server Configu

使用Java实现获取客户端IP地址

《使用Java实现获取客户端IP地址》这篇文章主要为大家详细介绍了如何使用Java实现获取客户端IP地址,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 首先是获取 IP,直接上代码import org.springframework.web.context.request.Requ

MySQL 缓存机制与架构解析(最新推荐)

《MySQL缓存机制与架构解析(最新推荐)》本文详细介绍了MySQL的缓存机制和整体架构,包括一级缓存(InnoDBBufferPool)和二级缓存(QueryCache),文章还探讨了SQL... 目录一、mysql缓存机制概述二、MySQL整体架构三、SQL查询执行全流程四、MySQL 8.0为何移除查

一文详解Java Condition的await和signal等待通知机制

《一文详解JavaCondition的await和signal等待通知机制》这篇文章主要为大家详细介绍了JavaCondition的await和signal等待通知机制的相关知识,文中的示例代码讲... 目录1. Condition的核心方法2. 使用场景与优势3. 使用流程与规范基本模板生产者-消费者示例

C++实现获取本机MAC地址与IP地址

《C++实现获取本机MAC地址与IP地址》这篇文章主要为大家详细介绍了C++实现获取本机MAC地址与IP地址的两种方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 实际工作中,项目上常常需要获取本机的IP地址和MAC地址,在此使用两种方案获取1.MFC中获取IP和MAC地址获取