Geode多站点(MultiSite)同步实验

本文详细指导如何在四台服务器上部署Sender和Receiver集群,配置Gemfire properties,启动Locator和Server,创建分区冗余持久化溢出区,并进行数据同步。涉及步骤包括设置环境变量、启动服务和配置region。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

准备阶段

准备T1,T2,T3,T44台服务器

T1=192.168.68.17
T2=192.168.68.18
T3=192.168.68.20
T4=192.168.68.21

Sender集群: T1,T2
Receiver集群: T3,T4
在各个服务器上创建/opt/geode_work/目录

${GEODE_HOME}/config/gemfire.properties文件里的conserve-sockets=true改成conserve-sockets=false

Sender集群: T1,T2

  • T1
    进入工作目录cd /opt/geode_work/
    执行gfsh
#启动locator1
start locator --name=locator1 --port=10334 --locators=T1[10334] \
--initial-heap=1G --max-heap=8G \
--J=-Dgemfire.max-num-reconnect-tries=100 --J=-Dgemfire.member-timeout=120000 \
--J=-Dgemfire.distributed-system-id=101 \
--J=-Dgemfire.remote-locators=T3[10334]

#启动server1
start server --name=server1 --locator-wait-time=120 --server-port=40401 --locators=T1[10334] \
--lock-memory=true --initial-heap=16G --max-heap=16G --J=-Xmn8g \
--J=-Dgemfire.max-num-reconnect-tries=100  --J=-Dgemfire.member-timeout=120000 \
--off-heap-memory-size=32G --critical-off-heap-percentage=90 --eviction-off-heap-percentage=80 \
--J=-Dgemfire.distributed-system-id=101 \
--J=-Dgemfire.remote-locators=T3[10334]

#等待server2启动后再执行
create gateway-sender --id=sender1 --enable-persistence=true --manual-start=false --parallel=true --remote-distributed-system-id=102
#然后执行:list gateways 来查看状态

#创建region1
create region --name=region1 --type=PARTITION_REDUNDANT_PERSISTENT_OVERFLOW --redundant-copies=1 --off-heap=true \
--enable-statistics=true --entry-time-to-live-expiration=600 --entry-time-to-live-expiration-action=destroy \
--gateway-sender-id=sender1


  • T2
    进入工作目录cd /opt/geode_work/
    执行gfsh
#启动server2
start server --name=server2 --locator-wait-time=120 --server-port=40401 --locators=T1[10334] \
--lock-memory=true --initial-heap=16G --max-heap=16G --J=-Xmn8g \
--J=-Dgemfire.max-num-reconnect-tries=100  --J=-Dgemfire.member-timeout=120000 \
--off-heap-memory-size=32G --critical-off-heap-percentage=90 --eviction-off-heap-percentage=80 \
--J=-Dgemfire.distributed-system-id=101 \
--J=-Dgemfire.remote-locators=T3[10334]

Receiver集群: T3,T4

进入工作目录cd /opt/geode_work/
执行gfsh

  • T3
#启动locator3
start locator --name=locator3 --port=10334 --locators=T3[10334] \
--initial-heap=1G --max-heap=8G \
--J=-Dgemfire.max-num-reconnect-tries=100 --J=-Dgemfire.member-timeout=120000 \
--J=-Dgemfire.distributed-system-id=102

#启动server3
start server --name=server3 --locator-wait-time=120 --server-port=40401 --locators=T3[10334] \
--lock-memory=true --initial-heap=16G --max-heap=16G --J=-Xmn8g \
--J=-Dgemfire.max-num-reconnect-tries=100  --J=-Dgemfire.member-timeout=120000 \
--off-heap-memory-size=32G --critical-off-heap-percentage=90 --eviction-off-heap-percentage=80 \
--J=-Dgemfire.distributed-system-id=102

#等待server4启动后再执行
create gateway-receiver --start-port=1530 --end-port=1551
#然后执行:list gateways 来查看状态

#创建region1(要跟sender端的名字一样)
create region --name=region1 --type=PARTITION_REDUNDANT_PERSISTENT_OVERFLOW --redundant-copies=1 --off-heap=true \
--enable-statistics=true --entry-time-to-live-expiration=600 --entry-time-to-live-expiration-action=destroy


  • T4
    进入工作目录cd /opt/geode_work/
    执行gfsh
#启动server4
start server --name=server4 --locator-wait-time=120 --server-port=40401 --locators=T3[10334] \
--lock-memory=true --initial-heap=16G --max-heap=16G --J=-Xmn8g \
--J=-Dgemfire.max-num-reconnect-tries=100  --J=-Dgemfire.member-timeout=120000 \
--off-heap-memory-size=32G --critical-off-heap-percentage=90 --eviction-off-heap-percentage=80 \
--J=-Dgemfire.distributed-system-id=102

附录:

#web管理地址
http://192.168.68.17:7070/pulse/

#进入工作目录
cd /opt/geode_work

#查找geode进程
ps -ef | grep geode | grep -v grep
ps -ef | grep "LocatorLauncher" | grep -v grep
ps -ef | grep "ServerLauncher" | grep -v grep


#连接到集群并执行多个命令
gfsh -e "connect" -e "list members"
gfsh -e "connect" -e "list gateways"

#在gfsh里执行停止集群命令
gfsh>shutdown --include-locators=true --time-out=60

shell脚本的开头

#! /bin/sh

basedir=`dirname $0`
echo "BASE DIR:$basedir"
cd $basedir

导入,导出数据例子

1.在集群1中执行导出命令

export data --region=advert --file=advert_s156.gfd --member=server_1_156

2.把导出的文件复制到跳板机器中

sshpass -p 'fzUHuwlto7Yrl3gt' scp /opt/geode_work/server_1_156/advert_s156.gfd admin@192.168.2.114:/opt/data

3.在集群2的一个成员中把跳板机器中的文件复制到本地

sshpass -p 'fzUHuwlto7Yrl3gt' scp admin@192.168.2.114:/opt/data/advert_s156.gfd /opt/data/ 

4.在集群2中执行导入命令

import data --region=advert --file=/opt/data/advert_s156.gfd --member=server_13_71

5.重新平衡数据

rebalance --include-region=/advert
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱游泳的老白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值