每个 ChannelSocket 的 Unsafe 都有一个绑定的 ChannelOutboundBuffer , Netty 向站外输出数据的过程统一通过 ChannelOutboundBuffer 类进行封装,目的是为了提高网络的吞吐量,在外面调用 write 的时候,数据并没有写到 Socket,而是写到了 ChannelOutboundBuffer 这里,当调用 flush 的时候,才真正
  • arick
  • 2020-08-12 00:01:12
java反射核心机制与原理解析一、java的核心机制java有两种核心机制:java虚拟机(JavaVirtual Machine)与垃圾收集机制(Garbage collection):1、Java虚拟机:是运行所有Java程序的抽象计算机,是Java语言的运行环境,在其上面运行Java代码编译后的字节码程序,java虚拟机实现了平台无关性。2、Java垃圾回收(Garbage Collecti
  • arick
  • 2019-09-24 22:13:25
开源展示了人类共同协作,成果分享的魅力,每一次技术发展都是站在巨人的肩膀上,技术诸多创新和发展往往就是基于开源发展起来的,没有任何一家网络公司可以不使用开源技术,仅靠自身技术而发展起来。阿里巴巴各个团队都是发自内心地将踩过的坑和总结的经验融入到开源项目中,供业界所有人使用,希望帮助他人解决问题。云栖社区特在2018年年末,将阿里巴巴的一些重要的开源项目进行整理,希望对大家有所帮助。(以下项目排名不
  • arick
  • 2020-05-03 00:14:57
ReentrantLock主要利用CAS+AQS队列来实现。它支持公平锁和非公平锁,两者的实现类似。CAS:Compare and Swap,比较并交换。CAS有3个操作数:内存值V、预期值A、要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。该操作是一个原子操作,被广泛的应用在Java的底层实现中。在Java中,CAS主要是由sun.misc.Unsafe这个
  • arick
  • 2020-04-14 06:57:28
维基百科:领域模型可以被看作是一个系统的概念模型,用于以可视化的形式描述系统中的各个实体及其之间的关系。领域模型记录了一个系统中的关键概念和词汇表,显示出了系统中的主要实体之间的关系,并确定了它们的重要的方法和属性。因此,对应于用例所描述的动态视图,领域模型提供了一种对整个系统的结构化的视图。领域模型的一个好处是描述并限制了系统边界。领域模型的语义可以被用在源代码中,因此领域模型可以被应用在底层的
  • arick
  • 2020-04-06 16:28:55
CMS:以获取最短回收停顿时间为目标的收集器,基于并发“标记清理”实现过程:1、初始标记:独占CPU,仅标记GCroots能直接关联的对象2、并发标记:可以和用户线程并行执行,标记所有可达对象3、重新标记:独占CPU(STW),对并发标记阶段用户线程运行产生的垃圾对象进行标记修正4、并发清理:可以和用户线程并行执行,清理垃圾优点:并发,低停顿缺点:1、对CPU非常敏感:在并发阶段虽然不会导致用户线
  • arick
  • 2021-06-14 00:04:21
分布式事务——消息最终一致性方案前言分布式事务一直是服务化拆分后一个绕不开的话题,原来在单体应用中执行的多个逻辑操作,现在被拆分成了多个服务之间的远程调用。虽然服务化为我们的系统带来了水平伸缩的能力,然而随之而来挑战就是分布式事务问题,多个服务之间使用自己单独维护的数据库,它们彼此之间不在同一个事务中,假如A执行成功了,B执行却失败了,而A的事务此时已经提交,无法回滚,那么最终就会导致两边数据不一
  • arick
  • 2019-09-24 22:10:32
是什么  作为Java开发人员,对于AQS(AbstractQueuedSynchronizer)抽象队列同步器都不会陌生,无论是面试别人,或者别别人面试的过程中,多多少少都会提到它。在J.U.C包下很多类的底层都是采用它来保证的多线程间同步的,本文就来讲讲问及度比较高的ReentrantLock的实现原理,主要是说下AQS的实现原理。为什么  有些人会说ReentrantLock代码在哪里摆着,
  • arick
  • 2020-04-13 02:04:05
RocketMQ是阿里开源的分布式消息中间件,在阿里云上有它的商业版本ONS,类似的开源消息中间件还有Kafka, ActiveMQ等。跟其它中间件相比,rocketMQ的特点是纯JAVA实现;集群和HA实现相对简单;跟kafka相比吞吐率稍低,但是在保持一定的吞吐情况下,在发生宕机和其它故障时消息丢失率更低。后面几篇文章会对照源码来讲RocketMQ的实现原理。基本概念核心概念Message代表
  • arick
  • 2020-03-16 18:09:42
2019 年 3 月,蚂蚁金服加入分布式事务 Seata 的社区共建中,并贡献其 TCC 模式。本期是 SOFAChannel 第四期,主题:分布式事务 Seata TCC 模式深度解析,本文根据觉生的直播整理。大家晚上好,我是 Seata Committer 觉生,来自蚂蚁金服数据中间件团队。今天的内容主要分为以下四个部分:Seata TCC 模式的原理解析;从 TCC 的业务模型与并发控制分享
  • admin
  • 2019-06-19 15:33:04
Rick ©2018