
开源框架
文章平均质量分 88
开源框架
&一步
这个作者很懒,什么都没留下…
展开
-
zookeeper之watcher机制探索
简介 这篇文章主要谈论下zookeeper是如何实现watcher机制的,在此之前我们来搞清楚下zookeeper是如何通信的。 通信不是我们研究的重点,这里就不多说了,直接从应用层面谈watcher。 watcher机制 ...原创 2021-03-24 19:30:32 · 329 阅读 · 0 评论 -
seata-整体执行流程
简述 今天回顾下之前seata的内容,发现之前把seata拆解的有些零散,故想着做一个简单的整体执行流程的描述。 流程 如图为seata的几个核心模块的主要组件,流程上下面仔细来看 ,我们知道事务的源头就是TM,首先就是GlobalTransactionalInterceptor,前面细说过核心模块的处理,不多说这个,直接结合TransactionalTemplate来说整体流程。 public Object execute(TransactionalExecutor business..原创 2021-03-21 13:15:32 · 968 阅读 · 0 评论 -
sentinel探索
简介 微服务系列组件用来保证服务之前调用的稳定性,阿里提供了sentinel这个组件来解决这个问题。 借用下官网的图片。 可以看到,sentinel大体工作原理就是每个slot对资源的保护处理。 组件分析 ......原创 2021-02-21 17:14:15 · 394 阅读 · 2 评论 -
sentinel-滑动时间窗口算法探索
简介 其实sentinel核心原理并不难理解,就是在访问被保护资源时,根据实时的统计信息和预先定义的规则,检查是否可以访问。对我自己而言,可能统计的算法是比较关心的,都知道sentinel的统计算法是滑动时间窗口算法,这个算法一这么说就不接地气了,下面谈谈我们农村的说法。 探索 说这个算法主要要解决什么事呢?就是说在某个时间间隔要做点统计,比如说现在时间是16:06:21,320,我现在想知道16:06:21,000-16:06:21,320我的应用app通过了多少个请求,即当前的32...原创 2021-02-10 10:04:57 · 1143 阅读 · 0 评论 -
初识shardingsphere-jdbc
简介 趁着seata的热乎气,继续谈谈分布式数据的问题,今天谈谈对shardingsphere-jdbc的初识。 分析 先看看对shardingsphere-jdbc的整体认识,看看来自官网的一张图。 第一想法是什么?图画的不错,不不,好像是拿着Sharding-JDBC取代了jdbc,通过Sharding-JDBC来访问数据库,靠猜不行看看代码怎么搞的,这种入门程序就不多说了,直接到官网截一段使用的代码片段。 呀哈,确定过眼神好像见过这个图,没毛病老铁,...原创 2021-02-05 17:19:38 · 210 阅读 · 0 评论 -
seata-tc模块浅析
简介 终于说到了TC了,我们都知道整个seata的核心模块就RM、TM、TC三个模块,当然seata的核心包也就是core包其实是主要是做通信的,但是我觉得通信不是seata理念部分,netty的源码研究过了,通信这里不应该是太大问题,所以说完TC,seata也就说完了。 浅析 从哪开始说TC呢,我们知道TC相对TM和RM来说,主要是用来提供服务的,那就看看它能有啥服务,就从netty的hangdler说起。NettyRemotingServer实例化时会设置handler。 Ab...原创 2021-02-04 17:24:40 · 1180 阅读 · 0 评论 -
seata-rm模块浅析
简介 这篇文章继续谈谈RM、TC模块,之前说过TM,发现说过这个之后剩下的RM和TC也不会剩余太多东西了,就放在一起谈谈吧。从哪说起呢,还是结合springboot配置那说吧。 浅析 TM里谈过SeataAutoConfiguration,但是未提及SeataAutoDataSourceProxyCreator,这里就从它说起吧。 public SeataAutoDataSourceProxyCreator(boolean useJdkProxy, String[] exclude...原创 2021-02-04 15:16:50 · 859 阅读 · 0 评论 -
mybatis源码浅析
简介 一直以来都在使用mybatis,但却没有深入的了解下它,这么一款常用的持久层框架还是有必要翻翻源代码的。先上一张我自己初学mybatis的图。 当时一看这图,觉得mybatis全都懂了。。。,再把后来看过的mybatis资料图附上。 架构图 组件关系 看完这些图立马觉得懂了。。。 浅析 话不多说直接看代码,就看官网的入门篇代码吧。 DataSource dataSource = BlogDataSourceFactory.getBlogD...原创 2021-02-01 17:28:06 · 206 阅读 · 1 评论 -
seata-tm模块解析
简介 之前分析了seata-config模块,接下来继续分析下下seata的几个模块,core模块先不提了,很多模块都要用到,而且从其包结构来看大致能了解到,core模块主要是做通信和那3个数据对象(GlobalTransactionDo、BranchTransactionDo、LockDo)的存储的,虽说按模块肢解来谈有些不连续,但一起谈seata的TC、TM、RM,害怕吐血,还是一个个谈吧。先说说TM吧。 浅析 话不多说直接上代码,在客户端编程时就是引入jar包,然后写上注解就完了...原创 2021-01-25 11:07:46 · 1230 阅读 · 0 评论 -
seata-config模块解析
简介 分布式事务解决方案,找个成熟的方案看看,得谈谈seata。看看其源码,主要模块有core、server、tm、rm、tcc、config、discovery。。。,还挺多的,没办法要搞懂这个技术就得一个个看看,其实是看server的时候对config有了疑问,因此才转而想把config优先弄懂。 浅析 之前说到看server的时候有了疑问,那就是为什么分布式配置时nacos要用那个脚本(nacos-config.sh)把单值一个个配置项加载进nacos,而不是直接在nacos搞一...原创 2021-01-21 17:30:14 · 1136 阅读 · 0 评论 -
初识Dubbo-1
今天认识下Dubbo,按套路来先看看为啥整个这个技术,看看官网,官网说背景里说分布式架构RPC是关键,然后在需求里说了一大堆,总结下来就是说需要注册中心、监控中心、调度中心,用过Eureka、Nacos这些注册中心的都知道,注册中心就是RPC实现的一种形式,通过注册中心解决分布式服务之间的远程调用,那啥是RPC(远程过程调用),对于java来说,RPC就是我本地没有这个方法的实现但是我还想调用这个方法,目的搞清楚了,接下来看看怎么跑起来,为了读源码方便,直接不基于Spring编写。 <dep...原创 2020-05-11 11:59:21 · 170 阅读 · 0 评论 -
初识线程池-2
继续上一篇文章,这篇内容主要是为学习netty做铺垫,上篇主要谈Executor框架和它的线程池ThreadPoolExecutor,那么现在我们谈谈Netty的线程池实现,Netty的线程池是NioEventLoopGroup,现在我们看看怎么搞个这线程池帮我们执行任务,那先看看怎么创建一个NioEventLoopGroup,查看Api有无参构造,那还说啥直接啥都别管先new一个,跑起来再说。 NioEventLoopGroup group = new NioEventLoopGro...原创 2020-05-09 16:39:56 · 200 阅读 · 0 评论