- 博客(5)
- 资源 (16)
- 收藏
- 关注
原创 Nacos 是如何同时实现AP与CP的
两种一致性策略如何在nacos中共存或许会有疑问,为什么早先的cp模式的Zookeeper或者AP模式的Eureka,都只有支持CAP理论下大家常用的AP实现或者CP实现,而nacos却能够两个都实现呢?其实CAP理论,仅仅是针对分布式下数据的一致性而言,如果你对于数据的一致性要求不高,可忍受最终一致性,那么AP模式的Eureka就可以满足你了,如果说你对数据的一致性要求很高,那么就使用CP模式的Zookeeper,而追其根本,并不是说Eureka是AP的,或者说Zookeeper是CP的,而是他们
2022-04-13 23:08:58 3335 1
原创 rocketMq高性能存储设计
消息中间价存储一般都是利用磁盘,在廉价的PC机上一般是使用机械硬盘,但机械硬盘的速度比访问内存慢了n个数量级,但一款优秀的消息中间件必然会将硬件资源压榨到极致,接下来看看rocketMq是如何做到高效存储的。1、rocketMq存储结构rocketMq存储这张流程图简单介绍了rocketMq的存储实现,先简单说明下各自的含义MappedFile 所有的topic数据都写到同一个文件中,文件的大小默认为1G,使用mmap与磁盘文件做映射,初始化时使用mlock将内存锁定,防止pagec
2022-04-13 22:02:19 1904 1
原创 偏向锁批量撤销代码
public class LockFlate { public static void main(String[] args) throws Exception { Thread.sleep(5000); List<A> listA = new ArrayList<>(); Thread t1 = new Thread(() -> { for (int i = 0; i <100 ; i.
2022-04-12 13:40:12 332
原创 synchronized加锁过程
自己梳理了一下,备忘。默认JVM启动后有一个偏向延时,默认刚启动5秒内创建的对象,不启用可偏向锁。可以通过jvm参数设置。锁竞争过程:1.当对象未被任何线程持有(对象头锁标记为101,线程id为0,是可偏向状态),通过CAS将对象头的线程id指向当前线程。2.当有线程竞争,判断锁对象的头信息(对象 头锁标 记为101,线程id不为0),头信息的线程id与当前线程id不相等,锁对象已被其他线程占用,此时判断头信息的epoch与锁对象头信息指向klass的epoch是否相等,如果不相等,则说明被
2022-04-12 11:07:57 538
原创 maven依赖顺序原则
使用maven的程序员都会遇到一个问题,那就是maven依赖冲突的问题,这会导致ClassNotFound或者MethodNotFound这样的异常。其实只要明白maven依赖的根本性的原则就不怕这样的问题了。一、maven依赖原则1.间接依赖路径最短优先一个项目test依赖了a和b两个jar包。其中a-b-c1.0 , d-e-f-c1.1 。由于c1.0路径最短,所以项目test最后使用的是c1.0。2.pom文件中申明顺序优先有人就问了如果 a-b-c1.0 , d-e-c1.1 这样路
2022-04-08 17:26:58 4335
java聊天室(仿QQ),socket+线程实现
2013-08-26
绝对牛的ibatis代码生成(也可以单独用于pojo生成)
2011-09-09
自己用c#做的播放器
2008-12-16
java抽象工厂增删改查
2008-12-16
c#三层+抽象工厂实现+类似抽象工厂反射实现
2008-12-16
JSP2_0技术手册
2008-09-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人