《日均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

相关文章

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

在Spring Boot中集成RabbitMQ的实战记录

《在SpringBoot中集成RabbitMQ的实战记录》本文介绍SpringBoot集成RabbitMQ的步骤,涵盖配置连接、消息发送与接收,并对比两种定义Exchange与队列的方式:手动声明(... 目录前言准备工作1. 安装 RabbitMQ2. 消息发送者(Producer)配置1. 创建 Spr

深度解析Spring Boot拦截器Interceptor与过滤器Filter的区别与实战指南

《深度解析SpringBoot拦截器Interceptor与过滤器Filter的区别与实战指南》本文深度解析SpringBoot中拦截器与过滤器的区别,涵盖执行顺序、依赖关系、异常处理等核心差异,并... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项