道阻且长,行则将至

Scroll Down

dubbo杂记

Dubbo的核心原理包括以下几点:服务注册和发现:Dubbo提供了一个注册中心,服务提供者在启动时向注册中心注册自己的服务,消费者在启动时从注册中心获取服务提供者列表,并缓存起来,后续调用时直接从缓存中获取。负载均衡:当服务提供者有多个实例时,Dubbo提供了多种负载均衡算法,包括随机、轮询、最少活

Java并发实现原理笔记-多线程基础

线程的优雅关闭stop()与destory()函数线程是一段运行中的代码,或者说是一个运行中的函数。既然是在运行中,就存在一个最基本的问题:运行到一半的线程能否强制杀死?答案是肯定不能。Java中,有stop()、destory()之类的函数,但这些函数都是官方明确不建议使用的。原因很简单,如果强制

Java并发编程实战笔记-基础构建模块

并发容器Java5.0提供了多种并发容器来改进同步容器性能。同步容器将所有对容器状态的访问都串行化,以实现它们的线程安全性。这种方法的代价是严重降低并发性,当多个线程竞争容器的锁时,吞吐量将严重降低。另一方面,并发容器是针对多个线程并发访问设计的。在Java5.0中增加了ConcurrentHash

Java并发编程实战笔记-对象的共享

概述要编写正确的并发操作,关键问题在于:在访问共享的可变状态时需要进行正确的管理。我们已经知道了同步代码块和同步方法可以确保以原子的方式执行操作,但一种常见的误解是,认为关键字synchronized只能用于实现原子性或者确定临界区。同步还有另一个重要的方面:内存可见性(Memory Visibil

软件架构设计杂记

缓冲IO和直接IO对于缓冲IO,一个读操作会有3次数据拷贝:读:磁盘->内核缓冲区->用户缓冲区->应用程序内存写:应用程序内存->用户缓冲区->内核缓冲区->磁盘对于直接IO,一个读操作,会有2次数据拷贝,一个写操作,有反向的2次数据拷贝:读:磁盘->内核

mysql运行原理笔记-基于规则的优化

外连接消除前文说过,内连接的驱动表和被驱动表的位置可以相互交换,而左外连接和右外连接的驱动表与被驱动表是固定的。这就导致了内连接可以通过优化表的连接顺序来降低整体的查询成本,而外连接却无法优化表的连接顺序。外连接和内连接的本质区别就是:对于外连接的驱动表的记录来说,如果无法在被驱动表中找到匹配ON子

Dubbo源码分析 - 远程通信模块总览

dubbo-remoting 模块提供了多种客户端和服务端通信的功能,该模块内部可以再划分为 Transport 传输层和 Exchange 信息交换层,Transport 层只负责单向消息传输,是对 Mina, Netty 等网络传输组件的抽象,它也可以扩展 UDP 传输,而 Exchange 层