pgpool-II + postgressql 集群高可用搭建(保姆级文档)

这篇具有很好参考价值的文章主要介绍了pgpool-II + postgressql 集群高可用搭建(保姆级文档)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文档背景:用公司集群实际搭建过程,用心整理文档.

文档目的:让更多的开发者避开坑点快速将集群搭建成功!

正文:

我们使用 CentOS 7.4 的 3 台服务器。让这些服务器为server1、 server2、server3。我们在每台服务器上 安装PostgreSQL和Pgpool-II 。

pgpool-II + postgressql 集群高可用搭建(保姆级文档)

表 8-2。主机名和 IP 地址
pgpool-II + postgressql 集群高可用搭建(保姆级文档)

表 8-3。PostgreSQL 版本和配置
pgpool-II + postgressql 集群高可用搭建(保姆级文档)

表 8-4。Pgpool-II 版本及配置
pgpool-II + postgressql 集群高可用搭建(保姆级文档)
注:由于在服务器上9000端口被clickhouse使用,这里我们看门狗的端口改成90001

8.3.3. 安装
在这个例子中,我们使用 YUM 安装Pgpool-II和PostgreSQL RPM 包。

使用PostgreSQL YUM 存储库 安装PostgreSQL 。

[所有服务器]# yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
[所有服务器]# yum install -y postgresql11-server

由于Pgpool-II相关软件包也包含在PostgreSQL YUM 存储库中,因此将“排除”设置添加到/etc/yum.repos.d/pgdg-redhat-all.repo 以便不会从PostgreSQL YUM 存储库 安装Pgpool-II 。

[所有服务器]# vi /etc/yum.repos.d/pgdg-redhat-all.repo

以下是/etc/yum.repos.d/pgdg-redhat-all.repo的设置示例。

[pgdg-common]
...
exclude=pgpool*

[pgdg14]
...
exclude=pgpool*

[pgdg13]
...
exclude=pgpool*

[pgdg12]
...
exclude=pgpool*

[pgdg11]
...
exclude=pgpool*

[pgdg10]
...
exclude=pgpool*

[pgdg96]
...
exclude=pgpool*

从 Pgpool-II YUM 存储库 安装Pgpool-II 。

[所有服务器]# yum install -y http://www.pgpool.net/yum/rpms/4.1/redhat/rhel-7-x86_64/pgpool-II-release-4.1-2.noarch.rpm
[所有服务器]# yum install -y pgpool-II-pg11-*

8.3.4. 在开始之前
在开始配置过程之前,请检查以下先决条件。

在主服务器上 设置PostgreSQL流式复制。在这个例子中,我们使用 WAL 归档。

首先,我们创建目录/var/lib/pgsql/archivedir来存储 所有服务器上的WAL段。在这个例子中,只有 Primary 节点 在本地 归档WAL 。

[所有服务器]# su - postgres
[所有服务器]$ mkdir /var/lib/pgsql/archivedir

在主服务器上 初始化PostgreSQL 。

[server1]# su - postgres
[server1]$ /usr/pgsql-11/bin/initdb -D $PGDATA

然后我们编辑server1 (primary) 上的配置文件$PGDATA/postgresql.conf如下。启用wal_log_hints 以使用pg_rewind。由于 Primary 可能稍后会成为 Standby,因此我们设置hot_standby = on。

listen_addresses = '*'
archive_mode = on
archive_command = 'cp "%p" "/var/lib/pgsql/archivedir/%f"'
max_wal_senders = 10
max_replication_slots = 10
wal_level = replica
hot_standby = on
wal_log_hints = on

我们使用Pgpool-II的在线恢复功能在主服务器启动后设置备用服务器。

由于安全原因,我们创建了一个用户repl仅用于复制目的,以及一个用户pgpool用于Pgpool-II的流复制延迟检查和健康检查。

表 8-5。用户
pgpool-II + postgressql 集群高可用搭建(保姆级文档)

[server1]# psql -U postgres -p 5432
postgres=# SET password_encryption = 'md5';
postgres=# CREATE ROLE pgpool WITH LOGIN;
postgres=# CREATE ROLE repl WITH REPLICATION LOGIN;
postgres=# \password root
postgres=# \password root
postgres=# \password root

如果要在 SHOW POOL NODES命令结果中显示“replication_state”和“replication_sync_state”列,角色pgpool 需要是 PostgreSQL 超级用户或pg_monitor组( Pgpool -II 4.1 或更高版本)。将pg_monitor 授予pgpool:

GRANT pg_monitor TO pgpool;

假设所有Pgpool-II服务器和 PostgreSQL服务器在同一个子网中,编辑pg_hba.conf以启用MD5身份验证方法。(关键)

直接将替换如下:

# TYPE DATABASE USER ADDRESS METHOD

# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all trust
host replication all 127.0.0.1/32 trust
host replication all ::1/128 trust
host all all 0.0.0.0/0 trust
host replication repl samenet trust

要使用Pgpool-II 的自动故障转移和在线恢复,允许Pgpool-II执行用户(默认 root 用户)和postgres用户之间以及postgres用户和postgres用户之间的所有后端服务器的无密码SSH 设置是必要的。在所有服务器上执行以下命令以设置无密码SSH。生成的密钥文件名为id_rsa_pgpool。

[all servers]# mkdir ~/.ssh
[all servers]# chmod 700 ~/.ssh
[all servers]# cd ~/.ssh
[all servers]$ ssh-keygen -t rsa -f id_rsa_pgpool
[all servers]# ssh-copy-id postgres@server1
[all servers]# ssh-copy-id postgres@server2
[all servers]# ssh-copy-id postgres@server3

[all servers]# su - postgres
[all servers]$ mkdir ~/.ssh
[all servers]$ chmod 700 ~/.ssh
[all servers]$ cd ~/.ssh
[all servers]$ ssh-keygen -t rsa -f id_rsa_pgpool
[all servers]$ ssh-copy-id  postgres@server1
[all servers]$ ssh-copy-id  postgres@server2
[all servers]$ ssh-copy-id  postgres@server3

最新版本没有ssh-copy-id命令 用如下命令替代

cat ~/.ssh/id_*.pub|ssh postgres@172.16.1.185 'cat>> ~/.ssh/authorized_keys'
cat ~/.ssh/id_*.pub|ssh postgres@172.16.1.193 'cat>> ~/.ssh/authorized_keys'
cat ~/.ssh/id_*.pub|ssh postgres@172.16.1.198 'cat>> ~/.ssh/authorized_keys'
vi /etc/ssh/ssh.config

添加一行 配置读取秘钥文件

IdentityFile ~/.ssh/id_rsa_pgpool

设置好后,使用ssh postgres@serverX -i ~/.ssh/id_rsa_pgpool命令确保不输入密码也能登录。如果执行ssh-copy-id失败,请为postgres用户设置密码并暂时允许密码验证。

为了允许repl用户在不指定密码的情况下进行流复制和在线恢复,并 使用postgres执行pg_rewind,我们在postgres用户的主目录中创建.pgpass文件,并将每个PostgreSQL服务器 上的权限更改为 600 。

[all servers]# su - postgres
[all servers]$ vi /var/lib/pgsql/.pgpass
server1:5432:replication:repl:<repl user password>
server2:5432:replication:repl:<repl user password>
server3:5432:replication:repl:<repl user password>
server1:5432:postgres:postgres:<postgres user password>
server2:5432:postgres:postgres:<postgres user password>
server3:5432:postgres:postgres:<postgres user password>
[all servers]$ chmod 600  /var/lib/pgsql/.pgpass

连接Pgpool-II和PostgreSQL服务器时,必须通过启用防火墙管理软件来访问目标端口。以下是CentOS/RHEL7的示例。

[all servers]# firewall-cmd --permanent --zone=public --add-service=postgresql
[all servers]# firewall-cmd --permanent --zone=public --add-port=9999/tcp --add-port=9898/tcp --add-port=9001/tcp --add-port=9694/udp
[all servers]# firewall-cmd --reload

8.3.5。Pgpool-II配置
8.3.5.1。常用设置
以下是server1、server2和server3上的常用设置。

从 RPM 安装Pgpool-II时,所有Pgpool-II配置文件都在/etc/pgpool-II中。在此示例中,我们复制流复制模式的示例配置文件。

# cp -p /etc/pgpool-II/pgpool.conf.sample-stream /etc/pgpool-II/pgpool.conf

为了允许 Pgpool-II 接受所有传入的连接,我们设置了listen_addresses = ‘*’。

listen_addresses = '*'

配置服务器node节点信息

[all servers]vi /etc/pgpool-II/pgpool_node_id

根据设备顺序,填入数字,0,1,2…

指定复制延迟检查用户和密码。在此示例中,我们将 sr_check_user留空,并在pool_passwd中创建条目。从Pgpool-II 4.0 开始,如果这些参数留空, Pgpool-II将首先尝试从sr_check_password文件中获取该特定用户的密码,然后再使用空密码。

sr_check_user = 'pgpool'
sr_check_password = ''

启用健康检查,以便Pgpool-II执行故障转移。此外,如果网络不稳定,即使后端运行正常,健康检查也会失败,可能会出现故障转移或退化操作。为了防止这种健康检查的错误检测,我们设置health_check_max_retries = 3。以与sr_check_user和sr_check_password相同的方式指定health_check_user和health_check_password。

health_check_period = 5
health_check_timeout = 30
health_check_user = 'pgpool'
health_check_password = ''
health_check_max_retries = 3

指定PostgreSQL后端信息。可以通过在参数名称末尾添加一个数字来指定多个后端。

- Backend Connection Settings -
backend_hostname0 = 'server1'
backend_port0 = 5432
backend_weight0 = 1
backend_data_directory0 = '/var/lib/pgsql/11/data'
backend_flag0 = 'ALLOW_TO_FAILOVER'
backend_application_name0 = 'server1'
backend_hostname1 = 'server2'
backend_port1 = 5432
backend_weight1 = 1
backend_data_directory1 = '/var/lib/pgsql/11/data'
backend_flag1 = 'ALLOW_TO_FAILOVER'
backend_application_name1 = 'server2'

backend_hostname2 = 'server3'
backend_port2 = 5432
backend_weight2 = 1
backend_data_directory2 = '/var/lib/pgsql/11/data'
backend_flag2 = 'ALLOW_TO_FAILOVER'
backend_application_name2 = 'server3'

8.3.5.2。故障转移配置
在failover_command 参数 中指定故障转移后要执行的 failover.sh 脚本。如果我们使用 3 个 PostgreSQL 服务器,我们需要指定 follow_master_command 在主节点故障转移后运行。如果有两个 PostgreSQL 服务器,follow_master_command 设置不是必需的。

Pgpool-II在执行脚本时将以下特殊字符替换为后端特定信息。有关每个字符的更多详细信息,请参见failover_command。

failover_command = '/etc/pgpool-II/failover.sh %d %h %p %D %m %H %M %P %r %R %N %S'
follow_master_command = '/etc/pgpool-II/follow_master.sh %d %h %p %D %m %H %M %P %r %R'

注意: %N和%S是在Pgpool-II 4.1 中添加的。请注意,如果使用 Pgpool-II 4.0 或更早版本,则无法指定这些字符。

示例脚本failover.sh 和follow_master.sh 安装在/etc/pgpool-II/中。使用这些示例文件创建故障转移脚本。

[all servers]# cp -p /etc/pgpool-II/failover.sh{.sample,}
[all servers]# cp -p /etc/pgpool-II/follow_master.sh{.sample,}
[all servers]# chown postgres:postgres /etc/pgpool-II/{failover.sh,follow_master.sh}

基本上,如果您根据 PostgreSQL 安装目录 更改PGHOME ,它应该可以工作。

[server1]# vi /etc/pgpool-II/failover.sh
...
PGHOME=/usr/pgsql-11
...

[server1]# vi /etc/pgpool-II/follow_master.sh
...
PGHOME=/usr/pgsql-11
...

将ssh脚本文件改成 默认名称
由于使用follow_master_command脚本中的PCP命令 需要用户认证,我们需要在pcp.conf中以“用户名:加密密码” 的格式指定用户名和md5加密密码。

如果在follow_master.sh的PCP_USER中指定了pgpool用户,

# cat /etc/pgpool-II/follow_master.sh
...
PCP_USER=pgpool
...

将ssh脚本文件改成 默认名称
然后我们使用pg_md5为pgpool用户创建加密密码条目,如下所示:

[all servers]# echo 'pgpool:'`pg_md5  passowrd` >> /etc/pgpool-II/pcp.conf

由于follow_master.sh脚本必须在不输入密码的情况下执行PCP命令,所以我们需要在每台服务器的Pgpool -II启动用户(postgres用户) 的主目录下 创建.pcppass 。

[all servers]# su - postgres
[all servers]$ echo 'localhost:9898:pgpool:<pgpool user password>' > ~/.pcppass
[all servers]$ chmod 600 ~/.pcppass

注意:follow_master.sh 脚本不支持表空间。如果您正在使用表空间,则需要修改脚本以支持表空间。

8.3.5.3。Pgpool-II 在线恢复配置
接下来,为了使用Pgpool-II执行在线恢复,我们指定PostgreSQL用户名和在线恢复命令 recovery_1st_stage。因为 执行在线恢复需要PostgreSQL中的超级用户权限,所以我们在recovery_user中指定postgres用户。然后,我们在PostgreSQL主服务器(server1) 的数据库集群目录下创建recovery_1st_stage和pgpool_remote_start,并添加执行权限。

recovery_user = 'postgres'
recovery_password = ''
recovery_1st_stage_command = 'recovery_1st_stage'

在线恢复示例脚本recovery_1st_stage 和pgpool_remote_start 安装在/etc/pgpool-II/中。将这些文件复制到主服务器 (server1) 的数据目录。

[server1]# cp -p /etc/pgpool-II/recovery_1st_stage.sample /var/lib/pgsql/11/data/recovery_1st_stage
[server1]# cp -p /etc/pgpool-II/pgpool_remote_start.sample /var/lib/pgsql/13/data/pgpool_remote_start
[server1]# chown postgres:postgres /var/lib/pgsql/11/data/{recovery_1st_stage,pgpool_remote_start}

基本上,如果您根据 PostgreSQL 安装目录 更改PGHOME ,它应该可以工作。

[server1]# vi /var/lib/pgsql/11/data/recovery_1st_stage
...
PGHOME=/usr/pgsql-11
...
[server1]# vi /var/lib/pgsql/11/data/pgpool_remote_start
...
PGHOME=/usr/pgsql-11
...

为了使用在线恢复功能,pgpool_recovery所以我们需要安装 在PostgreSQL服务器 server1的 template1 上。

[server1]# su - postgres
[server1]$ psql template1 -c "CREATE EXTENSION pgpool_recovery"

注意: recovery_1st_stage脚本不支持表空间。如果您正在使用表空间,则需要修改脚本以支持表空间。

8.3.5.4。客户端认证配置
因为在开始前一节中,我们已经将PostgreSQL认证方式设置为 scram-sha-256,所以需要通过 Pgpool-II设置客户端认证来连接后端节点。使用 RPM 安装时, Pgpool -II配置文件 pool_hba.conf位于/etc/pgpool-II中。默认情况下,pool_hba 身份验证被禁用,设置enable_pool_hba = on 以启用它。

enable_pool_hba = on

pool_hba.conf文件 的格式非常接近 PostgreSQL 的 pg_hba.conf格式。将pgpool和postgres用户的身份验证方法设置为scram-sha-256。(关键)

直接替换如下:

# TYPE DATABASE USER CIDR-ADDRESS METHOD

# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
host all pgpool 0.0.0.0/0 trust
host all postgres 0.0.0.0/0 trust
host all all 0.0.0.0/0 trust
host replication repl 0.0.0.0/0 trust

生成pool_passwd文件,它将被创建在与 pgpool.conf相同的目录中。

[all servers]# su - postgres
[all servers]$ pg_md5 -p -m -u postgres pool_passwd
password: [pgpool user's password]
[all servers]$ pg_md5 -p -m -u pgpool pool_passwd
password: [postgres user's passowrd]
# cat /etc/pgpool-II/pool_passwd 

postgres:md52a29a4f7eb0a98abca0992ca3fb555b6
pgpool:md5bc458983af9a98798fefe59c1a81b8bd

8.3.5.5。看门狗配置
在server1、server2、server3 上启用看门狗功能。

use_watchdog = on

指定接受来自 server1、server2、server3上的客户端连接的虚拟 IP 地址。确保尚未使用设置为虚拟 IP 的 IP 地址。

delegate_IP = '172.16.1.252'

为了启动/关闭虚拟 IP 并发送 ARP 请求,我们设置了 if_up_cmd、if_down_cmd和arping_cmd。此示例中使用的网络接口是“enp0s8”。由于执行if_up/down_cmd或 arping_cmd命令需要 root 权限,因此在这些命令上使用 setuid 或允许 Pgpool-II启动用户、postgres用户(Pgpool-II 4.1 或更高版本)在没有密码的情况下 运行sudo命令。

注意: 如果使用 RPM 安装Pgpool-II,则postgres 用户已配置为通过sudo运行ip/arping ,无需密码。

postgres ALL=NOPASSWD: /sbin/ip
postgres ALL=NOPASSWD: /usr/sbin/arping

这里我们配置以下参数以使用 sudo 运行if_up/down_cmd或arping_cmd。

if_up_cmd = '/usr/bin/sudo /sbin/ip addr add $_IP_$/24 dev em1 label em1:0'
if_down_cmd = '/usr/bin/sudo /sbin/$_IP_$/24 dev em1 的 IP 地址'
arping_cmd = '/usr/bin/sudo /usr/sbin/arping -U $_IP_$ -w 1 -I em1'

注:em1 根据实际网卡填写 ifconfig命令查看

根据命令路径 设置if_cmd_path和arping_path 。如果if_up/down_cmd或arping_cmd以“/”开头,这些参数将被忽略。

if_cmd_path = '/sbin'
arping_path = '/usr/sbin'

指定每个Pgpool-II服务器 的主机名和端口号。

server1

wd_hostname = 'server1'
wd_port = 9001

server2

wd_hostname = 'server2'
wd_port = 9001

server3

wd_hostname = 'server3'
wd_port = 9001

指定每个Pgpool- II 服务器上受监控的 Pgpool-II服务器的主机名、 Pgpool-II端口号和看门狗端口号。

server1

- 其他 pgpool 连接设置 -
other_pgpool_hostname0 = 'server2'
other_pgpool_port0 = 9999
other_wd_port0 = 9001
other_pgpool_hostname1 = 'server3'
other_pgpool_port1 = 9999
other_wd_port1 = 9001

服务器2

- 其他 pgpool 连接设置 -
other_pgpool_hostname0 = 'server1'
other_pgpool_port0 = 9999
other_wd_port0 = 9001
other_pgpool_hostname1 = 'server3'
other_pgpool_port1 = 9999
other_wd_port1 = 9001

服务器3

- 其他 pgpool 连接设置 -
other_pgpool_hostname0 = 'server1'
other_pgpool_port0 = 9999
other_wd_port0 = 9001                                          
other_pgpool_hostname1 = 'server2'
other_pgpool_port1 = 9999
other_wd_port1 = 9001

在server1、server2、server3 上指定发送心跳信号的目标主机名和端口号。

server1

heartbeat_destination0 = 'server2'
heartbeat_destination_port0 = 9694
heartbeat_device0 = ''
heartbeat_destination1 = 'server3'
heartbeat_destination_port1 = 9694
heartbeat_device1 = ''

server2

heartbeat_destination0 = 'server1'
heartbeat_destination_port0 = 9694
heartbeat_device0 = ''
heartbeat_destination1 = 'server3'
heartbeat_destination_port1 = 9694
heartbeat_device1 = ''

server3

heartbeat_destination0 = 'server1'
heartbeat_destination_port0 = 9694
heartbeat_device0 = ''
heartbeat_destination1 = 'server2'
heartbeat_destination_port1 = 9694
heartbeat_device1 = ''

8.3.5.6。/etc/sysconfig/pgpool 配置
如果您想在Pgpool -II启动时忽略pgpool_status文件, 请在/etc/sysconfig/pgpool的启动选项 OPTS 中添加“-D” 。

[all servers]# vi /etc/sysconfig/pgpool 
...
OPTS=" -D -n"

8.3.5.7。日志记录
在示例中,我们将Pgpool-II的日志输出到syslog。

log_destination = 'syslog'
syslog_facility = 'LOCAL1'

创建Pgpool-II日志文件。

[all servers]# mkdir /var/log/pgpool-II
[all servers]# touch /var/log/pgpool-II/pgpool.log

编辑 syslog /etc/rsyslog.conf的配置文件。

[all servers]# vi /etc/rsyslog.conf

*.info;mail.none;authpriv.none;cron.none;LOCAL1.none    /var/log/messages
LOCAL1.*                                                /var/log/pgpool-II/pgpool.log

设置 logrotate 与/var/log/messages相同。

[all servers]# vi /etc/logrotate.d/syslog
...
/var/log/messages
/var/log/pgpool-II/pgpool.log
/var/log/secure

重新启动 rsyslog 服务。

[all servers]# systemctl restart rsyslog

Pgpool-II 的设置完成。

8.3.6. 启动/停止 Pgpool-II
接下来我们启动Pgpool-II。在启动 Pgpool-II之前,请先启动 PostgreSQL服务器。另外,停止PostgreSQL时,需要先停止 Pgpool-II。

启动Pgpool-II

在开始之前的 部分,我们已经设置了Pgpool-II的自动启动。要启动 Pgpool-II,请重新启动整个系统或执行以下命令。

# systemctl start pgpool.service

停止Pgpool-II

# systemctl stop pgpool.service

8.3.7.1。设置 PostgreSQL 备用服务器
首先,我们应该使用Pgpool-II在线恢复功能 设置PostgreSQL备用服务器。确保pcp_recovery_node命令使用的recovery_1st_stage和pgpool_remote_start 脚本位于PostgreSQL主服务器 ( server1 ) 的数据库集群目录中。

# pcp_recovery_node -h 172.16.1.221 -p 9898 -U pgpool -n 1

密码:
pcp_recovery_node – Command Successful

# pcp_recovery_node -h 172.16.1.221 -p 9898 -U pgpool -n 2

密码:
pcp_recovery_node – Command Successful

数据库数据地址:
/var/lib/pgsql/11/data/
pgpool数据地址:
/etc/pgpool_II

相关命令:

初始化数据库:

/usr/pgsql-11/bin/initdb -D /var/lib/pgsql/11/data

查看数据库集群状态:

psql -h 172.16.1.252 -p 9999 -U pgpool postgres -c "show pool_nodes"

查看pool集群状态:

pcp_watchdog_info -h 172.16.1.252 -p 9898 -U pgpool

启动数据库服务:

/usr/pgsql-11/bin/pg_ctl start -D /var/lib/pgsql/11/data

启动停止pgpool:

systemctl stop pgpool.service
systemctl start pgpool.service

手动在线恢复恢复数据库:

pcp_recovery_node -h 172.16.1.252 -p 9898 -U pgpool -n 1

查看pgpool日志:

tail -n 500 /var/log/pgpool-II/pgpool.log

查看数据库日志:

tail -n 500 /var/lib/pgsql/11/data/log/postgresql-Mon.log

手动将节点添加到集群:

pcp_attach_node -d -U postgres -h 172.16.1.252 -p 9898 -n 1

快速停掉数据库:文章来源地址https://www.toymoban.com/news/detail-497502.html

/usr/pgsql-11/bin/pg_ctl -D /var/lib/pgsql/11/data -m immediate stop

到了这里,关于pgpool-II + postgressql 集群高可用搭建(保姆级文档)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RabbitMQ高可用集群搭建

    理论简介 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题。实现高性能、高可用、可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件。目前在生产环境,使用较多的消息队列有ActiveMQ、RabbitMQ、Kafka、RocketMQ等。 Rabbi

    2024年02月20日
    浏览(43)
  • 【RabbitMQ】之高可用集群搭建

    一、RabbitMQ 集群原理 1、默认集群原理 2、镜像集群原理 3、负载均衡方案 二、RabbitMQ 高可用集群搭建 1、RabbitMQ 集群搭建 2、配置镜像队列 3、HAProxy 环境搭建 4、Keepalived 环境搭建 3-1、RabbitMQ 集群简介 单台 RabbitMQ 服务器处理消息的能力是有瓶颈的,而且可靠性还无法保证,所

    2024年02月15日
    浏览(44)
  • 保姆级教学——集群环境搭建及创建集群

    一些默认,加载镜像开启虚拟机,在安装位置选择自己目录,然后建立分区,首先添加 挂载点,类型标准分区,文件系统ext4 加载分区,期望给2G, 类型标准分区,swap默认 然后剩下47G给/就可以 网络打开,把kudmp对勾去掉 安装完成重新启动 查看自己的ip地址ip addr,我的是192

    2024年02月08日
    浏览(43)
  • Hadoop高可用(HA)集群搭建

    高可用(high availability,HA)指的是若当前工作中的机器宕机了,系统会自动处理异常,并将工作无缝地转移到其他备用机器上,以保证服务的高可靠性与可用性。 而Zookeeper是一个分布式协调服务, Zookeeper即可用来保证Hadoop集群的高可用性 。通过zookeeper集群与Hadoop2.X中的两个

    2024年02月16日
    浏览(44)
  • 【大数据】Hadoop高可用集群搭建

    大家好!这篇文章是我在搭建Hdfs的HA(高可用)时写下的详细笔记与感想,希望能帮助到大家!本篇文章收录于 初心 的 大数据 专栏。 🏠 个人主页:初心%个人主页 🧑 个人简介:大家好,我是初心,和大家共同努力 💕 座右铭:理想主义的花,终究会盛开在浪漫主义的土壤里

    2024年02月06日
    浏览(41)
  • centos 搭建 zookeeper 高可用集群

    主机名 IP地址 spark01 192.168.171.101 spark02 192.168.171.102 spark03 192.168.171.103 1. 升级内核和软件 2. 安装常用软件 3. 关闭防火墙 4. 修改主机名 5. 修改IP地址 参考如下: 6. 修改hosts配置文件 修改内容如下: 7. 重启系统 8. 下载安装JDK和Zookeeper并配置环境变量 在所有主机节点创建软件目

    2024年02月05日
    浏览(51)
  • 最全Hadoop实际生产集群高可用搭建

    序号 bigdata-001 bigdata-002 bigdata-003 bigdata-004 bigdata-005 IP x x x x x x xxx xxx xxx 组件 hadoop1 hadoop2 hadoop3 hadoop4 hadoop5 内存 64G 64G 128G 128G 128G CPU核 16 16 32 32 32 Hadoop-3.3.4 NameNode NameNode DataNode DataNode DataNode ResourceManager ResourceManager NodeManager NodeManager NodeManager DFSZKFailoverController DFSZKFailoverCont

    2024年02月03日
    浏览(51)
  • 使用nginx搭建kubernetes高可用集群

    本文使用 nginx 搭建 kubernetes 高可用集群。 服务器规划(本实验采用虚拟机): ip hostname 说明 192.168.43.200 master master 192.168.43.201 slave1 slave 192.168.43.202 slave2 slave 192.168.43.203 master2 master 192.168.43.165 nginx nginx主机 2.1 关闭防火墙 2.2 关闭 selinux 2.3 关闭 swap 2.4 设置主机名称 使用命令 h

    2024年02月10日
    浏览(68)
  • 【Hadoop】HA高可用搭建保姆级教程(大二学长的万字笔记)

    大家好!我是初心,今天给大家带来的是Hadoop HA搭建保姆级教程,来自大二学长的万字长文自述和笔记! 相信很多人看到这个标题时,可能会产生一种疑问:博主你之前不是出过一期关于Hadoop HA高可用集群搭建的教程了吗,这次怎么还出一篇?是有什么改进的地方吗? 没错

    2024年02月15日
    浏览(53)
  • 12. Redis分布式高可用集群搭建

    主从复制,哨兵,集群(master-cluster) 1. 主从模式 2. 哨兵 3. 集群(master-cluster) 1. 关闭防火墙,三台机器都执行 2. hostname修改,三台机器都执行,这一步是为了在内网中三台服务器能相互连通 3. 免登陆,三台机器都执行 4. 安装gcc并升级 5. 下载redis,在三台机器上都执行 6.创

    2024年02月14日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包