当前位置: 首页 > wzjs >正文

电子商务网站的功能分析自己建设网站用哪个

电子商务网站的功能分析,自己建设网站用哪个,东莞网站设计开发技能大赛,手机版微网站前面一篇文章阳仔给大家结束了Zookeeper的一些基本概念,那么这一篇文章,阳仔将给大家介绍一下Zookeeper 的详细安装和使用步骤以及注意事项; 什么是 Zookeeper? 一个开源的分布式协调服务,用于管理分布式应用程序中的配置信息、命名、提供分布式同步以及组服务等…

前面一篇文章阳仔给大家结束了Zookeeper的一些基本概念,那么这一篇文章,阳仔将给大家介绍一下Zookeeper 的详细安装和使用步骤以及注意事项;

什么是 Zookeeper?

一个开源的分布式协调服务,用于管理分布式应用程序中的配置信息、命名、提供分布式同步以及组服务等功能。它为分布式应用提供了一种简单、高效且可靠的协调机制,能够帮助解决分布式系统中的一些常见问题,如数据一致性、服务注册与发现等。

使用 Zookeeper 的详细步骤

1. 安装 Zookeeper

下载

下载安装包 :可以从 Apache 官方网站下载 Zookeeper 的稳定版本,

例如使用命令`wget
https://dlcdn.apache.org/zookeeper/zookeeper-3.9.2/apache-zookeeper-3.9.2-bin.tar.gz`下载指定版本。

解压安装包 :使用`tar -zxvf
apache-zookeeper-3.9.2-bin.tar.gz`命令解压安装包。

移动安装目录 :将解压后的目录移动到指定目录,如`/usr/local/`,使用命令`mv apache-zookeeper-3.9.2 /usr/local/`。

2. 配置 Zookeeper

配置

2.1.修改配置文件: Zookeeper 在启动时会找zoo.cfg这个文件作为默认配置文件。

进入 Zookeeper 的`conf`目录,通常会有一个示例配置文件`zoo_sample.cfg`,可以将其复制并重命名为`zoo.cfg`,然后根据实际需求进行修改。

以下是一些常见的配置参数 :

  • tickTime:Zookeeper 使用的基本时间单位(毫秒),用于执行心跳检测等,例如设置为`2000`。
  • dataDir:存储内存中数据快照的路径,如`/tmp/zookeeper/data`。
  • clientPort:监听客户端连接的端口,可根据需要设置,如`9009`。
  • initLimit:Leader 允许 Follower 连接并进行初始同步的时间,以`tickTime`为单位,例如设置为`10`。
  • syncLimit:Leader 允许 Follower 在同步过程中滞后的时间,以`tickTime`为单位,例如设置为`5`。
  • clientPort: 客户端端口号, 根据服务设置,例如 : 设置为2181.
tickTime=2000
initLimit=10
syncLimit=5
# 数据保存地址
dataDir=/tmp/zookeeper/data# 客户端访问端口(zookeeper-1.novalocal、zookeeper-2.novalocal、zookeeper-3.novalocal修改为实际zookeeper主机的ip或域名)
server.1=zookeeper-1.novalocal:2888:3881
server.2=zookeeper-2.novalocal:2888:3882
server.3=zookeeper-3.novalocal:2888:3883

在集群模式下,还需要配置`server.id=host:port:port`,其中`id`是服务器的编号,`host`是服务器的 IP 地址,第一个`port`是集群内部通信端口,第二个`port`是 Leader 选举端口,例如`server.1=192.168.1.1:2888:3888`。

注意:集群模式下,如果三个zookeeper服务都在同一台服务器上,这里要保证地址的唯一性,注意IP地址和端口号不要互相冲突,IP相同,端口一定不能相同,以免影响程序的正确执行。

2.2 创建数据目录:根据配置文件中的`dataDir`参数,创建相应的数据存储目录,如`mkdir -p /opt/zookeeper/data`。 如果是集群模式的话,每个服务器都需要执行该命令

3. 启动 Zookeeper

查看状态

3.1启动服务:在 Zookeeper 的`bin`目录下,执行`./zkServer.sh start`命令启动服务。

集群模式,需要每个节点都需要执行;

查看服务状态 :可以使用`./zkServer.sh status`命令查看服务的运行状态,确认是否启动成功。

# 启动服务
bash /var/lib/zookeeper-3.4.6/bin/zkServer.sh  start# 查看服务状态
bash /var/lib/zookeeper-3.4.6/bin/zkServer.sh  status# 测试客户端连接
bash /var/lib/zookeeper-3.4.6/bin/zkCli.sh

出现Mode:follower或Mode:leader则zookeeper集群部署成功,服务启动正常。

4. 使用 Zookeeper 客户端进行操作

使用流程

连接客户端 :在 Zookeeper 的`bin`目录下,使用命令`./zkCli.sh -server 127.0.0.1:2181`连接到 Zookeeper 服务器,进入命令行界面。

基本操作 :

  • 创建 ZNode :使用`create /my_node "my_data"`命令创建一个名为`/my_node`的节点,并写入数据`my_data`。
  • 读取 ZNode:使用`get /my_node`命令读取`/my_node`节点的数据。
  • 修改 ZNode :使用`set /my_node "new_data"`命令将`/my_node`节点的数据修改为`new_data`。
  • 删除 ZNode:使用`delete /my_node`命令删除`/my_node`节点。

监控节点变化:Zookeeper 提供了 Watcher 机制,允许客户端对某个 ZNode 设置 Watcher,当节点发生变化时客户端会收到通知。例如,使用`get /my_node true`命令设置对`/my_node`节点的监控,当节点数据变化或被删除时,客户端将收到事件通知。

5. 实现分布式锁

创建顺序节点 :每个客户端尝试创建一个顺序节点,Zookeeper 会为每个客户端分配一个唯一的顺序号。

获取锁 :拥有最小序号的客户端获得锁。

释放锁 :当客户端释放锁时,删除该节点,其他客户端监控到变化,尝试获取锁。以下是一个简单的 Java 示例代码:

import org.apache.zookeeper.*;
import java.util.Collections;
import java.util.List;public class DistributedLock {private ZooKeeper zk;private String lockBasePath = "/locks";private String lockName;private String currentLock;public DistributedLock(ZooKeeper zk, String lockName) {this.zk = zk;this.lockName = lockName;}public void acquireLock() throws Exception {String lockPath = lockBasePath + "/" + lockName;// 创建顺序节点currentLock = zk.create(lockPath, new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL_SEQUENTIAL);// 获取所有子节点并排序List lockNodes = zk.getChildren(lockBasePath, false);Collections.sort(lockNodes);if (currentLock.endswith(lockNodes.get(0))) {// 获取锁System.out.println("Acquired lock: " + currentLock);} else {// 等待锁释放String previousLock = lockNodes.get(lockNodes.indexOf(currentLock) - 1);zk.exists(lockBasePath + "/" + previousLock, watchedEvent -> {if (watchedEvent.getType() == Watcher.Event.EventType.NodeDeleted) {try {acquireLock();} catch (Exception e) {e.printStackTrace();}}});}}public void releaseLock() throws Exception {// 释放锁zk.delete(currentLock, -1);System.out.println("Released lock: " + currentLock);}
}

注意:

数据量限制 :Zookeeper 设计为轻量级协调服务,ZNode 不能存储过大的数据,通常不超过 1MB。

高可用配置 :为了提高服务的高可用性,建议 Zookeeper 部署奇数个节点,且至少 3 个节点,以保证出现故障时系统仍能正常运行。

网络隔离处理:在分布式系统中,Zookeeper 对网络分区的处理需要特别注意,避免出现脑裂等问题。

我是阳仔,喜欢的朋友,欢迎点赞,收藏,转发和评论,感谢各位朋友的支持!!!


文章转载自:

http://Lwtd22c7.pgkpt.cn
http://mKZBwXUg.pgkpt.cn
http://PZqPkozu.pgkpt.cn
http://NBkZ8xWy.pgkpt.cn
http://lDqYUK48.pgkpt.cn
http://wAQ50qdb.pgkpt.cn
http://s1tViZDD.pgkpt.cn
http://EVfdsEj4.pgkpt.cn
http://YOVOQx3X.pgkpt.cn
http://KVSfBxqo.pgkpt.cn
http://fP457dLR.pgkpt.cn
http://7mRBOlwl.pgkpt.cn
http://gOtXQVvq.pgkpt.cn
http://hXWaTpU3.pgkpt.cn
http://xK8Cm4Il.pgkpt.cn
http://TB4nN3B0.pgkpt.cn
http://vJGHMVTm.pgkpt.cn
http://9C6fzmp3.pgkpt.cn
http://bdcZwMI8.pgkpt.cn
http://gT74iojI.pgkpt.cn
http://GNQUp4xx.pgkpt.cn
http://FVPrNtxx.pgkpt.cn
http://pTWGDsHl.pgkpt.cn
http://nK91S40W.pgkpt.cn
http://Mn260cuW.pgkpt.cn
http://bo7CE41v.pgkpt.cn
http://jKXNJ6aK.pgkpt.cn
http://hj3VPivS.pgkpt.cn
http://B3fi0sse.pgkpt.cn
http://VeDs2QCB.pgkpt.cn
http://www.dtcms.com/wzjs/730856.html

相关文章:

  • 嘉兴做网站公司个人网站开发可行性报告
  • 网站建设搜索优环球易购做中东的网站
  • 门户网站系统建设招标文件装修设计图免费软件
  • 口腔医院网站优化服务商免费h5页面应用制作
  • 网站开发可以用gif吗深圳福田 外贸网站建设
  • 网站样式用什么做的汉阳网站推广优化
  • 找人开发软件去什么网站申请网站域名多少钱
  • 网站建设的目标与思路泰安微网站建设
  • 大连做网站的中海建筑建设有限公司网站
  • 织梦网站栏目增加2023年生鲜电商交易规模超6000亿
  • 网站和服务器是什么关系wordpress统计蜘蛛
  • 网站做全好吗百度优化 几个网站内容一样
  • 网站建设交流论坛地址编程培训机构
  • 奢侈品商城网站建设方案网站建设的必要性’
  • 做网站手把手多语言商城系统
  • 触屏手机网站建设手机如何自己编程做游戏
  • 微信网站合同wordpress 初始化 数据库
  • 适合个人做的网站有哪些东西在线购物网站建设流程图
  • 报社网站开发做什么查看网站备案号
  • 宝安网站(建设深圳信科)烟台网站建设哪家好
  • 杭州 高端网站建设个人网站样式
  • html静态网站怎么放在网站上公司网站建设一年多少钱
  • 界面十分好看的网站google搜索引擎入口
  • 南阳教育网站平台2021年中国十大电商平台排名
  • 网站logo怎么做最清楚南阳做网站
  • 亚马逊海外版网站wordpress的wap插件
  • 各大网站做推广的广告怎么做唐山快速建站公司
  • 徐闻网站开发公司安徽建设厅网站官网
  • 四川高速公路建设开发集团有限公司网站动漫设计与制作专业就业前景
  • 网站地图怎么添加威海建设局官方网站