Java核心知识点整理大全22-笔记
目录
19.1.14. CAP
一致性(C):
可用性(A):
分区容忍性(P):
20. 一致性算法
20.1.1. Paxos
Paxos 三种角色:Proposer,Acceptor,Learners
Proposer:
Acceptor:
Learner:
Paxos 算法分为两个阶段。具体如下:
阶段一(准 leader 确定 ):
阶段二(leader 确认):
20.1.2. Zab
20.1.3. Raft
20.1.3.1. 角色
Leader(领导者-日志管理)
Follower(追随者-日志同步)
Candidate(候选者-负责选票)
20.1.3.2. Term(任期
20.1.3.3. 选举(Election)
20.1.3.4. 安全性(Safety)
20.1.3.5. raft 协议和 zab 协议区别
相同点
不同点
20.1.4. NWR
20.1.5. Gossip
20.1.6. 一致性 Hash
20.1.6.1. 一致性 Hash 特性
20.1.6.2. 一致性 Hash 原理
1.建构环形 hash 空间:
2.把需要缓存的内容(对象)映射到 hash 空间
3.把服务器(节点)映射到 hash 空间
4.把对象映射到服务节点
考察 cache 的变动
虚拟节点
Java核心知识点整理大全-笔记_希斯奎的博客-CSDN博客
往期快速传送门👆:

19.1.14. CAP
CAP 原则又称 CAP 定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability (可用性)、Partition tolerance(分区容错性),三者不可得兼。
一致性(C):
1. 在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份 最新的数据副本)
可用性(A):
2. 在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备 高可用性)
分区容忍性(P):
3. 以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性, 就意味着发生了分区的情况,必须就当前操作在 C 和 A 之间做出选择。
20. 一致性算法
20.1.1. Paxos
Paxos 算法解决的问题是一个分布式系统如何就某个值(决议)达成一致。一个典型的场景是, 在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点执行相同的操作序列,那么 他们最后能得到一个一致的状态。为保证每个节点执行相同的命令序列,需要在每一条指令上执 行一个“一致性算法”以保证每个节点看到的指令一致。zookeeper 使用的 zab 算法是该算法的 一个实现。 在 Paxos 算法中,有三种角色:Proposer,Acceptor,Learners
Paxos 三种角色:Proposer,Acceptor,Learners
Proposer:
只要 Proposer 发的提案被半数以上 Acceptor 接受,Proposer 就认为该提案里的 value 被选定 了。
Acceptor:
只要 Acceptor 接受了某个提案,Acceptor 就认为该提案里的 value 被选定了。
Learner:
Acceptor 告诉 Learner 哪个 value 被选定,Learner 就认为那个 value 被选定。
Paxos 算法分为两个阶段。具体如下:
阶段一(准 leader 确定 ):
(a) Proposer 选择一个提案编号 N,然后向半数以上的 Acceptor 发送编号为 N 的 Prepare 请求。
(b) 如果一个 Acceptor 收到一个编号为 N 的 Prepare 请求,且 N 大于该 Acceptor 已经响应过的 所有 Prepare 请求的编号,那么它就会将它已经接受过的编号最大的提案(如果有的话)作为响 应反馈给 Proposer,同时该 Acceptor 承诺不再接受任何编号小于 N 的提案。
阶段二(leader 确认):
(a) 如果 Proposer 收到半数以上 Acceptor 对其发出的编号为 N 的 Prepare 请求的响应,那么它 就会发送一个针对[N,V]提案的 Accept 请求给半数以上的 Acceptor。注意:V 就是收到的响应中 编号最大的提案的 value,如果响应中不包含任何提案,那么 V 就由 Proposer 自己决定。
(b) 如果 Acceptor 收到一个针对编号为 N 的提案的 Accept 请求,只要该 Acceptor 没有对编号 大于 N 的 Prepare 请求做出过响应,它就接受该提案。
20.1.2. Zab
ZAB( ZooKeeper Atomic Broadcast , ZooKeeper 原子消息广播协议)协议包括两种基本的模 式:崩溃恢复和消息广播
1. 当整个服务框架在启动过程中,或是当 Leader 服务器出现网络中断崩溃退出与重启等异常情 况时,ZAB 就会进入恢复模式并选举产生新的 Leader 服务器。
2. 当选举产生了新的 Leader 服务器,同时集群中已经有过半的机器与该 Leader 服务器完成了 状态同步之后,ZAB 协议就会退出崩溃恢复模式,进入消息广播模式。
3. 当有新的服务器加入到集群中去,如果此时集群中已经存在一个 Leader 服务器在负责进行消 息广播,那么新加入的服务器会自动进入数据恢复模式,找到 Leader 服务器,并与其进行数 据同步,然后一起参与到消息广播流程中去。
以上其实大致经历了三个步骤:
1.崩溃恢复:主要就是 Leader 选举过程
2.数据同步:Leader 服务器与其他服务器进行数据同步
3.消息广播:Leader 服务器将数据发送给其他服务器
说明:zookeeper 章节对该协议有详细描述。
20.1.3. Raft
与 Paxos 不同 Raft 强调的是易懂(Understandability),Raft 和 Paxos 一样只要保证 n/2+1 节 点正常就能够提供服务;raft 把算法流程分为三个子问题:选举(Leader election)、日志复制 (Log replication)、安全性(Safety)三个子问题。
20.1.3.1. 角色
Raft 把集群中的节点分为三种状态:Leader、 Follower 、Candidate,理所当然每种状态负 责的任务也是不一样的,Raft 运行时提供服务的时候只存在 Leader 与 Follower 两种状态;
Leader(领导者-日志管理)
负责日志的同步管理,处理来自客户端的请求,与 Follower 保持这 heartBeat 的联系;
Follower(追随者-日志同步)
刚启动时所有节点为Follower状态,响应Leader的日志同步请求,响应Candidate的请求, 把请求到 Follower 的事务转发给 Leader;
Candidate(候选者-负责选票)
负责选举投票,Raft 刚启动时由一个节点从 Follower 转为 Candidate 发起选举,选举出 Leader 后从 Candidate 转为 Leader 状态;
20.1.3.2. Term(任期
) 在 Raft 中使用了一个可以理解为周期(第几届、任期)的概念,用 Term 作为一个周期,每 个 Term 都是一个连续递增的编号,每一轮选举都是一个 Term 周期,在一个 Term 中只能产生一 个 Leader;当某节点收到的请求中 Term 比当前 Term 小时则拒绝该请求。
20.1.3.3. 选举(Election)
选举定时器
Raft 的选举由定时器来触发,每个节点的选举定时器时间都是不一样的,开始时状态都为 Follower 某个节点定时器触发选举后 Term 递增,状态由 Follower 转为 Candidate,向其他节点 发起 RequestVote RPC 请求,这时候有三种可能的情况发生:
1:该 RequestVote 请求接收到 n/2+1(过半数)个节点的投票,从 Candidate 转为 Leader, 向其他节点发送 heartBeat 以保持 Leader 的正常运转。
2:在此期间如果收到其他节点发送过来的 AppendEntries RPC 请求,如该节点的 Term 大 则当前节点转为 Follower,否则保持 Candidate 拒绝该请求。
3:Election timeout 发生则 Term 递增,重新发起选举
在一个 Term 期间每个节点只能投票一次,所以当有多个 Candidate 存在时就会出现每个 Candidate 发起的选举都存在接收到的投票数都不过半的问题,这时每个 Candidate 都将 Term 递增、重启定时器并重新发起选举,由于每个节点中定时器的时间都是随机的,所以就不会多次 存在有多个 Candidate 同时发起投票的问题。
在 Raft 中当接收到客户端的日志(事务请求)后先把该日志追加到本地的 Log 中,然后通过 heartbeat 把该 Entry 同步给其他 Follower,Follower 接收到日志后记录日志然后向 Leader 发送 ACK,当 Leader 收到大多数(n/2+1)Follower 的 ACK 信息后将该日志设置为已提交并追加到 本地磁盘中,通知客户端并在下个 heartbeat 中 Leader 将通知所有的 Follower 将该日志存储在 自己的本地磁盘中。
20.1.3.4. 安全性(Safety)
安全性是用于保证每个节点都执行相同序列的安全机制如当某个 Follower 在当前 Leader commit Log 时变得不可用了,稍后可能该 Follower 又会倍选举为 Leader,这时新 Leader 可能会用新的 Log 覆盖先前已 committed 的 Log,这就是导致节点执行不同序列;Safety 就是用于保证选举出 来的 Leader 一定包含先前 commited Log 的机制;
选举安全性(Election Safety):每个 Term 只能选举出一个 Leader Leader
完整性(Leader Completeness):这里所说的完整性是指 Leader 日志的完整性, Raft 在选举阶段就使用 Term 的判断用于保证完整性:当请求投票的该 Candidate 的 Term 较大 或 Term 相同 Index 更大则投票,该节点将容易变成 leader。
20.1.3.5. raft 协议和 zab 协议区别
相同点
采用 quorum 来确定整个系统的一致性,这个 quorum 一般实现是集群中半数以上的服务器,
zookeeper 里还提供了带权重的 quorum 实现.
都由 leader 来发起写操作.
都采用心跳检测存活性
leader election 都采用先到先得的投票方式
不同点
zab 用的是 epoch 和 count 的组合来唯一表示一个值, 而 raft 用的是 term 和 index
zab 的 follower 在投票给一个 leader 之前必须和 leader 的日志达成一致,而 raft 的 follower 则简单地说是谁的 term 高就投票给谁
raft 协议的心跳是从 leader 到 follower, 而 zab 协议则相反
raft 协议数据只有单向地从 leader 到 follower(成为 leader 的条件之一就是拥有最新的 log), 而 zab 协议在 discovery 阶段, 一个 prospective leader 需要将自己的 log 更新为 quorum 里面 最新的 log,然后才好在 synchronization 阶段将 quorum 里的其他机器的 log 都同步到一致
20.1.4. NWR
N:在分布式存储系统中,有多少份备份数据
W:代表一次成功的更新操作要求至少有 w 份数据写入成功
R: 代表一次成功的读数据操作要求至少有 R 份数据成功读取
NWR值的不同组合会产生不同的一致性效果,当W+R>N 的时候,整个系统对于客户端来讲能保 证强一致性。而如果 R+W<=N,则无法保证数据的强一致性。以常见的 N=3、W=2、R=2 为例: N=3,表示,任何一个对象都必须有三个副本(Replica),W=2 表示,对数据的修改操作 (Write)只需要在 3 个 Replica 中的 2 个上面完成就返回,R=2 表示,从三个对象中要读取到 2 个数据对象,才能返回

20.1.5. Gossip
Gossip 算法又被称为反熵(Anti-Entropy),熵是物理学上的一个概念,代表杂乱无章,而反熵 就是在杂乱无章中寻求一致,这充分说明了 Gossip 的特点:在一个有界网络中,每个节点都随机地与其他节点通信,经过一番杂乱无章的通信,最终所有节点的状态都会达成一致。每个节点可 能知道所有其他节点,也可能仅知道几个邻居节点,只要这些节可以通过网络连通,最终他们的 状态都是一致的,当然这也是疫情传播的特点。
20.1.6. 一致性 Hash
一致性哈希算法(Consistent Hashing Algorithm)是一种分布式算法,常用于负载均衡。 Memcached client 也选择这种算法,解决将 key-value 均匀分配到众多 Memcached server 上 的问题。它可以取代传统的取模操作,解决了取模操作无法应对增删 Memcached Server 的问题 (增删 server 会导致同一个 key,在 get 操作时分配不到数据真正存储的 server,命中率会急剧下 降)。
20.1.6.1. 一致性 Hash 特性
平衡性(Balance):平衡性是指哈希的结果能够尽可能分布到所有的缓冲中去,这样可以使得 所有的缓冲空间都得到利用。
单调性(Monotonicity):单调性是指如果已经有一些内容通过哈希分派到了相应的缓冲中, 又有新的缓冲加入到系统中。哈希的结果应能够保证原有已分配的内容可以被映射到新的缓 冲中去,而不会被映射到旧的缓冲集合中的其他缓冲区。容易看到,上面的简单求余算法 hash(object)%N 难以满足单调性要求。
平滑性(Smoothness):平滑性是指缓存服务器的数目平滑改变和缓存对象的平滑改变是一致 的。
20.1.6.2. 一致性 Hash 原理
1.建构环形 hash 空间:
1. 考虑通常的 hash 算法都是将 value 映射到一个 32 为的 key 值,也即是 0~2^32-1 次方的 数值空间;我们可以将这个空间想象成一个首( 0 )尾( 2^32-1 )相接的圆环。
2.把需要缓存的内容(对象)映射到 hash 空间
2. 接下来考虑 4 个对象 object1~object4 ,通过 hash 函数计算出的 hash 值 key 在环上的分 布
3.把服务器(节点)映射到 hash 空间
3. Consistent hashing 的基本思想就是将对象和 cache 都映射到同一个 hash 数值空间中,并 且使用相同的 hash 算法。一般的方法可以使用 服务器(节点) 机器的 IP 地址或者机器名作为 hash 输入。
4.把对象映射到服务节点
4. 现在服务节点和对象都已经通过同一个 hash 算法映射到 hash 数值空间中了,首先确定对象 hash 值在环上的位置,从此位置沿环顺时针“行走”,第一台遇到的服务器就是其应该定位 到的服务器。

考察 cache 的变动
5. 通过 hash 然后求余的方法带来的最大问题就在于不能满足单调性,当 cache 有所变动时, cache 会失效。
5.1 移除 cache:考虑假设 cache B 挂掉了,根据上面讲到的映射方法,这时受影响的将仅是 那些沿 cache B 逆时针遍历直到下一个 cache ( cache C )之间的对象。
5.2 添加 cache:再考虑添加一台新的 cache D 的情况,这时受影响的将仅是那些沿 cache D 逆时针遍历直到下一个 cache 之间的对象,将这些对象重新映射到 cache D 上即可。
虚拟节点
hash 算法并不是保证绝对的平衡,如果 cache 较少的话,对象并不能被均匀的映射到 cache 上, 为了解决这种情况, consistent hashing 引入了“虚拟节点”的概念,它可以如下定义: 虚拟节点( virtual node )是实际节点在 hash 空间的复制品( replica ),一实际个节点对应了 若干个“虚拟节点”,这个对应个数也成为“复制个数”,“虚拟节点”在 hash 空间中以 hash 值排列。
仍以仅部署 cache A 和 cache C 的情况为例。现在我们引入虚拟节点,并设置“复制个数”为 2 , 这就意味着一共会存在 4 个“虚拟节点”, cache A1, cache A2 代表了 cache A; cache C1, cache C2 代表了 cache C 。此时,对象到“虚拟节点”的映射关系为:
objec1->cache A2 ; objec2->cache A1 ; objec3->cache C1 ; objec4->cache C2 ;
因此对象 object1 和 object2 都被映射到了 cache A 上,而 object3 和 object4 映射到了 cache C 上;平衡性有了很大提高。
引入“虚拟节点”后,映射关系就从 { 对象 -> 节点 } 转换到了 { 对象 -> 虚拟节点 } 。查询物体所在cache 时的映射关系如下图 所示。

Java核心知识点整理大全-笔记_希斯奎的博客-CSDN博客
Java核心知识点整理大全2-笔记_希斯奎的博客-CSDN博客
Java核心知识点整理大全3-笔记_希斯奎的博客-CSDN博客
Java核心知识点整理大全4-笔记-CSDN博客
Java核心知识点整理大全5-笔记-CSDN博客
Java核心知识点整理大全6-笔记-CSDN博客
Java核心知识点整理大全7-笔记-CSDN博客
Java核心知识点整理大全8-笔记-CSDN博客
Java核心知识点整理大全9-笔记-CSDN博客
Java核心知识点整理大全10-笔记-CSDN博客
Java核心知识点整理大全11-笔记-CSDN博客
Java核心知识点整理大全12-笔记-CSDN博客
Java核心知识点整理大全13-笔记-CSDN博客
Java核心知识点整理大全14-笔记-CSDN博客
Java核心知识点整理大全15-笔记-CSDN博客
Java核心知识点整理大全16-笔记-CSDN博客
Java核心知识点整理大全17-笔记-CSDN博客
Java核心知识点整理大全18-笔记-CSDN博客
Java核心知识点整理大全19-笔记-CSDN博客
Java核心知识点整理大全20-笔记-CSDN博客
Java核心知识点整理大全21-笔记-CSDN博客
往期快速传送门👆:
相关文章:
Java核心知识点整理大全22-笔记
目录 19.1.14. CAP 一致性(C): 可用性(A): 分区容忍性(P): 20. 一致性算法 20.1.1. Paxos Paxos 三种角色:Proposer,Acceptor,L…...
qt 5.15.2读取csv文件功能
qt 5.15.2读取csv文件功能 工程文件.pro 内容: QT core#添加网络模块 QT networkCONFIG c17 cmdline# You can make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. #DEFINES QT_DISABLE_DEPREC…...
【Vue】绝了!还有不懂生命周期的?
生命周期 Vue.js 组件生命周期: 生命周期函数(钩子)就是给我们提供了一些特定的时刻,让我们可以在这个周期段内加入自己的代码,做一些需要的事情; 生命周期钩子中的this指向是VM 或 组件实例对象 在JS 中,…...
关于IP与端口以及localhost
IP和域名 IP地址是一个规定,现在使用的是IPv4,既由4个0-255之间的数字组成,在计算机中,IP地址是分配给网卡的,每个网卡有一个唯一的IP地址。 域名(Domain Name)就是给IP取一个字符的名字,例如http://163.c…...
如何进行MySQL的主从复制(MySQL5.7)
背景:在一些Web服务器开发中,系统用户在进行数据访问时,基本都是直接操作数据库MySQL进行访问,而这种情况下,若只有一台MySQL服务器,可能会存在如下问题 数据的读和写的所有压力都会由一台数据库独…...
5:kotlin 类(Classes )
kotlin支持面向对象编程,也有雷和对象的概念 要声明一个类需要使用class关键字 class Customer属性(Properties) 可以在类名后边添加(),在()里边声明属性 class Contact(val id: Int, var email: String)声明了不…...
达梦:【1】达梦常用操作
达梦:【1】达梦常用操作 一、登录达梦二、创建表空间及用户模式三、查看表空间、用户、模式四、系统查询五、角色管理六、数据库导入导出七、达梦数据库汉字存储八、根据表生成ctl控制文件九、本地连多台数据库(RAC) 一、登录达梦 ./disql username/passwordip:por…...
数字人透明屏幕的技术原理是什么?
数字人透明屏幕的技术原理主要包括人脸识别和全息影像技术。其中,人脸识别技术是通过摄像头捕捉游客的面部表情和动作,并将其转化为数据指令,以便与数字人物进行互动。而全息影像技术则是利用透明屏幕,通过全息投影的方式将数字人…...
提升APP软件的用户体验方法
提升APP软件的用户体验是确保用户满意度和应用成功的关键。以下是一些方法,可以帮助提升APP的用户体验,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.简洁的用户界面设计: …...
JVM运行时数据区域、对象内存分配、内存溢出异常总结
深入理解java虚拟机第二章 二、运行时数据区域2.2.1 程序计数器2.2.2 Java虚拟机栈2.2.3 本地方法栈2.2.4 Java堆2.2.5 方法区2.2.6 运行时常量池2.2.7 直接内存 三、HotSpot虚拟机对象解密2.3.1 对象的创建对象如何分配内存?对象的创建如何处理并发问题?…...
【C++设计模式】单例模式singleton
C 设计模式–单例模式singleton 单例模式 单例模式是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。 优点:内存中只有一个实例,减少内存开销;避免对资源多重占用;设置全局访问点,严…...
CVPR 2023 精选论文学习笔记:Post-Training Quantization on Diffusion Models
基于MECE原则,我们给出以下四种分类依据: 1. 模型类型 生成模型用于生成与其训练数据相似的新数据。它们通常用于图像生成、文本生成和音乐生成等任务。语言模型用于理解和生成人类语言。它们通常用于机器翻译、聊天机器人和文本摘要等任务。其他模型用于各种任务,例如图像…...
Python基础语法之学习字符串快速格式化
Python基础语法之学习字符串快速格式化 一、代码二、效果 一、代码 # 通过f"{占位}"控制字符串快速格式化,不做精度控制 name "张三" age 13 money 12.5 text f"姓名是{name},年龄是{age},钱是{money}" print(text)二、效果 每一天都是一个…...
Ubuntu22.04 server版本关闭DHCP,手动设置ip
在Ubuntu 22.04 中,网络配置已迁移到 Netplan,因此可以使用 Netplan 配置文件来手动设置 IP 地址并关闭 DHCP。 以下是在 Ubuntu 22.04 上手动设置 IP 地址并禁用 DHCP 的步骤: 打开终端,使用 root 权限或 sudo 执行以下命令&…...
贪心算法(新坑)
贪心入门 概述: 贪心算法是一种在每一步选择中都采取当前最优解的策略,希望最终能够得到全局最优解的算法。简单来说,它会不断地做出局部最优的选择,相信通过这种选择最终能够达到全局最优。 举个例子来说明。假设你要从一个迷…...
C 语言头文件
C 语言头文件 头文件是扩展名为 .h 的文件,包含了 C 函数声明和宏定义,被多个源文件中引用共享。有两种类型的头文件:程序员编写的头文件和编译器自带的头文件。 在程序中要使用头文件,需要使用 C 预处理指令 #include 来引用它…...
MySQL中自增id用完怎么办?
MySQL中自增id用完怎么办? MySQL里有很多自增的id,每个自增id都是定义了初始值,然后不停地往上加步长。虽然自然数是没有上限的,但是在计算机里,只要定义了表示这个数的字节长度,那它就有上限。比如&#…...
C语言常见算法
算法(Algorithm):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使…...
0-1背包的初始化问题
题目链接 这道题的状态转移方程比较易于确定。dp[i][j]表示能放前i个物品的情况下,容量为j时能放物品的数量(这道题歌曲数量对应物品数量,容量对应时间)。 技巧(收获) 二维dp数组可以视情况优化为一维dp数组…...
API之 要求接口上传pdf 以 合同PDF的二进制数据,multpart方式上传
实现 //时间戳13位毫秒private function getMillisecond() {list($s1,$s2) explode( ,microtime());return (float)sprintf(%.0f,(floatval($s1) floatval($s2)) * 1000);}// 组装参数private function gysscPost1($url,$data){// $data[timestamp] 1694402111964;$data[tim…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
