- 博客(14)
- 收藏
- 关注
原创 tomcat处理请求
tomcat处理请求组件Server|-- Service|–|-- Connector|–|--|-- Prototal|–|--|–|-- Endpoint|–|--|–|--|-- Acceptor|–|--|–|--|-- Executor|–|--|–|-- Processor|–|--|-- Mapper|–|--|-- CoyteAdapter|–|-- Co...
2019-12-26 11:29:57 328
原创 tomcat实现分布式session
tomcat实现分布式sessiontomcat-redis-session-manager使用Copy the following files into the TOMCAT_BASE/lib directory:tomcat-redis-session-manager-VERSION.jarjedis-2.5.2.jarcommons-pool2-2.2.jar配置 TOMCA...
2019-12-20 14:54:50 422
原创 tomcat session
tomcat session相关类org.apache.catalina.ManagerStandardManagerSessionIdGeneratorManager实现类Manager 用于管理 session.默认实现是 StandardManager,基类 ManagerBase.Manager ClusterManager (org.apache.catali...
2019-12-20 13:25:05 253
原创 tomcat启动流程
tomcat 启动启动流程- Bootstrap.main() - Bootstrap bootstrap = new Bootstrap(); 实例化Bootstrap实例 - bootstrap.init(); 1.设置catalinaHome和catalinaBase 2.初始化类加载器,实例化**ClassLoaders - setCatalinaHom...
2019-12-19 17:13:04 217
原创 tomcat lifecycle
LifeCycleLifeCycle 相关类LifeCycle 接口中的状态扭转注释,如下: * start() * ----------------------------- * | | * | init() | * NEW -»-- INITIALIZING ...
2019-12-19 12:06:48 185
原创 布隆过滤器
布隆过滤器what布隆过滤器(Bloom Filter).是一个很长的 二进制向量 和 一系列随机映射 函数.之所以叫 filter,是在缓存之前,把不存在的 key 给拦截掉.本质是 一个位数组: 位数组 就是 数组 的 每个元素 都只占用 1 bit,并且每个元素只能是 0 或 1.用于判断: 某个元素 一定不存在 或者 可能存在 于 一个集合中.布隆过滤器除了一个位数组,还有 K...
2019-12-18 16:02:12 214
原创 Redis实现分布式锁
Redis实现分布式锁要考虑的点互斥(独占,只能有一个客户端获取锁)不能死锁容错(只要大部分 redis 节点创建了这把锁就认为成功获取到锁)支持重入,超时获取锁等特性redis实现分布式锁1.使用set1.1.加锁SET key randomValue NX PX 30000NX: (not exists)表示只有 key 不存在的时候才会设置成功.(如果此时 redi...
2019-12-17 14:07:09 160
原创 Dubbo心跳
Dubbo心跳机制Dubbo 默认客户端和服务端都会发送心跳报文,用来保持 TCP 长连接状态.在客户端和服务端,Dubbo 都会开启一个线程 循环扫描 并 检测连接是否超时.在服务端发现超时则会主动关闭客户端连接.在客户端发现超时则会主动重新创建连接.默认心跳检测时间是 60 秒.原理provider 心跳默认是在 heartbeat(一分钟)内如果没有读消息或写消息,就会发送心跳...
2019-12-15 17:30:32 700
原创 zk实现分布式锁
zk实现分布式锁zk实现分布式锁的两种方式如果要自己通过 zookeeper 的原生 api 实现一个分布式独占锁的话,有两种方式:方式1: 创建临时节点,创建失败的client注册watcher所有需要获取锁的 client 都尝试到 zk 上创建一个临时节点.创建成功则表示成功获取锁;若创建失败,则对这个节点注册 watcher.若获得锁的 client 释放锁(自己 delete ...
2019-12-12 23:25:27 456
原创 hotspot8编译
hotspot8编译参照xiaguang的博客,帮我踩了很多坑,虽然编译过程中还是遇到了一点小问题.修改 ubuntu18 adp 源sudo vi /etc/apt/sources.list最好搜索一下最新的国内源deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multi...
2019-12-12 00:37:51 425
原创 Dubbo provider处理请求
服务端接收并响应请求流程provider处理请求流程- provider处理请求流程- ChannelEventRunnable.run()通道事件,判断RECEIVED事件进行处理 - DecodeHandler.received()解码处理器 - HeaderExchangeHandler.received()基于消息头的处理 - 1.He...
2019-12-05 22:26:59 337
原创 Dubbo服务引用
官网客户端服务引用客户端服务引用 demoDemoService demoService = (DemoService) context.getBean("demoService"); // get remote service proxydemoService.sayHello("world");dubbo 在客户端动态的生成了一个该 Interface 类型的代理类.在这个代理类中...
2019-12-04 07:56:41 171
原创 synchronized 与 Lock 性能比较
synchronized 与 Lock 性能比较JDK1.8D:\soft\Java\jdk1.8.0_172\bin\java.exe "-javaagent:D:\soft\JetBrains\IntelliJ IDEA 2018.1.6\lib\idea_rt.jar=57167:D:\soft\JetBrains\IntelliJ IDEA 2018.1.6\bin" -Dfile.e...
2019-12-03 08:00:38 717
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人