高并发 - AbstractQueuedSynchronizer

2018-02-27
阅读 4 分钟
2k
AbstractQueuedSynchronizer队列是CLH队列的变种,CLH队列等待采用自旋,AQS的队列等待采用LockSupport#park。

分布式 - RPC异步调用

2018-02-22
阅读 1 分钟
5.3k
实现负载均衡:连接池中建立了与一个RPC-server集群的连接,连接池在返回连接的时候,需要具备负载均衡策略。实现故障转移:连接池中建立了与一个RPC-server集群的连接,当连接池发现某一个机器的连接异常后,需要将这个机器的连接排除掉,返回正常的连接,在机器恢复后,再将连接加回来。实现发送超时:因为是同步阻塞...

Spring - Asynchronous Request

2018-02-13
阅读 4 分钟
2.4k
返回Callable和DeferredResult区别在于the return value of DeferredResult will also be produced from any thread, i.e. one that is not managed by Spring MVC.

分布式 - Jetty架构

2018-02-11
阅读 3 分钟
2.5k
For each accepted TCP connection, the Connector asks a ConnectionFactory to create a Connection object that handles the network traffic on that TCP connection, parsing and generating bytes for a specific protocol.

分布式 - MQ

2018-02-09
阅读 1 分钟
2k
就是订阅-发布模式,从而让上、下游系统的调用链解耦,即上游系统可以按自己的节奏生产,下游系统可以按自己的节奏消费,即削峰填谷,其他的都是扯淡。

分布式 - 跨库分页

2018-02-09
阅读 1 分钟
6.6k
缺点: (1)每个分库需要返回更多的数据,占用网络带宽;(2)需要服务层的计算;(3)这个算法随着页码的增大(即X的增大),性能平方级下降。

ElasticSearch - 文档存储

2018-02-08
阅读 2 分钟
2.8k
shard 确定shard的公式: {代码...} routing 默认是文档的 _id ,也可以设置成一个自定义的值。 因此要在创建索引的时候就确定好主分片的数量,并且永远不会改变这个数量,因为如果数量变化了,那么所有之前路由的值都会无效。 每个节点都知道集群中任一文档位置,所以可以直接将请求发到任意节点。当然,为了扩展负载,...

Redis - Redisson vs Jedis

2018-02-07
阅读 2 分钟
7.2k
Redisson requires Netty, the JCache API and Project Reactor as basic dependencies.

ElasticSearch - API Conventions

2018-02-06
阅读 2 分钟
1.5k
Limiting the number of indices that are searched reduces the load on the cluster and improves execution performance.

Spring Cloud - 技术栈

2018-02-05
阅读 2 分钟
7.1k
整理自杨波老师的总结 注册中心 Eureka Consul支持 KV 模型存储和灵活健康检查能力。 服务网关 Spring Cloud选择 Zuul 是最佳搭配,但异步性能不足(基于 Netty 的异步 Zuul 未推出正式版)。 基于 Nginx/OpenResty 的 API 网关 Kong 在 github 上比较火。因为采用 Nginx 内核,Kong 的异步性能较强,基于 lua 的插件比...

Spring Cloud - Ribbon

2018-01-26
阅读 3 分钟
1.8k
LoadBalancerAutoConfiguration.LoadBalancerInterceptorConfig::ribbonInterceptor返回了一个拦截器,作用主要是在客户端发起请求时进行拦截,进而实现客户端负载均衡功能。::restTemplateCustomizer会实例化RestTemplateCustomizer,其作用是设置::ribbonInterceptor返回的拦截器

MySql - 索引

2018-01-04
阅读 2 分钟
1.4k
举个例子: (张,张三,张三哥),如果索引长度取1的话,那么每一行的索引都是 张 这个字,完全没有区分度,结果这样三行完全是随机排的,因为索引都一样;如果长度取2,那么排序的时候至少前两个是排对了的,如果取3,区分度达到100%,已经提前排序;

高并发 - 基础

2017-07-04
阅读 5 分钟
2k
Future方式,任务的完成要主线程自己判断。如NIO,后台有多个任务在执行(非阻塞),主动循环查询(同步)多个任务的完成状态,只要有任何一个任务完成,就去处理它。这就是所谓的 “I/O 多路复用”。

Optional

2017-07-04
阅读 1 分钟
1.9k
三种构造方式: Optional.of(obj)、Optional.ofNullable(obj) 、Optional.empty()。 {代码...} 注:Optional.isPresent() 更应该被视为一个私有方法。

SLF4J

2017-07-03
阅读 2 分钟
2.2k
SLF4J(Simple logging Facade for Java)是一个日志框架的适配器。如果一个项目已经使用了log4j,而你加载了Apache Active MQ——它依赖于于另外一个日志类库logback,那么你就需要把logback也加载进来。但如果Apache Active MQ使用了SLF4J,你可以继续使用log4j,而无需加载和维护一个新的日志框架。或者添加XXX-over-slf4...

JDK动态代理

2017-07-03
阅读 8 分钟
1.7k
用户在调用被动态代理过的对象的方法时,调用的请求会被自动发给代理对象(实现了InvocationHandler接口)的invoke()方法,由invoke()方法来实现对请求的统一处理。

Thread

2017-07-03
阅读 4 分钟
1.7k
Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程,后台一些系统性的服务,比如垃圾回收线程、JIT线程) 。如果 User Thread已经全部退出运行了,只剩下Daemon Thread存在了,那么虚拟机也就退出了(不管Daemon Thread是否结束)。

反射(Reflection)

2017-07-03
阅读 7 分钟
4.2k
反射就是在运行时把 Java 类中的各种成分映射成相应的 Java 类(Method、Annotation等),可以动态得获取所有的属性以及动态调用任意一个方法。

对象

2017-07-03
阅读 6 分钟
1.2k
一个类的静态成员在类的实例gc后,不会销毁。 对象引用强度 强引用Strong Reference 就是指在代码之中普遍存在的,类似:“Object objectRef = new Obejct”。只要强引用还存在,永远不会被GC清理。 软引用SoftReference 当Jvm内存不足时(内存溢出之前)会被回收。SoftReference很适合用于实现缓存。 {代码...} 弱引用Wea...

JAVA基础

2017-07-03
阅读 3 分钟
1.2k
修饰符:private,仅只能在设置了该权限的类中访问,利用这个访问权限,表现出封装思想。default,默认的访问权限,也是可以省略的访问权限,它不仅能在设置了该权限的类中访问,也可以在同一包中的类或子类中访问。protected,除了具有default的访问权限外,还可以在不同包中所继承的子类访问。public,不仅可以是同一...