- 博客(22)
- 收藏
- 关注
原创 ThreadPoolExecutor 源码深度分析
private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0)); //融合线程池状态+线程数(高四位表示线程状态) private static final int COUNT_BITS = Integer.SIZE - 3; //29 private static final int CAPACITY = (1 << COUNT_BITS) - 1; //1逻辑左移动29位后减1;用二进...
2021-01-28 00:07:40
160
原创 Dubbo源码分析 (八)之线程池EagerThreadPoolExecutor
EagerThreadPoolExecutor 为dubbo线程派发器Dipatcher中的一种创建线程池方式;见Dubbo源码分析 (五)之线程5种派发器Dispatcher 直接上代码分析: public class EagerThreadPoolExecutor extends ThreadPoolExecutor { /** * task count 记录正在执行+队列等待执行的任务 */ private final AtomicInteger sub..
2021-01-27 23:21:50
1023
2
原创 Dubbo源码分析 (五)之线程5种派发器Dispatcher
AllChannelHandler DirectDispatcher MessageOnlyDispatcher ExecutionDispatcher 待分析
2021-01-26 00:48:39
468
原创 Dubbo源码分析 (四)之服务调用原理
目录 1:获取对应接口服务的代理类 2:委托接口代理类查找可执行的Invoker(服务提供者) 1)调用demoService.sayHello 2)proxy0.sayHello //代理执行, 3)代理执行this.handler.invoke(this, methods[0], arrayOfObject); 4)MockClusterInvoker.invoke(new RpcInvocation(method, args)).recreate(); 5)容错集群执行 Failove.
2021-01-24 00:41:25
497
2
原创 Dubbo源码分析 (三)之服务暴露
基于启动日志分析Dubbo服务暴露主要几个大步骤 1:[22/01/21 11:22:54:054 CST] main INFO support.ClassPathXmlApplicationContext: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@18eed359: startup date [Fri Jan 22 23:22:54 CST 2021]; root of context
2021-01-23 00:28:10
922
原创 Dubbo源码分析 (一)之SPI 分析
1:Dubbo spi 较JAVA spi 优点 1.1 spi 全称Service Provider Interface 优点:第三方可通过实现接口,扩展自己的实现,将功能的实现逻辑控制权交由第三方配置,从而实现插件的可拔插。 1.2 java spi 举例: //接口 package com.alibaba.dubbo.common.spitest; public interface Car { void drive(); } //benz 实现 package com.alibab
2021-01-22 01:34:48
146
1
原创 Dubbo源码分析 (二)之服务引用
服务引用主流程详解: 1:启动(讲解融合spring,基于xml配置的启动),解析配置,校验 1.1 启动是spring 解析xml时,遇到duubo相关的标签时,使用dubbo 标签解析处理体系进行解析后生成对应的BeanDefination,随后交由spring容器实例化 涉及到文件和类如下: spring.schemas //dubbo 包的META-INFO目录下 spring.handles //dubbo 包的META-INFO目录下 dubbo.xsd //dubbo 包的META-I
2021-01-22 00:49:50
358
1
转载 NIO 之 ByteBuffer详解
原文地址:http://blog.csdn.net/u012345283/article/details/38357851 目录(?)[+] 缓冲区(Buffer) 缓冲区(Buffer)就是在内存中预留指定大小的存储空间用来对输入/输出(I/O)的数据作临时存储,这部分预留的内存空间就叫做缓冲区: 使用缓冲区有这么两个好处: 1、减少实际
2017-08-14 10:10:43
555
转载 jvm 类加载机制
http://blog.csdn.net/boyupeng/article/details/47951037 一、为什么要使用类加载器? Java语言里,类加载都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会给java应用程序提供高度的灵活性。例如: 1.编写一个面向接口的应用程序,可能等到运行时再指定其实现的子类; 2.用户可以自定义一个类加
2017-08-11 11:31:29
295
转载 自旋锁,排队自旋锁,clh 锁,mcs 锁
http://blog.csdn.net/fei33423/article/details/30316377
2017-08-04 10:34:32
442
转载 storm 源码分析
http://blog.csdn.net/xiaolang85/article/details/38404327
2017-08-03 14:06:13
287
原创 hadoop/hbase 环境搭建
hadoop安装 (1)创建hadoop用户组和用户 见(1.1,1.5) (2)配置hadoop用户信任关系 1)生成 非对称密钥 :ssh-keygen -t rsa // 一直回车 1)znode01,znode02,znode03 添加信任关系 (1)znode01 无密码访问znode02 (2)在znode02 :mkdir ~/.ssh/tmp ; touch
2017-07-20 22:36:06
1272
原创 AES加解密
package com.ai.runner.center.bmc.util; import java.io.UnsupportedEncodingException; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.secu
2017-07-09 22:30:15
262
原创 ELK搭建
11) 安装logstash (logstash-2.4.1) 解压即可 12)ES集群搭建(版本2.4.2) (12.1)znode01,znode02,znode03 中修改配置文件 elasticsearch.yaml 一下四个参数,其他默认即可 cluster.name: elasticsearch node.name: znode01 network
2017-06-21 23:17:44
279
原创 storm+kafka+hbase+mysql jar包
activation-1.1.jar aopalliance-1.0.jar apacheds-i18n-2.0.0-M15.jar apacheds-kerberos-codec-2.0.0-M15.jar api-asn1-api-1.0.0-M20.jar api-util-1.0.0-M20.jar asm-3.1.jar asm-4.0.jar avro-1.7.4.ja
2017-06-21 22:46:25
409
原创 Kafka 低级API 查看topic
package com.zsb.test.util; import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Tree
2017-06-13 22:37:51
2274
原创 storm 例子
package com.zsb.test.spout; import java.util.Arrays; import java.util.Map; import backtype.storm.spout.MultiScheme; import backtype.storm.spout.SchemeAsMultiScheme; import com.ai.baas.storm.util.Ba
2017-06-13 22:31:51
325
原创 Hbase 工具类
package com.zsb.test.util; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Ent
2017-06-13 22:27:24
340
转载 HTTP长连接和短连接
HTTP长连接和短连接 1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致。TCP有可靠,面向连接的特点。
2017-04-07 15:02:15
204
转载 Linux 中的五种 IO 模型
1 概念说明 在进行解释之前,首先要说明几个概念: 用户空间和内核空间 进程切换 进程的阻塞 文件描述符 缓存 IO 1.1 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设
2017-03-28 15:25:40
242
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人