首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
Elijah同学
掘友等级
首席摸鱼官
|
索马里驻西湖摸鱼大使馆
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
8
文章 8
沸点 0
赞
8
返回
|
搜索文章
最新
热门
RocketMQ原理、源码分析及实践
这篇其实是主要根据rocketmq源码的readme文档,把主要流程和关键点梳理一下,必要的地方会分析下源码,因为文档里写的不如直接看源码来的清楚。rocketmq官方文档地址:https://github.com/apache/rocketmq/tree/master/doc…
记录一次 CPU飙高排查过程
早上阿里云报警,上服务器top看了下,一个java程序的进程cpu占用到了126%。 先看一下到底是哪个线程cpu占用过高,一般cpu过高可能是线程过多或者单线程中有死循环导致cpu一直占用。 用arthas看了一下,线程数量和堆栈和堆外内存使用率正常,可以排除线程太多导致的问…
Mybatis缓存分析
一级缓存是指 SqlSession 级别的缓存 原理:使用的数据结构是一个 map,如果两次中间出现 commit 操作 (修改、添加、删除),本 sqlsession 中的一级缓存区域全部清空,默认情况下一级缓存是开启的,而且是不能关闭的。 上一篇文章分析了mybatis的源…
Mybatis原理分析及插件实现
demo是根据官网提供的demo写的,就是加载配置文件初始化,然后获取mapper装载模版sql,然后调用执行。 mybatis的原理其实并不难,麻烦的里面用了很多设计模式,对JDBC进行了各种能力增强,实际上就是对JDBC的二次封装。 首先读取配置文件的文件流,然后构建sql…
Dubbo基础原理
在export()方法中首先会装载ApplicationConfig等等各种基础配置,其实就是装载yaml文件里配置的属性,将这些属性设置到对应的config对象中。 接下来会开始暴露服务,因为Dubbo是支持多中心同时注册的,所以将会循环注册到多个注册中心,也可以暴露多种协议…
从头盘一盘多路复用(3)Netty
一句话说明Netty是个什么东西:Netty就是把java 的NIO重构包装了。 因为javaNIO的种种bug以及不易用,其实Netty把一些常用的的东西包装简化了,实际内部也是调用的JavaNio的东西,比如用的也是java的selector去对接epoll,来轮训就绪的s…
从头盘一盘多路复用(2)JavaNIO发展
上一篇说了linx的网络模型,recv、select、epoll的原理,这次说一下java是怎么应对多连接的。其实根本的一点是,在服务端实现的所谓的BIO,NIO这些,其实是java对操作系统处理的封装,java也是直接调用native方法,通过c语言调用操作系统内核,来实现请…
从头盘一盘多路复用(1)epoll
Redis、Nginx、Tomcat、JavaNio、Netty无一都用到了多路复用提高性能,然而这一部分涉及到操作系统网卡等内核或者硬件的知识,导致我的理解一直是云里雾里的,所以我就死磕一定要弄明白这个东西,不然不是没办法实现我买房收租家里蹲的梦想了!今儿就先从根儿盘一盘se…
Zookeeper 分布式锁源码分析及实践
1. 应用场景 分布式微服务等架构方式,可以简单理解为单机多线程的延伸。在单机多线程下,我们会用到synchronized、ReentrantLock等锁,来保证同一时刻,只能有一个线程修改共享变量或者执行临界区代码。这些Java锁,在分布式环境下就失去了作用,所以我们需要分布…
Zookeeper Zab协议
1. Zab协议总流程 当我们运行Quorum模式的时候,实际上建立了一个Quorum的网络通信,在leader选举结束后,leader节点会和所有的follower节点建立一个单独的网络通信,通过socket新建一个监听端口来和所有follower进行zab协议的流程。 za…
下一页
个人成就
文章被点赞
32
文章被阅读
27,094
掘力值
613
关注了
15
关注者
9
收藏集
11
关注标签
96
加入于
2019-08-09