框架
码农随笔
这个作者很懒,什么都没留下…
展开
-
ByteBuf 内部结构设计
一、首先介绍下 ReferenceCounted 接口public interface ReferenceCounted { /** * 返回对象的引用数量,如果返回0,表示这个对象已经被释放 */ int refCnt(); /** * 引用计数加 1 */ ReferenceCounted retain(); /** * 引用计数加 increment */ ReferenceCount原创 2020-12-09 23:53:05 · 199 阅读 · 0 评论 -
Spring AOP——Spring 中面向切面编程
Spring AOP——Spring 中面向切面编程前面两篇文章记录了 Spring IOC 的相关知识,本文记录 Spring 中的另一特性 AOP 相关知识。部分参考资料:《Spring实战(第4版)》《轻量级 JavaEE 企业应用实战(第四版)》Spring 官方文档W3CSchool Spring教程易百教程 Spring教程一、AOP——另一种编程思想1.1 什么是 AOPAOP (Aspect Orient Programming),直译过来就是 面向切面编程。AO转载 2020-11-25 22:42:33 · 119 阅读 · 0 评论 -
Zookeeper单机版服务器启动流程
预启动1、统一由 QuorumPeerMain作为启动类。 无论是单机版还是集群模式启动Zookeeper服务器,QuorumPeerMain都作为启动入口。2、解析配置文件Zoo.cfg 首先会创建QuorumPeerConfig并解析配置文件(zoo.cfg)。该文件包括 tickTime 、dataDir和 clientPort等参数。3、创...原创 2020-10-29 22:27:45 · 573 阅读 · 0 评论 -
[Zookeeper] ACL-保障数据的安全
Zookeeper作为一个分布式协调框架,其内部存储的都是一些关于分布式系统运行时状态的元数据,尤其是一些涉及到分布式锁、Master选举和分布式协调等应用场景的数据。数据的安全性一定程度上影响着系统的运行时状态。Zookeeper提供了一套完善的ACL(Access Control List)权限控制来保障数据的安全性。Acl。即访问控制列表。ACL介绍权限模式(Scheme)、授权对象(ID)和权限(permission),通常使用“scheme:id:permission”来标识一个有效的AC原创 2020-10-24 01:10:41 · 256 阅读 · 0 评论 -
Watcher--数据变更的通知
Zookeeper提供了分布式数据的发布/订阅功能,Zookeeper引入了Watcher机制来实现分布式的通知功能,Zookeeper允许客户端向服务端注册一个Watcher监听,当服务端的一些指定事件触发了这个Watcher,则会通知客户端进行相应的处理,Watcher机制概述如下图:从上图可以看出,客户端在向Zookeeper注册Watcher时会同步把该Watcher存储在WatcherManger中,当Zookeeper服务器端触发Watcher时,会通知客户端,然后从WatcherMan原创 2020-10-22 20:07:40 · 453 阅读 · 0 评论 -
Zookeeper数据模型介绍
Zookeeper的视图结构和标准的Unix文件系统非常类似,但没有引入传统文件系统中目录和文件等相关概念,而是使用了其特有的"数据节点"概念,我们称之为ZNode(对应java中的DataNode),每个ZNode上都可以保存数据,同时还挂载子节点,是层次化的,用树表示,如下图表示通过get得到的信息: 在Java中对应如下:public class DataNode implements Record { /** the parent of this datanode */ ...原创 2020-10-15 22:33:21 · 431 阅读 · 1 评论 -
MyBatis缓存机制详解
一级缓存MyBatis 包含了一个非常强大的查询缓存特性,它可以非常方便地配置和定制。MyBatis 3 中的缓存实现的很多改进都已经实现了,使得它更加强大而且易于配置。mybatis默认情况下只会开启一级缓存,也就是局部的 session 会话缓存。首先我们要知道什么是查询缓存?查询缓存又有什么作用?功能:mybatis提供查询缓存,用于减轻数据压力,提高数据库性能。如下图,每一个...转载 2019-08-05 19:25:30 · 103 阅读 · 0 评论