04 2019 档案
摘要:朱小厮: https://www.jianshu.com/u/4aae8eab80e8 Kafka核心技术与实战--胡夕 https://blog.csdn.net/qq_18522601/category_9118026.html
阅读全文
摘要:如何选择分布式事务形态(TCC、SAGA、补偿、基于消息的最终一致等等) 各种形态的分布式事务 分布式事务有多种主流形态,包括: 基于消息实现的分布式事务 基于补偿实现的分布式事务 基于TCC实现的分布式事务 基于SAGA实现的分布式事务 基于2PC实现的分布式事务 基于消息实现的分布式事务 基于补
阅读全文
摘要:https://mp.weixin.qq.com/s?__biz=MzI2ODYxMjU4MQ==&mid=2247483969&idx=1&sn=1c044b32dd16a01ff53f0d161db575be&chksm=eaeda4cbdd9a2ddd24d873c7a11c7c2df3659
阅读全文
摘要:http://youzhixueyuan.com/the-principle-and-technology-realization-of-distributed-data-consistency.html 背景 可用性(Availability)和一致性(Consistency)是分布式系统的基本问
阅读全文
摘要:目录 一、从网卡接收数据说起 二、如何知道接收了数据? 三、进程阻塞为什么不占用cpu资源? 四、内核接收网络数据全过程 五、同时监视多个socket的简单方法 六、epoll的设计思路 七、epoll的原理和流程 八、epoll的实现细节 九、结论 从事服务端开发,少不了要接触网络编程。epoll
阅读全文
摘要:https://www.cnblogs.com/xrq730/p/4931418.html
阅读全文
摘要:一、哪些情况下适合建索引 1. 频繁作为where条件语句查询的字段 2. 关联字段需要建立索引,例如外键字段,student表中的classid, classes表中的schoolid 等 3. 排序字段可以建立索引 4. 分组字段可以建立索引,因为分组的前提是排序 5. 统计字段可以建立索引,例
阅读全文
摘要:先抛出几个问题 1.为什么不建议使用订单号作为主键? 2.为什么要在需要排序的字段上加索引? 3.for update 的记录不存在会导致锁住全表? 4.redolog 和 binlog 有什么区别? 5.MySQL 如何回滚一条 sql ? 6.char(50) 和 varchar(50) 效果是
阅读全文
摘要:1 collect(toList()) collect(toList()) 方法由Stream 里的值生成一个列表,是一个及早求值操作。 2 map 如果有一个函数可以将一种类型的值转换成另外一种类型,map 操作就可以使用该函数,将一个流中的值转换成一个新的流。 3 filter 遍历数据并检查其
阅读全文
摘要:Spring工作流程描述 1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获; 2. DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handle
阅读全文
摘要:责任链模式的定义与特点 责任链模式的定义:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系,将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。 标准的责任链模式,个人总结下来有如下几个特点: 链上的每个对象都有机会处理请求 链上的每个对象都持有下一个要处理
阅读全文
摘要:StampedLock是Java8引入的一种新的锁机制,简单的理解,可以认为它是读写锁的一个改进版本,读写锁虽然分离了读和写的功能,使得读与读之间可以完全并发,但是读和写之间依然是冲突的,读锁会完全阻塞写锁,它使用的依然是悲观的锁策略.如果有大量的读线程,他也有可能引起写线程的饥饿,而Stamped
阅读全文
摘要:如果让你实现一个计数器,有点经验的同学可以很快的想到使用AtomicInteger或者AtomicLong进行简单的封装。 因为计数器操作涉及到内存的可见性和线程之间的竞争,而Atomic***的实现完美的屏蔽了这些技术细节,我们只需要执行相应的方法,就能实现对应的业务需求。 Atomic**虽然好
阅读全文
摘要:https://segmentfault.com/a/1190000007282628 netty社区-简书闪电侠 :https://netty.io/wiki/related-articles.html 占小狼:https://www.jianshu.com/nb/7269354 绝尘驹 : ht
阅读全文
摘要:回顾一下,如果wait()方法不在同步块中,代码的确会抛出异常: 结果是: 为什么呢? Lost Wake-Up Problem 事情得从一个多线程编程里面臭名昭著的问题"Lost wake-up problem"说起。 这个问题并不是说只在Java语言中会出现,而是会在所有的多线程环境下出现。 假
阅读全文
摘要:https://www.jianshu.com/p/c1b616ff1130 http://youzhixueyuan.com/the-underlying-structure-and-principle-of-hashmap.html 为什么Map桶中个数超过8才转为红黑树: https://mp
阅读全文
摘要:https://www.cnblogs.com/xrq730/p/5041921.html https://mp.weixin.qq.com/s?__biz=MjM5MzA1Mzc3Nw==&mid=2247484283&idx=1&sn=d2717dbcdc9c086b329f91c3cfeab8
阅读全文
摘要:https://www.cnblogs.com/xrq730/p/4907559.html https://www.cnblogs.com/xrq730/p/9280404.html
阅读全文
摘要:Java 内存模型 屏蔽掉各种硬件和操作系统的内存访问差异。 1 主内存和工作内存之间的交互 2 对于 volatile 型变量的特殊规则 关键字 volatile 是 Java 虚拟机提供的最轻量级的同步机制。 一个变量被定义为 volatile 的特性: 保证此变量对所有线程的可见性。但是操作并
阅读全文
摘要:在学习之前,最好先了解下如下知识: 1、ReentrantLock的实现和原理。 2、Synchronized的实现和原理。 3、硬件对并发支持的CAS操作及JVM中Unsafe对CAS的实现。 4、JDK1.7中关于ConcurrentHashMap的实现原理。 5、volatile的实现原理。
阅读全文
摘要:相关博文: https://segmentfault.com/a/1190000008693801 https://www.jianshu.com/p/fa1eac9710c8 线程池大小设置 https://www.cnblogs.com/lengender-12/p/6869554.html h
阅读全文
摘要:AbstactQueuedSynchronizer的基本数据结构 AbstractQueuedSynchronizer的基本数据结构为Node,关于Node,JDK作者写了详细的注释,这里我大致总结几点: 下面我用一张表格总结一下Node中持有哪些变量且每个变量的含义: 关于SIGNAL、CANCE
阅读全文
摘要:一、Java 并发包实现 二、Java 线程状态转换图
阅读全文
摘要:选择器 最后,我们探索一下选择器。由于选择器内容比较多,所以本篇先偏理论地讲一下,后一篇讲代码,文章也没有什么概括、总结的,写到哪儿算哪儿了,只求能将选择器写明白,并且将一些相对重要的内容加粗标红。 选择器提供选择执行已经就绪的任务的能力,这使得多元I/O成为了可能,就绪执行和多元选择使得单线程能够
阅读全文
摘要:Socket通道 上文讲述了通道、文件通道,这篇文章来讲述一下Socket通道,Socket通道与文件通道有着不一样的特征,分三点说: 1、NIO的Socket通道类可以运行于非阻塞模式并且是可选择的,这两个性能可以激活大程序(如网络服务器和中间件组件)巨大的可伸缩性和灵活性,因此,再也没有为每个S
阅读全文
摘要:通道是什么 通道式(Channel)是java.nio的第二个主要创新。通道既不是一个扩展也不是一项增强,而是全新的、极好的Java I/O示例,提供与I/O服务的直接连接。Channel用于在字节缓冲区和位于通道另一侧的实体(通常是一个文件或套接字)之间有效地传输数据。 通常情况下,通道与操作系统
阅读全文
摘要:https://www.cnblogs.com/xrq730/p/6910719.html TCP三次握手和短连接优化: http://www.lihongkun.com/network/tcp_handshake_and_short_connection/ TCP协议头部格式 这张图把TCP协议头
阅读全文

浙公网安备 33010602011771号