《日均70亿请求项目实战》之部署三台zookeeper集群

2024-06-07 03:12

本文主要是介绍《日均70亿请求项目实战》之部署三台zookeeper集群,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

个人名片
在这里插入图片描述
🎓作者简介:java领域优质创作者
🌐个人主页:码农阿豪
📞工作室:新空间代码工作室(提供各种软件服务)
💌个人邮箱:[2435024119@qq.com]
📱个人微信:15279484656
🌐个人导航网站:www.forff.top
💡座右铭:总有人要赢。为什么不能是我呢?

  • 专栏导航:

码农阿豪系列专栏导航
面试专栏:收集了java相关高频面试题,面试实战总结🍻🎉🖥️
Spring5系列专栏:整理了Spring5重要知识点与实战演练,有案例可直接使用🚀🔧💻
Redis专栏:Redis从零到一学习分享,经验总结,案例实战💐📝💡
全栈系列专栏:海纳百川有容乃大,可能你想要的东西里面都有🤸🌱🚀

目录

  • 部署三台zookeeper集群
    • 安装Java环境
    • 准备zookeeper包
    • 上传到服务器
    • 解压缩
    • 建立软链接
    • 进入配置文件目录
    • 备份并编辑配置文件
    • 创建需要的目录
    • 配置每台服务器的`myid`文件
    • 启动Zookeeper(bash形式)
    • 启动Zookeeper(service形式)
      • 配置说明
      • 使用步骤
    • 查看服务是否启动成功

全是干货

部署三台zookeeper集群

安装Java环境

sudo yum update
sudo yum install java-1.8.0-openjdk-devel
java -version

准备zookeeper包

apache-zookeeper-3.5.10-bin.tar.gz

上传到服务器

解压缩

tar -zxvf apache-zookeeper-3.5.10-bin.tar.gz 

建立软链接

ln -s /opt/apache-zookeeper-3.5.10-bin /opt/zookeeper

进入配置文件目录

cd /opt/zookeeper/conf

备份并编辑配置文件

cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
内容:(注意粘贴的时候检查一下完整性,修改一下自己的ip)
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/data/zookeeper
dataLogDir=/opt/logs/zookeeper
clientPort=2181
server.1=ip1:2188:3188
server.2==ip2:2188:3188
server.3==ip3:2188:3188
4lw.commands.whitelist=*

tickTime: Zookeeper的基本时间单位,单位为毫秒。

initLimit: Follower节点在启动并同步数据时,Leader允许的最长时间(tickTime的倍数)。

syncLimit: Leader允许Follower节点之间消息同步的最大延迟(tickTime的倍数)。

dataDir: 存放快照文件的目录。

dataLogDir: 存放事务日志的目录。

clientPort: 客户端连接Zookeeper的端口。

server.X: 定义集群中的每个服务器。格式为server.id=host:port:electPort,其中id是服务器的唯一标识,port是Follower连接Leader的端口,electPort是进行Leader选举的端口。

4lw.commands.whitelist: 允许的四字母命令。

创建需要的目录

mkdir -p /opt/data/zookeeper/
mkdir -p /opt/logs/zookeeper/

配置每台服务器的myid文件

echo 1 > /opt/data/zookeeper/myid  # 在ip1上
echo 2 > /opt/data/zookeeper/myid  # 在ip2上
echo 3 > /opt/data/zookeeper/myid  # 在ip3上

启动Zookeeper(bash形式)

在每台服务器上,进入Zookeeper的bin目录,并启动Zookeeper服务:

cd /opt/zookeeper/bin
./zkServer.sh start

启动Zookeeper(service形式)

进入到 /etc/systemd/system目录

cd /etc/systemd/system/

创建zookeeper.service并输入以下内容

[Unit]
Requires=network.target remote-fs.target
After=network.target remote-fs.target
[Service]
Type=forking
User=zookeeper
Group=zookeeper
Environment=ZOO_LOG_DIR=/opt/logs/zookeeper/
PIDFile=/opt/data/zookeeper/zookeeper_server.pid
ExecStartPre=/usr/bin/rm -f /opt/data/zookeeper/zookeeper_server.pid
ExecStart=/bin/sh -c '/opt/zookeeper/bin/zkServer.sh start'
ExecStop=/bin/sh -c '/opt/zookeeper/bin/zkServer.sh stop'
ExecReload=/bin/sh -c '/opt/zookeeper/bin/zkServer.sh restart'
Restart=on-abnormal
[Install]
WantedBy=multi-user.target

配置说明

  • [Unit]:定义服务的依赖和启动顺序。
    • Requires=network.target remote-fs.target:表示服务启动需要网络和远程文件系统。
    • After=network.target remote-fs.target:确保网络和远程文件系统在服务启动之前已经启动。
  • [Service]:定义服务的启动、停止和重启行为。
    • Type=forking:表示服务在启动时会创建一个新的进程。
    • User=zookeeperGroup=zookeeper:指定运行服务的用户和组。
    • Environment="ZOO_LOG_DIR=/opt/logs/zookeeper/":设置环境变量。
    • PIDFile=/opt/data/zookeeper/zookeeper_server.pid:指定PID文件的位置。
    • ExecStartPre=/usr/bin/rm -f /opt/data/zookeeper/zookeeper_server.pid:在启动之前删除旧的PID文件。
    • ExecStart=/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zoo.cfg:启动Zookeeper服务。
    • ExecStop=/opt/zookeeper/bin/zkServer.sh stop:停止Zookeeper服务。
    • ExecReload=/opt/zookeeper/bin/zkServer.sh restart:重启Zookeeper服务。
    • Restart=on-abnormal:在异常情况下重启服务。
    • LimitNOFILE=4096:增加文件描述符限制。
  • [Install]:定义服务的安装行为。
    • WantedBy=multi-user.target:表示服务在多用户系统目标(即系统正常启动后的状态)下可用。

使用步骤

  1. 创建用户和组: 确保存在运行Zookeeper服务的用户和组:

    sudo useradd -r -m -d /opt/zookeeper -s /sbin/nologin zookeeper
    
  2. 设置权限: 确保Zookeeper安装目录和数据目录的权限正确:

    sudo chown -R zookeeper:zookeeper /opt/data/zookeeper
    sudo chown -R zookeeper:zookeeper /opt/logs/zookeeper
    sudo chmod -R 755 /opt/data/zookeeper
    sudo chmod -R 755 /opt/logs/zookeeper
    
  3. 创建和启用服务: 将上面的服务单元文件内容保存到 /etc/systemd/system/zookeeper.service,然后运行以下命令重新加载systemd守护进程,并启动Zookeeper服务:

    sudo systemctl daemon-reload
    sudo systemctl enable zookeeper
    sudo systemctl start zookeeper
    
  4. 检查服务状态: 查看Zookeeper服务状态以确保其正常运行:

    sudo systemctl status zookeeper
    

通过上述配置,你可以通过systemctl命令来管理Zookeeper服务,例如启动、停止和重启。这确保了服务的统一管理和自动重启,增强了系统的稳定性和可维护性。

查看服务是否启动成功

ps -ef|grep zookeeper

在这里插入图片描述

这篇关于《日均70亿请求项目实战》之部署三台zookeeper集群的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

SpringBoot整合 Quartz实现定时推送实战指南

《SpringBoot整合Quartz实现定时推送实战指南》文章介绍了SpringBoot中使用Quartz动态定时任务和任务持久化实现多条不确定结束时间并提前N分钟推送的方案,本文结合实例代码给大... 目录前言一、Quartz 是什么?1、核心定位:解决什么问题?2、Quartz 核心组件二、使用步骤1

mysql_mcp_server部署及应用实践案例

《mysql_mcp_server部署及应用实践案例》文章介绍了在CentOS7.5环境下部署MySQL_mcp_server的步骤,包括服务安装、配置和启动,还提供了一个基于Dify工作流的应用案例... 目录mysql_mcp_server部署及应用案例1. 服务安装1.1. 下载源码1.2. 创建独立

Springboot请求和响应相关注解及使用场景分析

《Springboot请求和响应相关注解及使用场景分析》本文介绍了SpringBoot中用于处理HTTP请求和构建HTTP响应的常用注解,包括@RequestMapping、@RequestParam... 目录1. 请求处理注解@RequestMapping@GetMapping, @PostMappin

Nginx服务器部署详细代码实例

《Nginx服务器部署详细代码实例》Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,:本文主要介绍Nginx服务器部署的相关资料,文中通过代码... 目录Nginx 服务器SSL/TLS 配置动态脚本反向代理总结Nginx 服务器Nginx是一个‌高性

SpringBoot整合AOP及使用案例实战

《SpringBoot整合AOP及使用案例实战》本文详细介绍了SpringAOP中的切入点表达式,重点讲解了execution表达式的语法和用法,通过案例实战,展示了AOP的基本使用、结合自定义注解以... 目录一、 引入依赖二、切入点表达式详解三、案例实战1. AOP基本使用2. AOP结合自定义注解3.

JAVA项目swing转javafx语法规则以及示例代码

《JAVA项目swing转javafx语法规则以及示例代码》:本文主要介绍JAVA项目swing转javafx语法规则以及示例代码的相关资料,文中详细讲解了主类继承、窗口创建、布局管理、控件替换、... 目录最常用的“一行换一行”速查表(直接全局替换)实际转换示例(JFramejs → JavaFX)迁移建

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

解决idea启动项目报错java: OutOfMemoryError: insufficient memory

《解决idea启动项目报错java:OutOfMemoryError:insufficientmemory》:本文主要介绍解决idea启动项目报错java:OutOfMemoryError... 目录原因:解决:总结 原因:在Java中遇到OutOfMemoryError: insufficient me

python项目环境切换的几种实现方式

《python项目环境切换的几种实现方式》本文主要介绍了python项目环境切换的几种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 如何在不同python项目中,安装不同的依赖2. 如何切换到不同项目的工作空间3.创建项目

SpringBoot项目整合Netty启动失败的常见错误总结

《SpringBoot项目整合Netty启动失败的常见错误总结》本文总结了SpringBoot集成Netty时常见的8类问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、端口冲突问题1. Tomcat与Netty端口冲突二、主线程被阻塞问题1. Netty启动阻