Linux入门攻坚——40、Linux集群系统入门-lvs(1)
Cluster,集群,为了解决某个特定问题将多台计算机组合起来形成的单个系统。
这个单个集群系统可以扩展,系统扩展的方式:scale up,向上扩展,更换更好的主机;scale out,向外扩展,增加更多的主机;
集群类型:
LB:负载均衡集群,Load Balancing,并发处理能力
HA:高可用集群(冗余),High Availablility,在线时间/(在线时间+故障处理时间)
HP(HPC):高性能集群(高性能计算集群),High Performance(High Performance Computing Cluster),向量机,并行处理集群
Availablility=90%,95%,99%,99.9%,99.99%,...
集群之前,是大规模分布式处理。
集群或是分布式都是一个系统。
度量一个系统: 可扩展性、 可用性、 容量、性能
系统运维:可用 ——> 标准化 ——> 自动化
构建高可扩展性系统的重要原则:在系统内部尽量避免串行化和交互;
GSLB:Global Service Load Balancing,全局负载均衡
SLB:Service Load Balancing
总结:
分层;
分割;
分布式:分布式应用、分布式静态资源、分布式数据和存储、分布式计算;
LB集群的实现:
硬件:
F5 BIG-IP、Citrix NetScaler、A10 A10、Array 、Redware、...
软件:
lvs、haproxy、nginx、ats(apache traffic server)、perbal、...
基于工作的协议层次划分:
传输层:lvs,haproxy(mode tcp)
应用层:haproxy、nginx、ats、perbal
lvs:内核中进行的转发,工作于netfilter,负载均衡。(程序作者:章文嵩)
——linux virtual server,linux虚拟服务器,基于哪个协议的哪个端口进行分发。相应的后台真正进行服务的主机叫real server。
L4:四层交换,四层路由;
根据请求报文的目标IP和PORT将其转发至后端主机集群中的某一台主机(根据挑选算法);
netfilter:
PREROUTING --> INPUT
PREROUTING --> FORWARD --> POSTROUTING
OUTPUT --> FORWARD --> POSTROUTING
lvs工作于INPUT链上,定义了集群规则,然后强行转发到POSTROUTING链上。
ipvsadm/ipvs:lvs在程序上叫做ipvs
ipvsadm:用户空间的命令行工具,用于管理集群服务;
ipvs:工作于内核中netfilter INPUT钩子上;
主机是否提供lvs功能:
grep -i -A 10 'IPVS' /boot/config-3.10.0-1160.el7.x86_64
说明内核已经编译了IPVS模块,可以使用。
支持TCP、UDP,AH,ESP,AH_ESP,SCTP等诸多协议;
lvs arch:lvs架构
专用名称:
调度器:director,dispatcher,balancer
RS:Real Server
Client IP:CIP
Director Virtual IP:VIP
Director IP:DIP
Real Server IP:RIP
lvs type:
lvs-nat:基于DNAT,MASQUERADE
lvs-dr(direct routing):GATEWAY
lvs-tun(ip tunneling):IPIP
lvs-fullnat:
lvs-nat:多目标的DNAT(iptables);通过修改请求报文的目标IP地址(同时可能修改目标端口)至挑选出的某RS的RIP地址实现转发;请求和响应报文都经由director。
1)RS和DIP应该使用私网地址,且RS的网关要指向DIP;
2)请求和响应报文都要经由director转发; 极高负载的场景中,director可能会成为系统瓶颈;
3)支持端口映射;
4)RS可以使用任意OS;
5)RS的RIP和Director的DIP必须在同一IP网络;
关键在第2步,Director调度时可以按算法选择后台的任一台RS实现负载均衡。
lvs-dr:direct routing
通过修改请求报文的目标MAC地址进行转发;仅请求报文经由director,响应报文是由RS直接响应给Client。
Director:VIP,DIP
RS:RIP,VIP(在lo上,即本地回环接口上)
1)保证前端路由器将目标IP为VIP的请求报文发送给director;
解决方案:静态绑定、arptables、修改RS主机内核的参数,主要是使RS不响应对VIP的ARP查询。
2)RS的RIP可以使用私有地址,也可以使用公网地址;
3)RS跟Director必须在同一物理网络中;
4)请求报文经由Director调度,但响应报文一定不能经由Director;
5)不支持端口映射;
6)RS可以是大多数OS;
7)RS的网关不能指向DIP;
通过上面的示意图,dr模型主要是通过MAC地址实现。
lvs-tun:不修改请求报文的IP首部,而是通过在原有的IP首部(cip <--> vip)之外,再封装一个IP首部(dip <--> rip);
1)RIP,DIP,VIP全部都是公网地址;
2)RS的网关不能指向DIP;
3)请求报文必须经由Director调度,但响应报文必须不能经由Director;
4)不支持端口映射;
5)RS的OS必须支持隧道功能;
lvs-fullnat:Director通过同时修改请求报文的源和目的IP地址进行转发;
1)VIP是公网地址,RIP和DIP是私网地址,二者无须在同一网络中;
2)RS接收到的请求报文的源地址是DIP,因此要响应给DIP;
3)请求报文和响应报文都必须经由Director;
4)支持端口映射机制;
5)RS的OS可以使用任意OS;
http:stateless,http协议是无状态的协议
session和cookie:实现状态追踪,无状态变为有状态。在集群中,涉及如何在不同集群服务器中对session的保持。
session保持机制:
session绑定:将来自同一个用户的请求,始终导向同一个RS;可以基于两种依据IP和cookie:
source ip hash,基于源ip做哈希。
cookie,基于cookie。
session集群:
session复制到其他所有RS中,可能网络中充斥session复制信息,浪费带宽;
session服务器:
使用一台服务器单独存放session信息,又引入了单点问题。
lvs scheduler:lvs调度器,多种不同的调度算法
静态方法:仅根据算法本身进行调度;
RR:round robin,轮询,论调;
WRR:weighted rr,加权轮询
SH:source hash,实现session保持的机制;将来自于同一个IP的请求始终调度至同一RS;
DH:destination hash,将对同一个目标的请求始终发往同一个RS;
动态方法:根据算法及各RS的当前负载状态进行调度;
负载 Overhead=
LC:Least Connection,最少连接数;Overhead=Active*256+Inactive
WLC:Weighted LC,Overhead=(Active*256 + Inactive)/ weight
SED:Shortest Expection Delay,Overhead=(Active+1)*256 / weight
NQ:Never Queue,在RS有空时,依次按权重选择,然后按SED;
LBLC:Locality-Based LC,即动态的DH算法;正向代理情形下的cache server调度;
LBLCR:Locality-Based Least-Connection with Replication,带复制功能的LBLC算法;
ipvs的集群服务:
tcp,udp,ah,esp,ah_esp,sctp
1)一个ipvs主机可以同时定义多个cluster service;tcp、udp
2)一个cluster service上至少应该有一个real server;
定义时,指明lvs-type,以及lvs scheduler;
ipvsadm的用法:
管理集群服务:
ipvsadm -A|E -t|u|f service-address [-s scheduler]
ipvsadm -D -t|u|f service-address
service-address:
tcp:-t ip:port
udp:-u ip:port
fwm:-f mark
-s scheduler:默认为wlc
管理集群服务中的RS:
ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight]
ipvsadm -d -t|u|f service-address -r server-address
server-address:ip:[port]
lvs-type:-g --> gateway,dr;-i --> ipip,tun;-m --> masquerade,nat
查看和清空:
ipvsadm -C
ipvsadm -L|l [options]
-n:基于数字格式显示地址和端口;
-c:connection,显示ipvs连接
--stats:统计数据
--rate:速率
--exact:显示精确值
保存和重载:
ipvsadm -R
ipvsadm -S [-n]
置零计数器:
ipvsadm -Z [ -t|u|f service-address]
实操测试:
模拟环境:
在RS1和RS2上安装好httpd服务,在Director上确保iptables是空的:
iptables -F -t filter -t nat -t mangle
确保Director上的转发功能开启:
添加规则
添加集群Director:
ipvsadm -A -t 192.168.61.129:80 -s rr
ipvsadm -L -n
添加RS:
ipvsadm -a -t 192.168.61.129:80 -r 192.168.147.129 -m
ipvsadm -a -t 192.168.61.129:80 -r 192.168.147.130 -m
保存规则、清空规则、重载规则:
修改Director调度算法:
ipvsadm -E -t 192.168.61.129:80 -s sh
修改RS:
ipvsadm -e -t 192.168.61.129:80 -r 192.168.147.129:8080 -m
这个命令一直不成功,提示No such destination,不知是什么原因
删除一个RS:
ipvsadm -d -t 192.168.61.129:80 -r 192.168.147.129
查询:
相关文章:
Linux入门攻坚——40、Linux集群系统入门-lvs(1)
Cluster,集群,为了解决某个特定问题将多台计算机组合起来形成的单个系统。 这个单个集群系统可以扩展,系统扩展的方式:scale up,向上扩展,更换更好的主机;scale out,向外扩展&…...
结构篇| 浅析LLaMA网络架构
01 前言 LLaMA(Large Language Model Meta AI)是由Meta AI 发布的一个开放且高效的大型基础语言模型。为什么突然讲这个模型,主要LLaMA 已经成为了最受欢迎的开源大语言模型之一,LLaMA 系列模型在学术界和工业界引起了广泛的 关注,对于推动大语言模型技术的开源发展做出了…...
CTF-PWN: 全保护下格式化字符串利用 [第一届“吾杯”网络安全技能大赛 如果能重来] 赛后学习(不会)
通过网盘分享的文件:如果能重来.zip 链接: https://pan.baidu.com/s/1XKIJx32nWVcSpKiWFQGpYA?pwd1111 提取码: 1111 --来自百度网盘超级会员v2的分享漏洞分析 格式化字符串漏洞,在printf(format); __int64 sub_13D7() {char format[56]; // [rsp10h] [rbp-40h]…...
openEuler卸载 rpm安装的 redis
停止 Redis 服务 sudo systemctl stop redis禁用 Redis 服务 sudo systemctl disable redis 卸载 Redis 软件包 sudo yum remove redis查找并删除 Redis 的残留文件 find / -name red*删除 Redis 配置文件 删除 Redis 数据文件 sudo rm -rf /var/lib/redis检查 Redis 是否…...
xxl-job分布式任务调度
XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 GitHub:https://github.com/xuxueli/xxl-job 码云:https://gitee.com/xuxue…...
flutter_quill如何设置Editor中的文字为富文本
比如一个场景 在输入框中,某某某 是一个颜色,其他文本是一个颜色 这里要注意 const QuillEditor({required this.controller,required this.focusNode,required this.scrollController,required this.scrollable,required this.padding,required this…...
shell语法(1)bash
shell是我们通过命令行与操作系统沟通的语言,是一种解释型语言 shell脚本可以直接在命令行中执行,也可以将一套逻辑组织成一个文件,方便复用 Linux系统中一般默认使用bash为脚本解释器 在Linux中创建一个.sh文件,例如vim test.sh…...
AgGrid 组件封装设计笔记:自定义 icon 以及每个 icon 的点击事件处理
文章目录 问题目前解决效果 v1思路 目前解决效果 v0思路 代码V1 问题 自己封装的 AgGrid 如何自定义传递 icon ,以及点击事件的处理? 目前解决效果 v1 思路 目前解决效果 v0 思路 一张图片说明一下 代码 V1 父组件使用 <template><MyPageL…...
什么是TCP的三次握手
TCP(传输控制协议)的三次握手是一个用于在两个网络通信的计算机之间建立连接的过程。这个过程确保了双方都有能力接收和发送数据,并且初始化双方的序列号。以下是三次握手的详细步骤: 第一次握手(SYN)&…...
ElasticSearch学习记录
服务器操作系统版本:Ubuntu 24.04 Java版本:21 Spring Boot版本:3.3.5 如果打算用GUI,虚拟机安装Ubuntu 24.04,见 虚拟机安装Ubuntu 24.04及其常用软件(2024.7)_ubuntu24.04-CSDN博客文章浏览阅读6.6k次࿰…...
10.在 Vue 3 中使用 OpenLayers 加载引用 Stamen 地图(多种形式)
在 Web 地图开发中,OpenLayers 是一个非常强大且灵活的 JavaScript 库,它可以帮助我们加载各种地图层(如 OpenStreetMap、Google Maps、Bing Maps 等)。而 Stamen 地图是一个非常常见的地图样式,它提供了多种地图样式&…...
json与proto序列化,反序列化性能对比
1. 说proto快,必须知道他快多少?为什么快? 快多少? // 测试proto序列化和反序列化的性能func BenchmarkProtobufMarshal(b *testing.B) {// 创建一个 Request 对象req : &demo.Request{Ping: "ping",}// 测试序列化的性能b.ResetTimer()for i : 0; i < b…...
[Redis#14] 持久化 | RDB | bgsave | check-rdb | 灾备
目录 0.概述 持久化的策略 1 RDB 1.1 触发机制 1.2 流程说明 1.3 RDB 的优缺点 0.概述 在学习 MySQL 数据库时,我们了解到事务的四个核心特性:原子性、一致性、持久性和隔离性。这些特性确保了数据库操作的安全性和可靠性。当我们转向 Redis 时&a…...
ubuntu部署RocketMQ
Quick Start RocketMQ 下载 解压 把下载的文件解压重命名,放在想放的位置 需要提前配置JDK环境变量,或者直接在配置文件中指定JAVA_HOME 编辑 编辑 rocketmq/bin下的 runserver.sh 和runbroker.sh文件,把内存大小改小一点,因为…...
深入浅出:PHP中的变量与常量全解析
文章目录 引言理解变量普通变量赋值操作变量间赋值引用赋值取消引用 可变变量预定义变量 理解常量声明常量使用define()函数const关键字 使用常量预定义常量 扩展话题:作用域与生命周期实战案例总结与展望参考资料 引言 在编程的世界里,变量和常量是两种…...
概率论相关知识随记
作为基础知识的补充,随学随记,方便以后查阅。 概率论相关知识随记 期望(Expectation)期望的定义离散型随机变量的期望示例:掷骰子的期望 连续型随机变量的期望示例:均匀分布的期望 期望的性质线性性质期望的…...
gpt-computer-assistant - 极简的 GPT-4o 客户端
更多AI开源软件: AI开源 - 小众AIhttps://www.aiinn.cn/sources gpt-computer-assistant是一个将 ChatGPT MacOS 应用程序提供给 Windows 和 Linux 的替代工作。因此,这是一个全新且稳定的项目。此时,您可以轻松地将其作为 Python 库安装&am…...
【Java开发】Springboot集成mybatis-plus
1、引入 mybatis-plus 依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.0</version> </dependency> <!--mysql依赖--> <dependen…...
本地运行打包好的dist
首先输入打包命令 每个人设置不一样 一般人 是npm run build如果不知道可以去package.json里去看。 打包好文件如下 命令行输入 :npm i -g http-server 进入到dist目录下输入 命令cmd 输入 http-server 成功...
mac安装php和xdebug调试
要在Mac上安装PHP 7.4,你可以通过几种方式来完成,但鉴于PHP7.4官方已不再维护,并且Homebrew默认仓库中不再提供此版本,我们需要从第三方仓库或直接从源代码进行安装。本文以brew方式安装,如果安装的是8.0以上ÿ…...
使用Rufus制作Ubuntu需要注意
在使用Rufus制作Ubuntu启动盘并进行BIOS设置时,需要注意以下几点: 关闭RST(英特尔 快速存储技术):在BIOS设置中,如果电脑启用了RST功能,需要将其关闭。因为Ubuntu可能无法检测到硬盘&a…...
2024 阿里云Debian12.8安装apach2【图文讲解】
1. 更新系统,确保您的系统软件包是最新的 sudo apt update sudo apt upgrade -y 2. 安装 Apache Web 服务器 apt install apache2 -y 3. 安装 PHP 及常用的扩展 apt install php libapache2-mod-php -y apt install php-mysql php-xml php-mbstring php-curl php…...
iOS平台接入Facebook登录
1、FB开发者后台注册账户 2、完善App信息 3、git clone库文件代码接入 4、印尼手机卡开热点调试 备注: 可能遇到的问题: 1、Cocos2dx新建的项目要更改xcode的git设置,不然卡在clone,无法在线获取FBSDK 2、动态库链接 需要在…...
关于在ubuntu上无法运行EasyConnect的解决方法
需要这三个文件 libpangocairo-1.0-0_1.40.14-1_amd64.deb libpangoft2-1.0-0_1.40.14-1_amd64.deb libpango-1.0-0_1.40.14-1_amd64.deb然后执行 cp source /usr/share/sangfor/EasyConnect再重启EasyConnect即可 下载链接 http://kr.archive.ubuntu.com/ubuntu/pool/main/…...
常用 Linux 各资源指标监控示例(长期更新)
1、在 linux 中,查看指定进程下各线程运行情况 # ps 方式,查看 pid 为 776 的进程有哪些线程 ps -Tp 776 #> PID SPID TTY TIME CMD #> 776 776 ? 00:00:01 zebra #> 776 778 ? 00:00:00 RCU sweeper #&g…...
【目标跟踪】AntiUAV600数据集详细介绍
AntiUAV600数据集的提出是为了适应真实场景,即无人机可能会随时随地出现和消失。目前提出的Anti-UAV任务都只是将其看做与跟踪其他目标一样的任务,没有结合现实情况考虑。 论文链接:https://arxiv.org/pdf/2306.15767https://arxiv.org/pdf/…...
数学建模之RSR秩和比综合评价法(详细)
RSR秩和比综合评价法 一、概述 秩和比法(Rank-sum ratio,简称RSR法)是我国学者田凤调于1988年提出的,田教授是我国杰出的卫生统计学家,该方法最初提出时用于解决医学卫生领域的综合评价问题,后经各领域学者的补充和完善…...
【Vue3】【Naive UI】<NAutoComplete>标签
【Vue3】【Naive UI】标签 <NAutoComplete> 是 Naive UI 库中的一个组件,用于实现自动完成或联想输入功能。 它允许用户在输入时看到与当前输入匹配的建议列表,从而帮助用户更快地填写表单字段。 这个组件通常用于搜索框、地址输入等场景ÿ…...
SpringBoot自动装配原理
SpringBoot自动装配原理 在介绍SpringBoot自动装配原理之前我们需要先看一个注解 --> SpringBootApplication SpringBootApplication public class BackendApp {public static void main(String[] args) {SpringApplication.run(BackendApp.class, args);} }我们都知道Spr…...
Flask: flask框架是如何实现非阻塞并发的
写在前面:Flask框架是通过多线程/多进程+阻塞的socket实现非阻塞,其本质是基于python的源库socketserver实现的 前言 认识WSGI协议 认识Werkzeug flask是如何实现非阻塞的 本文使用的flask框架为最新的1.1.1版本,所有代码基于python3运行 一:前言 使用过flask或者其他web框…...
svg和canvas比较
SVG(Scalable Vector Graphics)和Canvas都是用于在网页上绘制图形的技术,但它们在工作原理、使用场景和特性上有所不同。以下是对SVG和Canvas的详细介绍及使用示例: 一、SVG 简介 SVG是一种基于XML的标记语言,用于描…...
【前端学习路线】(超详细版本)
先附上学习路线图:前端学习路线 第一阶段:前端入门(htmlcss) 前端最基本的知识,需要先将这些内容融汇贯通,学习后面内容才会不吃力。学习完可以做几个静态页练习一下。 推荐视频学习链接: 黑马程…...
VCU——matlab/simulink软件建模
一、认识MATLAB/Simulink 1. matlab主界面 2. simulink 二、Simulink 建模基础 1. Simulink模块 2. 模型的仿真 matlab 中比较两个浮点型,不要用,采取差值和Compare To Constant的方案 3. 自动代码生成...
ASP.NET Core SignalR 双工通信
01. 介绍 🎯 ASP.NET Core SignalR 是一个开放源代码库,它简化了向应用添加实时 Web 功能的过程。 实时 Web 功能使服务器端代码可以在服务器上激发事件时将事件推送到连接的客户端。 使用 SignalR,客户端也可以将消息发送到服务器ÿ…...
以数据驱动增长,火山引擎数智平台“数据找人”为双12营销提效
“双12”即将来临,众多商家最为关心的,莫过于如何借助对数据的充分利用实现降本增效,在竞争激烈的大环境中快人一步,为了达成这个目标,商家往往需要耗费人力、物力以及时间对海量数据进行寻找与分析。 那么,…...
VuePress学习
1.介绍 VuePress 由两部分组成:第一部分是一个极简静态网站生成器 (opens new window),它包含由 Vue 驱动的主题系统和插件 API,另一个部分是为书写技术文档而优化的默认主题,它的诞生初衷是为了支持 Vue 及其子项目的文档需求。…...
mysql cpu线上问题排查
查看当前的线程情况 show full processlist 查看当前的线程情况 SELECT * FROM performance_schema.threads WHERE PROCESSLIST_TIME > 0 查看当前数据库的连接数 SELECT * FROM performance_schema.threads WHERE PROCESSLIST_DB ‘db’ ; 查看当前mysql连接的数 SHOW GLO…...
QT6学习 第九天 QDialog
QT6学习第九天 QDialog 对话框 QDialog模态和非模态对话框标准对话框颜色对话框进度对话框 对话框 QDialog 模态和非模态对话框 QDialog 类是所有对话框类的基类。对话框是一个经常用来完成短小任务或和用户进行简单交互的顶层窗口。按照运行对话框时是否还可以和该程序的其…...
windows基础
系统目录 服务 端口 注册表 黑客常用DOS命令(在拿到shell时会用到) 一、 系统目录 Windows目录 系统的安装目录 System32configSAM文件 是用户密码的存储文件 System32etchost文件 记录本地解析(优先级大于DNS域名解析)可以自…...
《向量数据库指南》——OPPO分布式向量检索的实战与突破
OPPO对向量检索的探索:从单机到分布式的华丽转身 在当今这个数据爆炸的时代,如何高效地存储、检索和分析数据,成为了企业面临的一大挑战。特别是在人工智能领域,向量数据的处理更是占据了举足轻重的地位。OPPO,作为全球知名的智能手机制造商,自然也不会放过这个技术风口…...
golang语言机构和基础语法
语言结构和基础语法 1.包声明 2.引入包 3.函数 4.init函数 5.变量 6.标识符 7.行分隔符 8.语句&表达式 9.注释 10.公有成员与私有成员 11.关键字、保留字和预定义标志引用类型 1.切片 2.map 3.channel 4.interface 5.func 6.指针类型关键词 1.break 跳转语句,…...
在 MacOS 上为 LM Studio 更换镜像源
在 MacOS 之中使用 LM Studio 部署本地 LLM时,用户可能会遇到无法下载模型的问题。 一般的解决方法是在 huggingface.co 或者国内的镜像站 hf-mirror.com 的项目介绍卡页面下载模型后拖入 LM Studio 的模型文件夹。这样无法利用 LM Studio 本身的搜索功能。 本文将…...
python之Django连接数据库
文章目录 连接Mysql数据库安装Mysql驱动配置数据库信息明确连接驱动定义模型在模型下的models.py中定义表对象在settings.py 中找到INSTALLED_APPS添加创建的模型 测试testdb.py中写增删改查操作urls.py添加请求路径启动项目进行测试 连接Mysql数据库 安装Mysql驱动 pip inst…...
LLM学习笔记(15)LangChain、LlamaIndex、LlamaIndex
Transformer 和 PyTorch 是什么关系? Transformer和PyTorch可以很好地配合使用,但它们并不是同一层面的工具。具体来说: Transformer是一个神经网络的架构,最初用于自然语言处理,但也可以扩展到其他任务(…...
springai结合ollama
目录 ollama 介绍 使用 下载: 安装: 点击这个玩意next就行了。 运行 spring ai使用ollama调用本地部署的大模型 加依赖 配置yml 写代码 ollama 介绍 官网:Ollama Ollama是一个用于部署和运行各种开源大模型的工具; …...
扫描IP段内的使用的IP
扫描IP段内的使用的IP 方法一:命令行 命令行进入 for /L %i IN (1,1,254) DO ping -w 1 -n 1 192.168.3.%iarp -a方法二:python from scapy.all import ARP, Ether, srp import keyboarddef scan_network(ip_range):# 创建一个ARP请求包arp ARP(pds…...
ai即可一键生成ppt解决烦恼
在快节奏的职场环境中,制作PPT已经成为许多人日常工作的一部分。尽管PPT看似简单,却常常让人耗费大量时间。好在技术的进步为我们带来了全新的解决方案,比如智能生成PPT,让那些深夜加班的人看到了曙光。 从“手动排版”到“一键生…...
三、【docker】docker和docker-compose的常用命令
文章目录 一、docker常用命令1、镜像管理2、容器管理3、容器监控和调试4、网络管理5、数据卷管理6、系统维护7、实用组合命令8、常用技巧二、docker-compose常用命令1、基本命令2、构建相关3、运行维护4、常用组合命令5、实用参数 一、docker常用命令 1、镜像管理 # 查看本地…...
「Mac畅玩鸿蒙与硬件43」UI互动应用篇20 - 闪烁按钮效果
本篇将带你实现一个带有闪烁动画的按钮交互效果。通过动态改变按钮颜色,用户可以在视觉上感受到按钮的闪烁效果,提升界面互动体验。 关键词 UI互动应用闪烁动画动态按钮状态管理用户交互 一、功能说明 闪烁按钮效果应用实现了一个动态交互功能…...
小白爬虫——selenium入门超详细教程
目录 一、selenium简介 二、环境安装 2.1、安装Selenium 2.2、浏览器驱动安装 三、基本操作 3.1、对页面进行操作 3.1.1、初始化webdriver 3.1.2、打开网页 3.1.3、页面操作 3.1.4、页面数据提取 3.1.5、关闭页面 3.1.6、综合小案例 3.2、对页面元素进行操作 3.2.…...