ZooKeeper 入门:初学者指南
在分布式系统领域,协调和同步至关重要。Apache ZooKeeper 是一种分布式协调服务,是帮助管理和同步分布式环境中服务的基本组件。本指南旨在深入分析 ZooKeeper、其架构及其在现代分布式系统中的作用。我们还将探索一个示例来展示其实际影响。
ZooKeeper 简介
ZooKeeper 是 Apache 软件基金会开发的一个开源项目。它旨在提供用于维护配置信息、命名、提供分布式同步和提供组服务的集中服务。ZooKeeper 的目标是使这些任务可靠且易于实现。
主要特征
- 协调服务:ZooKeeper 提供了一组原语来实现更高级别的同步服务,例如分布式锁、领导者选举和障碍。
- 高可用性:ZooKeeper 设计为高可用性和可靠性,确保其提供的服务始终可用。
- 最终一致性:ZooKeeper 通过在服务器仲裁中复制数据来实现最终一致性,这确保即使某些服务器出现故障,数据仍然可访问。
- 原子性:ZooKeeper 中的所有操作都是原子的,确保它们要么成功完成,要么根本不产生任何影响。
- 顺序保证:ZooKeeper 保证数据更新按顺序排序,确保所有客户端的数据视图一致。
ZooKeeper 架构
ZooKeeper 在集群中运行,集群通常由多台服务器组成。该架构基于复制服务模型,集群中的每台服务器都维护整个系统状态的副本。ZooKeeper 架构的关键组件包括:
- Leader:Leader 服务器负责处理所有来自客户端的写入请求,确保所有状态变更都一致地复制到 Follower 服务器。
- 追随者:追随者服务器从领导者那里复制状态。该进程读取来自客户端的请求并参与领导者选举过程。
- 客户端:客户端是与 ZooKeeper 集合交互以执行各种协调任务的应用程序或服务。
领导者选举
领导者选举是 ZooKeeper 架构的一个重要方面。当领导者发生故障时,跟随服务器将参与选举过程以选出新的领导者。这可确保即使领导者服务器发生故障,系统仍可正常运行。
数据模型
ZooKeeper 的数据模型类似于分层文件系统。它将数据存储在称为“znodes”树的树状结构中。树中的每个节点称为 znode,它可以存储数据并具有子 znode。znode 有两种类型:
持久性 Znode:这些 znode 一直存在,直到被明确删除。
临时 Znode:这些 znode 仅在创建它们的会话处于活动状态时存在。
安装和配置 ZooKeeper
设置 ZooKeeper 涉及以下步骤:
步骤 1.下载 ZooKeeper
从Apache ZooKeeper 网站下载 ZooKeeper 的最新稳定版本。
步骤 2.安装 ZooKeeper
解压下载的档案并导航到解压的目录。目录结构应包括以下内容:
- bin:包含启动和停止ZooKeeper的可执行脚本。
- conf:包含配置文件。
- lib:包含所需的库。
步骤 3.配置 ZooKeeper
zoo.cfg在目录中创建一个名为的配置文件conf。以下是示例配置:
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=10
syncLimit=5
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
- tickTime:ZooKeeper使用的基本时间单位,以毫秒为单位。
- dataDir:ZooKeeper 存储其数据的目录。
- clientPort:ZooKeeper 将监听客户端连接的端口。
- initLimit:允许追随者与领导者连接并同步的时间(以刻度为单位)。
- syncLimit:允许追随者与领导者同步的时间(以刻度为单位)。
- server.X:ZooKeeper 集合中的服务器列表。
步骤 4.启动 ZooKeeper
使用以下命令启动 ZooKeeper 服务器:
bin/zkServer.sh start
要检查 ZooKeeper 服务器的状态,请使用:
bin/zkServer.sh status
使用 ZooKeeper
一旦 ZooKeeper 启动并运行,客户端就可以连接到 ZooKeeper 集合并执行各种操作。
创建一个Znode
要创建 znode,请使用zkCli.sh命令行界面连接到 ZooKeeper 服务器:
bin/zkCli.sh -server localhost:2181
使用以下命令创建 znode create:
create /myapp "Hello ZooKeeper"
此命令创建一个名为/myapp“Hello ZooKeeper”的znode。
从 Znode 读取数据
要从 znode 读取数据,请使用以下get命令:
get /myapp
此命令检索存储在 znode 中的数据/myapp。
更新 Znode 中的数据
要更新 znode 中的数据,请使用以下set命令:
set /myapp "Updated Data"
此命令将znode中的数据更新/myapp为“已更新的数据”。
删除 Znode
要删除 znode,请使用以下delete命令:
delete /myapp
此命令删除/myappznode。
示例,实现分布式锁
ZooKeeper 的一个常见用例是实现分布式锁。分布式锁用于确保多个进程不会同时执行同一任务。
步骤 1. 创建锁定 Znode
创建一个将用作锁的 znode:
create /lock ""
步骤 2. 获取锁
为了获取锁,客户端在/lockznode 下创建一个临时顺序 znode:
create -e -s /lock/lock_ ""
此命令在 下创建一个临时顺序 znode /lock,例如/lock/lock_0000000001。
步骤 3. 检查锁所有权
然后,客户端检查它创建的 znode 是否在所有 znode 下具有最低的序列号/lock。如果是,则客户端已获取锁定。否则,客户端将监视具有下一个最低序列号的 znode。
步骤 4. 释放锁
当客户端完成其任务时,它会删除其创建的 znode,并释放锁:
delete /lock/lock_0000000001
实际影响
使用 ZooKeeper 实现分布式锁可确保只有一个进程可以在任何给定时间获取锁,从而防止竞争条件并确保数据一致性。此机制在分布式应用程序中特别有用,因为服务的多个实例可能会同时尝试访问共享资源。
结论
Apache ZooKeeper 是一种功能强大且可靠的分布式应用程序协调服务。其架构基于复制服务模型,可确保高可用性和一致性。通过提供分布式同步、配置管理和组服务原语,ZooKeeper 简化了分布式系统中复杂协调任务的实施。
本指南介绍了 ZooKeeper 的基础知识,从其架构和安装到实际使用示例。有了这个基础,您可以开始利用 ZooKeeper 构建强大且可扩展的分布式应用程序。
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
ZooKeeper 入门:初学者指南
在分布式系统领域,协调和同步至关重要。Apache ZooKeeper 是一种分布式协调服务,是帮助管理和同步分布式环境中服务的基本组件。本指南旨在深入分析 ZooKeeper、其架构及其在现代分布式系统中的作用。我们还将探索一个示例来展示其实际影响。 ZooKeeper…...
![](https://img-blog.csdnimg.cn/direct/e0c75f4c0c6a49f59bb9b5361f4899c3.png)
【数据结构(邓俊辉)学习笔记】二叉搜索树04——AVL树
文章目录 1.重平衡1.1 AVL BBST1.2 平衡因子1.3 适度平衡1.4 接口1.5 失衡 复衡 2. 插入2.1 单旋2.2 双旋2.3 实现 3. 删除3.1 单旋3.2 双旋3.3 实现 4. (3 4)-重构4.1 "34"重构4.2 "34"实现4.3 rotateAt4.4 综合评价 1.重平衡 1…...
![](https://img-blog.csdnimg.cn/direct/713f2c2616a0491f9299db23d224480a.png)
SpringMVC基础详解
文章目录 一、SpringMVC简介1、什么是MVC2、MVC架构模式与三层模型的区别3、什么是SpringMVC 二、HelloWorld程序1、pom文件2、springmvc.xml3、配置web.xml文件4、html文件5、执行Controller 三、RequestMapping注解1、value属性1.1、基础使用1.2、Ant风格(模糊匹配…...
![](https://www.ngui.cc/images/no-images.jpg)
SQL SERVER 设置端口
要在SQL Server中设置端口,可以通过SQL Server Configuration Manager来完成。以下是详细的步骤: 1. 打开SQL Server Configuration Manager 在Windows中,按 Win R 键打开运行窗口。输入 SQLServerManager<version>.msc 并按回车。例…...
![](https://img-blog.csdnimg.cn/img_convert/7ca642d8abbd5929be2a00792b6968d1.jpeg)
华芯微特2024慕尼黑上海电子展预告
7月8日-7月10日,2024慕尼黑上海电子展在上海新国际博览中心举办。华芯微特展号:E4.4815,诚意邀请各位莅临参观。 公司介绍 华芯微特是一家由留美归国资深技术团队创立的中国芯片设计公司,是国家高新技术企业。2014年进军MCU产业,专…...
![](https://img-blog.csdnimg.cn/direct/05f1a28fe9774ba49a1cfe42c4503da4.png#pic_center)
DETR End-to-End Object Detection with Transformers
End-to-End Object Detection with Transformers 论文链接:http://arxiv.org/abs/2005.12872 代码地址:https://github.com/facebookresearch/detr 一、摘要 提出了一种将目标检测视为直接集合预测问题的新方法。该方法简化了检测流程,有效…...
![](https://img-blog.csdnimg.cn/direct/e659b83273a642dfa45b5c5b2cbf020b.png#pic_center)
【后端面试题】【中间件】【NoSQL】ElasticSearch 节点角色、写入数据过程、Translog和索引与分片
中间件的常考方向: 中间件如何做到高可用和高性能的? 你在实践中怎么做的高可用和高性能的? Elasticsearch节点角色 Elasticsearch的节点可以分为很多种角色,并且一个节点可以扮演多种角色,下面列举几种主要的&…...
![](https://img-blog.csdnimg.cn/direct/12f7980e7a6f4c93b8d8a3a95c65f620.png)
【TB作品】玩具电子琴,ATMEGA128单片机,Proteus仿真
题目 7 :玩具电子琴 基于单片机设计一能够发出中音八个音阶的音乐信号的电子琴,能够实现弹奏和音符显示功 能。 具有 8 个音阶按键,每按下一个按键时,所对应的 LED 点亮,音符进行显示。 具体要求如下: &…...
![](https://img-blog.csdnimg.cn/direct/65dfd4e07e3743a897aee179510d23ed.png)
1974Springboot医院远程诊断管理系统idea开发mysql数据库web结构java编程计算机网页源码maven项目
一、源码特点 springboot医院远程诊断管理系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统具有完整的源代码和数据库…...
![](https://www.ngui.cc/images/no-images.jpg)
SQL游标的应用场景及使用方法
SQL游标的应用场景及使用方法 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨SQL中游标的应用场景及使用方法。游标在SQL中是一种重要的数据…...
![](https://www.ngui.cc/images/no-images.jpg)
LLama-Factory使用教程
本文是github项目llama-factory的使用教程 注意,最新的llama-factory的github中训练模型中,涉及到本文中的操作全部使用了.yaml配置。 新的.yaml的方式很简洁但不太直观,本质上是一样的。新的readme中的.yaml文件等于下文中的bash指令 PS: …...
![](https://www.ngui.cc/images/no-images.jpg)
Java面试题:讨论在Java Web应用中实现安全的认证和授权机制,如使用Spring Security
在Java Web应用中,实现安全的认证和授权是至关重要的,Spring Security是一个强大的框架,可以简化这项工作。以下是详细讨论如何在Java Web应用中使用Spring Security实现安全的认证和授权机制。 Spring Security简介 Spring Security是一个…...
![](https://www.ngui.cc/images/no-images.jpg)
如何在Vue3项目中使用Pinia进行状态管理
**第一步:安装Pinia依赖** 要在Vue3项目中使用Pinia进行状态管理,首先需要安装Pinia依赖。可以使用以下npm命令进行安装: bash npm install pinia 或者如果你使用的是yarn,可以使用以下命令: bash yarn add pinia *…...
![](https://img-blog.csdnimg.cn/direct/8db9b5aab67b4236ac2643fdc72dcc6e.gif)
【初阶数据结构】深入解析队列:探索底层逻辑
🔥引言 本篇将深入解析队列:探索底层逻辑,理解底层是如何实现并了解该接口实现的优缺点,以便于我们在编写程序灵活地使用该数据结构。 🌈个人主页:是店小二呀 🌈C语言笔记专栏:C语言笔记 &#…...
![](https://img-blog.csdnimg.cn/direct/fbd1d8819afc4a75b59df450adec5dee.png)
Go 语言环境搭建
本篇文章为Go语言环境搭建及下载编译器后配置Git终端方法。 目录 安装GO语言SDK Window环境安装 下载 安装测试 安装编辑器 下载编译器 设置git终端方法 总结 安装GO语言SDK Window环境安装 网站 Go下载 - Go语言中文网 - Golang中文社区 还有 All releases - The…...
![](https://img-blog.csdnimg.cn/direct/cc73684e553d4e92b46565ca9d546dbd.png)
javascript v8编译器的使用记录
我的机器是MacOS Mx系列。 一、v8源码下载构建 1.1 下载并更新depot_tools git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git export PATH/path/to/depot_tools:$PATH 失败的话可能是网络问题,可以试一下是否能ping通,连…...
![](https://img-blog.csdnimg.cn/direct/1585727ce62a4c6a8ac651a400decefe.png)
C语言--vs使用调试技巧
1.什么是bug? 1.产品说明书中规定要做的事情,而软件没有实现。 2.产品说明书中规定不要做的事情,而软件确实现了。 3.产品说明书中没有提到过的事情,而软件确实现了。 4.产品说明书中没有提到但是必须要做的事情,软件确没有实…...
![](https://www.ngui.cc/images/no-images.jpg)
Spring Boot中的国际化配置
Spring Boot中的国际化配置 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨如何在Spring Boot应用中实现国际化配置,使得应用能够轻松…...
![](https://img-blog.csdnimg.cn/direct/bb0641710ad547c5a8b1316baabae5d6.png)
WPF的IValueConverter用于校验和格式化TextBox的数字输入
在数据绑定(Data Binding)的上下文中,我们经常使用继承 IValueConverter 接口的类,用于在源值和目标值之间进行转换。该接口定义了两个方法:Convert 和 ConvertBack,这两个方法分别用于从源值到目标值的转换…...
![](https://www.ngui.cc/images/no-images.jpg)
SQL Server的守护神:Always On 高可用性详解
🛡️ SQL Server的守护神:Always On 高可用性详解 在企业级应用中,数据的可用性和业务连续性至关重要。SQL Server的Always On功能提供了一个高可用性解决方案,确保数据库服务的持续运行和快速故障恢复。本文将详细解释SQL Serve…...
![](https://www.ngui.cc/images/no-images.jpg)
Eureka入门
Eureka是一种服务发现工具,广泛应用于微服务架构中。它主要由Netflix开源,帮助服务在分布式系统中自动注册和发现。以下是Eureka的基本入门指南。 前提条件 在开始之前,确保你已经安装了以下软件: JDK 8或更高版本Maven或Gradl…...
![](https://www.ngui.cc/images/no-images.jpg)
高阶面试-netty部分
介绍下netty Netty 是一个基于 Java 的异步事件驱动的网络应用框架,提供了用于快速开发高性能、高可扩展性的协议服务器和客户端的工具 BIO、NIO、AIO 的区别是什么 BIO blocking io,同步阻塞IO,比较简单,为每个请求分配一个线…...
![](https://www.ngui.cc/images/no-images.jpg)
在 C++的跨平台开发中,如何处理不同操作系统和编译器之间的细微差异,以确保程序能够稳定且高效地运行?
在 C 的跨平台开发中,处理不同操作系统和编译器之间的细微差异是非常重要的。以下是一些处理差异的技巧: 使用条件编译:使用预处理指令,根据不同的操作系统和编译器来编写不同的代码。 #if defined(_WIN32)// Windows 特定代码 …...
![](https://www.ngui.cc/images/no-images.jpg)
独孤思维:脑子不好使,副业稳赚钱
01 副业,贴身级模仿。 比如独孤最近在测试dy虚拟资料项目。 跑了三个多月。 赚了点下小钱。 从最开始的自动生成视频,到后来的抽帧优化,再到先做的矩阵玩法。 一直都在迭代。 是独孤脑子好使吗? 恰恰相反。 正式因为独孤…...
![](https://img-blog.csdnimg.cn/direct/bee64a1a2e6f4eedb18db8353e749cc8.png)
【数据结构】(C语言):二叉搜索树
二叉搜索树: 树不是线性的,是层级结构。基本单位是节点,每个节点最多2个子节点。有序。每个节点,其左子节点都比它小,其右子节点都比它大。每个子树都是一个二叉搜索树。每个节点及其所有子节点形成子树。可以是空树。…...
![](https://www.ngui.cc/images/no-images.jpg)
泛微开发修炼之旅--23基于ecology自研的数据库分页组件(分页组件支持mysql、sqlserver、oracle、达梦等)
一、使用场景 ecology二开开发过程中,经常要使用到分页查询,随着信创项目的到来,各种国产数据库的出现,对于数据库分页查询兼容何种数据库,就迫在眉睫。 于是,我自己基于ecology开发了一个分页插件&#…...
![](https://www.ngui.cc/images/no-images.jpg)
《昇思25天学习打卡营第4天 | mindspore Transforms 数据变换常见用法》
1. 背景: 使用 mindspore 学习神经网络,打卡第四天; 2. 训练的内容: 使用 mindspore 的常见的数据变换 Transforms 的使用方法; 3. 常见的用法小节: 支持一系列常用的 Transforms 的操作 3.1 Vision …...
![](https://img-blog.csdnimg.cn/img_convert/2b18d510994f73cd3928e768e8ddb47f.png)
【Python时序预测系列】基于LSTM实现多输入多输出单步预测(案例+源码)
这是我的第312篇原创文章。 一、引言 单站点多变量输入多变量输出单步预测问题----基于LSTM实现。 多输入就是输入多个特征变量 多输出就是同时预测出多个标签的结果 单步就是利用过去N天预测未来1天的结果 二、实现过程 2.1 读取数据集 dfpd.read_csv("data.csv&qu…...
![](https://img-blog.csdnimg.cn/direct/9433c750798c4e788a14ee1a71095a42.png)
git客户端工具之Github,适用于windows和mac
对于我本人,我已经习惯了使用Github Desktop,不同的公司使用的代码管理平台不一样,就好奇Github Desktop是不是也适用于其他平台,结果是可以的。 一、克隆代码 File --> Clone repository… 选择第三种URL方式,输入url &…...
![](https://www.ngui.cc/images/no-images.jpg)
ai除安卓手机版APP软件一键操作自动渲染去擦消稀缺资源下载
安卓手机版:点击下载 苹果手机版:点击下载 电脑版(支持Mac和Windows):点击下载 一款全新的AI除安卓手机版APP,一键操作,轻松实现自动渲染和去擦消效果,稀缺资源下载 1、一键操作&…...
![](https://www.ngui.cc/images/no-images.jpg)
Unity获取剪切板内容粘贴板图片文件文字
最近做了一个发送消息的unity项目,需要访问剪切板里面的图片文字文件等,翻遍了网上的东西,看了不是需要导入System.Windows.Forms(关键导入了unity还不好用,只能用在纯c#项目中),所以我看了下py…...
![](https://img-blog.csdnimg.cn/direct/eaba1724a83243a8acbc01e6d508a413.png)
利用谷歌云serverless代码托管服务Cloud Functions构建Gemini Pro API
谷歌在2024年4月发布了全新一代的多模态模型Gemini 1.5 Pro,Gemini 1.5 Pro不仅能够生成创意文本和代码,还能理解、总结上传的图片、视频和音频内容,并且支持高达100万tokens的上下文。在多个基准测试中表现优异,性能超越了ChatGP…...
![](https://www.ngui.cc/images/no-images.jpg)
极狐GitLab 17.0 重磅发布,100+ DevSecOps功能更新来啦~【一】
GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab :https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署…...
![](https://img-blog.csdnimg.cn/direct/be3516e7c2634f8ebe92177a9dbc7328.png)
python实现符文加、解密
在历史悠久的加密技术中,恺撒密码以其简单却有效的原理闻名。通过固定的字母位移,明文可以被转换成密文,而解密则是逆向操作。这种技术不仅适用于英文字母,还可以扩展到其他语言的字符体系,如日语的平假名或汉语的拼音…...
![](https://img-blog.csdnimg.cn/direct/aa5e71d2b82f4cbf9911b84d40019a07.png)
【解释】i.MX6ULL_IO_电气属性说明
【解释】i.MX6ULL_IO_电气属性说明 文章目录 1 Hyst1.1 迟滞(Hysteresis)是什么?1.2 GPIO的Hyst. Enable Field 参数1.3 应用场景 2 Pull / Keep Select Field2.1 PUE_0_Keeper — Keeper2.2 PUE_1_Pull — Pull2.3 选择Keeper还是Pull 3 Dr…...
![](https://img-blog.csdnimg.cn/img_convert/8fb49d78da015116460f11f81d03f720.jpeg)
02-《石莲》
石 莲 石莲(学名:Sinocrassula indica A.Berger),别名因地卡,为二年生草本植物,全株无毛,具须根。花茎高15-60厘米,直立,常被微乳头状突起。茎生叶互生,宽倒披…...
![](https://img-blog.csdnimg.cn/direct/ec817c891a5445278d0d3a7811b1dd59.png)
MySQL之聚簇索引和非聚簇索引
1、什么是聚簇索引和非聚簇索引? 聚簇索引,通常也叫聚集索引。 非聚簇索引,指的是二级索引。 下面看一下它们的含义: 1.1、聚集索引选取规则 如果存在主键,主键索引就是聚集索引。如果不存在主键,将使…...
![](https://img-blog.csdnimg.cn/direct/c04de746bf0c4eafb26b5df909935636.png)
Web后端开发之前后端交互
http协议 http ● 超文本传输协议 (HyperText Transfer Protocol)服务器传输超文本到本地浏览器的传送协议 是互联网上应用最为流行的一种网络协议,用于定义客户端浏览器和服务器之间交换数据的过程。 HTTP是一个基于TCP/IP通信协议来传递数据. HTT…...
![](https://www.ngui.cc/images/no-images.jpg)
520. 检测大写字母 Easy
我们定义,在以下情况时,单词的大写用法是正确的: 全部字母都是大写,比如 "USA" 。 单词中所有字母都不是大写,比如 "leetcode" 。 如果单词不只含有一个字母,只有首字母大写࿰…...
![](https://www.ngui.cc/images/no-images.jpg)
vue的跳转传参
1、接收参数使用route,route包含路由信息,接收参数有两种方式,params和query path跳转只能使用query传参,name跳转都可以 params:获取来自动态路由的参数 query:获取来自search部分的参数 写法 path跳,query传 传参数 import { useRout…...
![](https://www.ngui.cc/images/no-images.jpg)
docker配置镜像源
1)打开 docker配置文件 sudo nano /etc/docker/daemon.json 2)添加 国内镜像源 {"registry-mirrors": ["https://akchsmlh.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc…...
![](https://img-blog.csdnimg.cn/direct/7e5620ec31294865b8531509a2b07c24.png)
MySQL高级-SQL优化-insert优化-批量插入-手动提交事务-主键顺序插入
文章目录 1、批量插入1.1、大批量插入数据1.2、启动Linux中的mysql服务1.3、客户端连接到mysql数据库,加上参数 --local-infile1.4、查询当前会话中 local_infile 系统变量的值。1.5、开启从本地文件加载数据到服务器的功能1.6、创建表 tb_user 结构1.7、上传文件到…...
![](https://img-blog.csdnimg.cn/5a0c3151560a4f8a98aeabf08ed905d3.jpg)
认识100种电路之振荡电路
在电子电路领域,振荡是一项至关重要的功能。那么,为什么电路中需要振荡?其背后的原理是什么?让我们一同深入探究。 【为什么需要振荡电路】 简单来说,振荡电路的存在是为了产生周期性的信号。在众多电子设备中&#…...
![](https://img-blog.csdnimg.cn/direct/e20c0f02a34b4337b52b8ba26dd7a4a7.png)
SSH 无密登录配置流程
一、免密登录原理 非对称加密: 由于对称加密的存在弊端,就产生了非对称加密,非对称加密中有两个密钥:公钥和私钥。公钥由私钥产生,但却无法推算出私钥;公钥加密后的密文,只能通过对应的私钥来解…...
![](https://img-blog.csdnimg.cn/direct/14f43ee308f74daf9f51919bcd8e4ed6.png)
Python自动化运维 系统基础信息模块
1.系统信息的收集 系统信息的收集,对于服务质量的把控,服务的监控等来说是非常重要的组成部分,甚至是核心的基础支撑部分。我们可以通过大量的核心指标数据,结合对应的检测体系,快速的发现异常现象的苗头,进…...
![](https://www.ngui.cc/images/no-images.jpg)
如何安装和配置Monit
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 关于 Monit Monit 是一个有用的程序,可以自动监控和管理服务器程序,以确保它们不仅保持在线,而且文…...
![](https://www.ngui.cc/images/no-images.jpg)
【redis】redis分片集群基础知识
1、基本概念 1.1定义 分片:数据按照某种规则(比如哈希)被分割成多个片段(或分片),每个片段被称为一个槽(slot)。槽是Redis分片集群中数据的基本单元。节点:Redis分片集…...
![](https://img-blog.csdnimg.cn/direct/2269388ca0b341d6b54899163a10e13c.png)
Python 面试【★★★★】
欢迎莅临我的博客 💝💝💝,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...
![](https://i-blog.csdnimg.cn/direct/526284f733d04051b295cb8168f276be.png)
Knife4j 2.2.X 版本 swagger彻底禁用
官方文档配置权限:https://doc.xiaominfo.com/v2/documentation/accessControl.html#_3-5-1-%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E5%B1%8F%E8%94%BD%E8%B5%84%E6%BA%90 通常有时候我们碰到的问题如下: 在开发Knife4j功能时,同很多开发者经常讨论的问…...
![](https://www.ngui.cc/images/no-images.jpg)
linux下mysql的定时备份
备份是容灾的基础,是指为了防止系统出现操作或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其他的存储介质的过程为什么备份 硬件故障软件故障误操作病毒入侵保留历史记录灾难性事件 存储介质 光盘磁带硬盘磁盘阵列DAS:直接…...
![](https://img-blog.csdnimg.cn/img_convert/e5364f33bee71bd55030d60155a500cb.png)
基于CNN的股票预测方法【卷积神经网络】
基于机器学习方法的股票预测系列文章目录 一、基于强化学习DQN的股票预测【股票交易】 二、基于CNN的股票预测方法【卷积神经网络】 文章目录 基于机器学习方法的股票预测系列文章目录一、CNN建模原理二、模型搭建三、模型参数的选择(1)探究window_size…...
![](https://i-blog.csdnimg.cn/direct/bfb1f9bb4930404c9aa3f1549345c8ee.png)
基于SpringBoot的校园台球厅人员与设备管理系统
本系统是要设计一个校园台球厅人员与设备管理系统,这个系统能够满足校园台球厅人员与设备的管理及用户的校园台球厅人员与设备管理功能。系统的主要功能包括首页、个人中心、用户管理、会员账号管理、会员充值管理、球桌信息管理、会员预约管理、普通预约管理、留言…...
![](https://www.ngui.cc/images/no-images.jpg)
python学习2-数据结构与算法-链表
单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指…...
![](https://www.ngui.cc/images/no-images.jpg)
React Hooks --- 分享自己开发中常用的自定义的Hooks (1)
为什么要使用自定义 Hooks 自定义 Hooks 是 React 中一种复用逻辑的机制,通过它们可以抽离组件中的逻辑,使代码更加简洁、易读、易维护。它们可以在多个组件中复用相同的逻辑,减少重复代码。 1、useThrottle 代码 import React,{ useRef,…...
![](https://img-blog.csdnimg.cn/direct/42fa0027c9344e7e8e6f246caa40a264.png)
flutter:监听路由的变化
问题 当从路由B页面返回路由A页面后,A页面需要进行数据刷新。因此需要监听路由变化 解决 使用RouteObserver进行录音监听 创建全局变量,不在任何类中 final RouteObserver<PageRoute> routeObserver RouteObserver<PageRoute>();在mai…...
![](https://img-blog.csdnimg.cn/953d6fa9d810471aa3818368f5b20492.png)
【无需公网IP】在树莓派上搭建Web站点
目录 1.概述 2.使用 Raspberry Pi Imager 安装 Raspberry Pi OS 3.设置 Apache Web 服务器 3.1测试 web 站点 3.2安装静态样例站点 3.3将web站点发布到公网 3.4安装 Cpolar 3.5cpolar进行token认证 3.6生成cpolar随机域名网址 3.7生成cpolar二级子域名 3.8将参数保存…...
![](https://www.ngui.cc/images/no-images.jpg)
奥迪Q4e-tron对比ModelY,谁更值得入手?
豪华品牌电车奥迪Q4 e-tron对比Model Y,谁更值得入手?在电动汽车市场中,特斯拉品牌是所有人对于智能电动车的最初想象,Model Y更是行业内绕不开的一台产品。但随着时代发展,越来越多优秀的产品纷至沓来,导致了消费者对于产品的期待呈现既要还要的需求。不仅追求性能与驾驶…...
![](https://www.ngui.cc/images/no-images.jpg)
宾利发布“Edition8”限量版庆祝“V8”时代的结束!
Hello,大家好,我是Fighting小马。宾利声称自2012年推出最新一代V8发动机以来,已将超过53,000台纯手工制造的V8发动机应用于各种车型。但一则最新消息让人略有伤感,这家英国汽车制造商表示,在非插电式混合动力的某些宾利车型上V8发动机很快将会消失。也许喜欢宾利的你听到这…...
![](https://www.ngui.cc/images/no-images.jpg)
将于2024北京车展首发东风奕派eπ008预告图发布
近日,东风奕派发布 eπ008 最新预告图。新车此前已经登录工信部申报目录,并将于 4 月开幕的 2024 北京车展上迎来首发亮相。外观方面,新车采用了封闭式的前脸设计,整体风格会偏于圆润。同时搭载了当下流行的贯穿式日间行车灯,并将大灯也融入于此。车身尺寸方面,新车长宽高…...
![](https://img-blog.csdnimg.cn/direct/7d679cbf83fc41a6bf0e65b399e33394.jpeg#pic_center)
软件架构设计属性之一:功能性属性浅析
引言 软件架构设计属性中的功能性属性是评估软件架构是否满足其预定功能需求的关键指标。功能性属性确保软件能够执行其设计中的任务,并提供所需的服务。以下是对软件架构设计中功能性属性的浅析: 一、定义 功能性属性是指软件系统所具备的功能特性&a…...
![](https://www.ngui.cc/images/no-images.jpg)
python -【三】循环语句
循环语句 一、while 循环 while 语法 while 条件: 条件满足时,做事情 a 0 while a < 100:print(i like python ...)a 1求 1-100 的总和 i 1 sum 0 while i < 100:sum ii 1 print(f1-100 的和是 {sum})""" 1-100 的和是 5050 &qu…...
![](https://www.ngui.cc/images/no-images.jpg)
2024-03-23青少年软件编程(Python语言)等考(五级)解析
2024-03-23青少年软件编程(Python语言)等考(五级)解析一、单选题(共25题,共50分) 1.以下代码的输出结果是?( A ) nums = list(range(100, 201)) print(nums[::10]) A.[100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200] B.[100, 101, 102, 103, 104, 105, 106…...