集群部署hazelcast

1.部署流程

1.1下载安装包

https://github.com/hazelcast/hazelcast/releases
下载的时候注意版本号,hazelcast是使用jdk部署的,需要和jdk版本的对应

  • 5.3.5需要jdk11+
  • 5.5.0 需要jdk17+,其他版本自行测试,演示使用5.3.5

1.2解压并复制两个配置文件

unzip hazelcast-5.3.5.zip
cd hazelcast-5.3.5/
cp config/hazelcast.xml config/hazelcast-1.xml
cp config/hazelcast.xml config/hazelcast-2.xml

1.3修改配置文件

在这里插入图片描述
hazelcast-1.xml

  <network>
        <port  auto-increment="true" port-count="100">5703</port>
        <interfaces enabled="false">
            <interface>127.0.0.1</interface>
            <!-- 可以添加更多本地 IP     -->
        </interfaces>
        <outbound-ports>
            <ports>0</ports>
        </outbound-ports>
        <join>
            <auto-detection enabled="false"/>
            <multicast enabled="false"/>
            <tcp-ip enabled="true">
                <member-list>
                    <member>172.22.2.109:5703</member>
                    <member>172.22.2.109:5704</member>
                </member-list>
            </tcp-ip>
            <!-- 其他发现机制 -->
        </join>
        <ssl enabled="false"/>
        <failure-detector>
            <icmp enabled="false"/>
        </failure-detector>
        <rest-api enabled="true">
            <endpoint-group name="HEALTH_CHECK" enabled="true"/>
            <endpoint-group name="CLUSTER_READ" enabled="false"/>
        </rest-api>
    </network>

hazelcast-2.xml

<network>
        <port  auto-increment="true" port-count="100">5703</port>
        <interfaces enabled="false">
            <interface>127.0.0.1</interface>
            <!-- 可以添加更多本地 IP     -->
        </interfaces>
        <outbound-ports>
            <ports>0</ports>
        </outbound-ports>
        <join>
            <auto-detection enabled="false"/>
            <multicast enabled="false"/>
            <tcp-ip enabled="true">
                <member-list>
                    <member>172.22.2.109:5703</member>
                    <member>172.22.2.109:5704</member>
                </member-list>
            </tcp-ip>
            <!-- 其他发现机制 -->
        </join>
        <ssl enabled="false"/>
        <failure-detector>
            <icmp enabled="false"/>
        </failure-detector>
        <rest-api enabled="true">
            <endpoint-group name="HEALTH_CHECK" enabled="true"/>
            <endpoint-group name="CLUSTER_READ" enabled="false"/>
        </rest-api>
    </network>

1.4启动脚本

一定要通过-Dhazelcast.config=xxx来制定配置文件,–config 的方式不生效

#!/bin/bash

# 定义 Hazelcast 配置文件和日志文件的路径
CONFIG_FILE_1="config/hazelcast-1.xml"
CONFIG_FILE_2="config/hazelcast-2.xml"
LOG_FILE_1="logs/hazelcast-1.log"
LOG_FILE_2="logs/hazelcast-2.log"

# 定义类路径,假设所有依赖都在 lib 目录下
CLASSPATH="lib/hazelcast-5.3.5.jar:lib/*"

# 定义要运行的 Java 主类
MAIN_CLASS="com.hazelcast.core.server.HazelcastMemberStarter"

# 启动第一个 Hazelcast 实例
echo "Starting Hazelcast instance 1..."
nohup java -Dhazelcast.config=$CONFIG_FILE_1 -cp "$CLASSPATH" "$MAIN_CLASS" --config "$CONFIG_FILE_1" > "$LOG_FILE_1" 2>&1 &
if [ $? -eq 0 ]; then
    echo "Hazelcast instance 1 started successfully. Logs: $LOG_FILE_1"
else
    echo "Failed to start Hazelcast instance 1. Check logs: $LOG_FILE_1"
fi

# 启动第二个 Hazelcast 实例
echo "Starting Hazelcast instance 2..."
nohup java -Dhazelcast.config=$CONFIG_FILE_2 -cp "$CLASSPATH" "$MAIN_CLASS" --config "$CONFIG_FILE_2" > "$LOG_FILE_2" 2>&1 &
if [ $? -eq 0 ]; then
    echo "Hazelcast instance 2 started successfully. Logs: $LOG_FILE_2"
else
    echo "Failed to start Hazelcast instance 2. Check logs: $LOG_FILE_2"
fi

2.防火墙设置

2.1查看防火墙状态:

sudo firewall-cmd --state

检查防火墙服务状态:

sudo systemctl status firewalld

检查端口开放情况

列出所有开放的端口:
使用以下命令列出当前开放的所有端口:

sudo firewall-cmd --list-ports

2.2检查特定端口是否开放:

使用以下命令检查特定端口是否已开放,例如端口 5703 和 5704:

sudo firewall-cmd --query-port=5703/tcp
sudo firewall-cmd --query-port=5704/tcp

如果端口已开放,输出将是 yes;否则,输出将是 no。

开放端口
如果某些端口尚未开放,可以使用以下命令开放这些端口:

2.3开放端口:

sudo firewall-cmd --add-port=5703/tcp --permanent
sudo firewall-cmd --add-port=5704/tcp --permanent

重新加载防火墙配置,使新配置生效:

sudo firewall-cmd --reload
验证端口是否已开放:

再次检查端口是否已开放:

sudo firewall-cmd --query-port=5703/tcp
sudo firewall-cmd --query-port=5704/tcp
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值