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

相关文章

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

SpringBoot请求参数传递与接收示例详解

《SpringBoot请求参数传递与接收示例详解》本文给大家介绍SpringBoot请求参数传递与接收示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录I. 基础参数传递i.查询参数(Query Parameters)ii.路径参数(Path Va

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模