ZooKeeper分布式实战(一) - 基本安装配置

本文涉及的产品
云原生网关 MSE Higress,422元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: ZooKeeper分布式实战(一) - 基本安装配置

1 概述

1.1 zookeeper 简介

  • 中间件,提供协调服务
  • 作用于分布式系统,发挥其优势,为大数据服务
  • 支持 Java,提供 Java 和 C语言的客户端 API

1.2 什么是分布式系统

  • 很多台计算机组成一个整体,一个整体一致对外并且处理同一请求
  • 内部的每台计算机都可以相互通信(REST/RPC)
  • 客户端到服务端的一次请求到响应结束会经历多台计算机

1.3 分布式系统的瓶颈

1.3.1 zookeeper 的特性

  • 一致性数据一致性,数据按照顺序分批入库
  • 原子性事务要么成功要么失败,不会局部化
  • 单一视图客户端连接集群中的任一 zk 节点,数据都是一致的
  • 可靠性每次对 zk的操作状态都会保存在服务端
  • 实时性客户端可以读取到 zk 服务端的最新数据

2 下载、安装以及配置

安装 JDK

2.1 单机模式

2.1.1 Linux环境操作

linux etc/profile:

2.1.2 Mac OS操作

$brew install zookeeper

==> Downloading https://homebrew.bintray.com/bottles/zookeeper-3.4.6_1.mavericks.bottle.2.tar.gz

######################################################################## 100.0%

==> Pouring zookeeper-3.4.6_1.mavericks.bottle.2.tar.gz

==> Caveats

To have launchd start zookeeper at login:

 ln -sfv /usr/local/opt/zookeeper/*.plist ~/Library/LaunchAgents

Then to load zookeeper now:

 launchctl load ~/Library/LaunchAgents/homebrew.mxcl.zookeeper.plist

Or, if you don't want/need launchctl, you can just run:

 zkServer start

==> Summary

安装成功后,在/usr/local/etc/zookeeper/目录,已有默认配置文件

$ cd /usr/local/etc/zookeeper/

$ ls

zoo.cfg

配置[/usr/local/etc/zookeeper/zoo.cfg] 文件

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

dataDir=/usr/local/var/run/zookeeper/data

dataLogDir=/usr/local/var/run/zookeeper/log

# the port at which the clients will connect

clientPort=2181

bin下的可执行文件:

手动下载

下载tar包解压,推荐使用3.5.x,不要使用3.6以高版本,和JDK1.8冲突,事到如今,也不要直接brew install zookeeper--默认会下载最高版本!很难用!

下载二进制安装包:

https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.5.10/apache-zookeeper-3.5.10-bin.tar.gz

解压缩:

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

将conf目录下的zoo_sample.cfg文件更名为zoo.cfg,简单修改配置文件,自定义设置数据文件目录和日志文件目录。

新建文件夹data和log:

$ zookeeper-3.5.10 ll

total 48

-rw-r--r--@ 1 sss admin 11K 5 19 2022 LICENSE.txt

-rw-r--r--@ 1 sss admin 432B 5 19 2022 NOTICE.txt

-rw-r--r--@ 1 sss admin 1.5K 5 19 2022 README.md

-rw-r--r--@ 1 sss admin 1.3K 5 19 2022 README_packaging.txt

drwxr-xr-x@ 13 sss admin 416B 5 19 2022 bin

drwxr-xr-x@ 5 sss admin 160B 3 8 17:49 conf

drwxr-xr-x 2 sss admin 64B 3 8 17:50 data

drwxr-xr-x@ 21 sss admin 672B 5 29 2022 docs

drwxr-xr-x 54 sss admin 1.7K 3 8 17:46 lib

drwxr-xr-x 2 sss admin 64B 3 8 17:50 log

修改路径地址:dataDir 和 dataLogDir

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

dataDir=/Volumes/doc/zookeeper-3.5.10/data

dataLogDir=/Volumes/doc/zookeeper-3.5.10/log

# the port at which the clients will connect

clientPort=2181

# the maximum number of client connections.

# increase this if you need to handle more clients

#maxClientCnxns=60

#

# Be sure to read the maintenance section of the

# administrator guide before turning on autopurge.

#

# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance

#

# The number of snapshots to retain in dataDir

#autopurge.snapRetainCount=3

# Purge task interval in hours

# Set to "0" to disable auto purge feature

#autopurge.purgeInterval=1

配置环境变量  

sudo vi ~/.bash_profile

export ZK_HOME=/Volumes/doc/zookeeper-3.5.10/

export PATH=$PATH:$ZK_HOME/bin

$ cd bin

$ bin zkServer.sh start

ZooKeeper JMX enabled by default

Using config: /Volumes/doc/zookeeper-3.5.10/bin/../conf/zoo.cfg

Starting zookeeper ... STARTED

3 常用命令

3.1 启动

执行命令zkServer:

$ zkServer

ZooKeeper JMX enabled by default

Using config: /usr/local/etc/zookeeper/zoo.cfg

Usage: ./zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}

zkServer status

$ zkServer status

ZooKeeper JMX enabled by default

Using config: /usr/local/etc/zookeeper/zoo.cfg

Mode: standalone

zkServer start

$ zkServer start

ZooKeeper JMX enabled by default

Using config: /usr/local/etc/zookeeper/zoo.cfg

Starting zookeeper ... STARTED

brew services start zookeeper

brew services restart zookeeper

3.2 查看运行状态

$ zkServer status

ZooKeeper JMX enabled by default

Using config: /usr/local/etc/zookeeper/zoo.cfg

Mode: standalone


相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
20天前
|
安全 网络安全 数据库
YashanDB分布式节点间SSL连接配置
本文介绍YashanDB分布式节点间SSL连接配置方法,确保通信安全。需统一为整个集群配置SSL,使用相同根证书签名的服务器证书,否则可能导致连接失败或数据库无法启动。文章详细说明了使用OpenSSL生成根证书、服务器私钥、证书及DH文件的步骤,并指导如何将证书分发至各节点。最后,通过配置数据库参数(如`din_ssl_enable`)并重启集群完成设置。注意,证书过期需重新生成以保障安全性。
|
5月前
|
数据管理 API 调度
鸿蒙HarmonyOS应用开发 | 探索 HarmonyOS Next-从开发到实战掌握 HarmonyOS Next 的分布式能力
HarmonyOS Next 是华为新一代操作系统,专注于分布式技术的深度应用与生态融合。本文通过技术特点、应用场景及实战案例,全面解析其核心技术架构与开发流程。重点介绍分布式软总线2.0、数据管理、任务调度等升级特性,并提供基于 ArkTS 的原生开发支持。通过开发跨设备协同音乐播放应用,展示分布式能力的实际应用,涵盖项目配置、主界面设计、分布式服务实现及部署调试步骤。此外,深入分析分布式数据同步原理、任务调度优化及常见问题解决方案,帮助开发者掌握 HarmonyOS Next 的核心技术和实战技巧。
484 76
鸿蒙HarmonyOS应用开发 | 探索 HarmonyOS Next-从开发到实战掌握 HarmonyOS Next 的分布式能力
|
2月前
|
机器学习/深度学习 分布式计算 API
Python 高级编程与实战:深入理解并发编程与分布式系统
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化、调试技巧、数据科学、机器学习、Web 开发、API 设计、网络编程和异步IO。本文将深入探讨 Python 在并发编程和分布式系统中的应用,并通过实战项目帮助你掌握这些技术。
|
2月前
|
消息中间件 分布式计算 并行计算
Python 高级编程与实战:构建分布式系统
本文深入探讨了 Python 中的分布式系统,介绍了 ZeroMQ、Celery 和 Dask 等工具的使用方法,并通过实战项目帮助读者掌握这些技术。ZeroMQ 是高性能异步消息库,支持多种通信模式;Celery 是分布式任务队列,支持异步任务执行;Dask 是并行计算库,适用于大规模数据处理。文章结合具体代码示例,帮助读者理解如何使用这些工具构建分布式系统。
|
3月前
|
人工智能 Kubernetes 异构计算
大道至简-基于ACK的Deepseek满血版分布式推理部署实战
大道至简-基于ACK的Deepseek满血版分布式推理部署实战
130 5
|
3月前
|
SQL 数据建模 BI
【YashanDB 知识库】用 yasldr 配置 Bulkload 模式作单线程迁移 300G 的业务数据到分布式数据库,迁移任务频繁出错
问题描述 详细版本:YashanDB Server Enterprise Edition Release 23.2.4.100 x86_64 6db1237 影响范围: 离线数据迁移场景,影响业务数据入库。 外场将部分 NewCIS 的报表业务放到分布式数据库,验证 SQL 性能水平。 操作系统环境配置: 125G 内存 32C CPU 2T 的 HDD 磁盘 问题出现的步骤/操作: 1、部署崖山分布式数据库 1mm 1cn 3dn 单线启动 yasldr 数据迁移任务,设置 32 线程的 bulk load 模式 2、观察 yasldr.log 是否出现如下错
|
3月前
|
人工智能 Kubernetes 异构计算
大道至简-基于ACK的Deepseek满血版分布式推理部署实战
本教程演示如何在ACK中多机分布式部署DeepSeek R1满血版。
|
4月前
|
存储 缓存 Java
Java中的分布式缓存与Memcached集成实战
通过在Java项目中集成Memcached,可以显著提升系统的性能和响应速度。合理的缓存策略、分布式架构设计和异常处理机制是实现高效缓存的关键。希望本文提供的实战示例和优化建议能够帮助开发者更好地应用Memcached,实现高性能的分布式缓存解决方案。
75 9
|
5月前
|
物联网 调度 vr&ar
鸿蒙HarmonyOS应用开发 |鸿蒙技术分享HarmonyOS Next 深度解析:分布式能力与跨设备协作实战
鸿蒙技术分享:HarmonyOS Next 深度解析 随着万物互联时代的到来,华为发布的 HarmonyOS Next 在技术架构和生态体验上实现了重大升级。本文从技术架构、生态优势和开发实践三方面深入探讨其特点,并通过跨设备笔记应用实战案例,展示其强大的分布式能力和多设备协作功能。核心亮点包括新一代微内核架构、统一开发语言 ArkTS 和多模态交互支持。开发者可借助 DevEco Studio 4.0 快速上手,体验高效、灵活的开发过程。 239个字符
313 13
鸿蒙HarmonyOS应用开发 |鸿蒙技术分享HarmonyOS Next 深度解析:分布式能力与跨设备协作实战

热门文章

最新文章

下一篇
oss创建bucket