logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

nacos解析-raft算法日志复制原理

本文基于nacos-2.0.3版本nacos在集群模式下,使用内置数据库时,当发布新的配置或者更新配置时,nacos使用raft算法将配置分发给集群中的其他机器。本文将详细分析分发原理。首先说明如何使nacos在集群模式使用内置数据库:虚拟机启动参数配置为:-Dnacos.standalone=false-DembeddedStorage=true...

dubbo解析-消费端启动检查(check属性)

本文基于dubbo 2.7.5版本代码dubbo的客户端在启动的时候,默认检查是否有可用的远程服务,如果没有dubbo报如下异常:java.lang.IllegalStateException: Failed to check the status of the service XXX. Noprovider available for the service test.Process from

#spring#java#spring boot +1
Seata解析-TM、RM、TC交互流程梳理

本文基于seata 0.7.1版本seata涉及到三个角色之间的交互,本文通过流程图将AT模式下的基本交互流程梳理一下,为我们以后的解析打下基础。假设有三个微服务,分别是服务A、B、C,其中服务A中调用了服务B和服务C,TM、TC、RM三者之间的交互流程如下图:1、服务A启动时,GlobalTransactionScanner会对有@GlobalTransaction注解的方法进行AOP增强,并生

#java#dubbo#数据库
sentinel运行原理详解

本文基于sentinel-1.8.0版本DegradeSlot:服务降级AuthoritySlot:黑白名单校验,按照字符串匹配,比较简单ClusterBuilderSlot:构建ClusterNode对象,该对象为后面统计QPS、线程数、异常、响应时间等使用。SystemSlot:校验QPS、线程数、系统负载、CPU,按照窗口统计StatisticSlot:统计处理过的请求数和线程数FlowSl

#java#sentinel#分布式
nacos解析-详解配置自动刷新原理

本文基于nacos-2.0.3版本当客户端设置autoRefreshed = true时,比如:@NacosValue(value = "${XXX:XX}", autoRefreshed = true)或者@NacosPropertySource(dataId = "XXX", autoRefreshed = true)服务端配置值发生变化,客户端的属性值也会跟着发生变化。这是如何做到的?本文将

#java
skywalking解析-如何在idea中调试skywalking agent

当我从github上下载下来skywalking agent的代码后,面临的第一个问题就是如何调试。因为skywalking agent的运行模式与普通程序运行方式不一样,它是通过java agent方式运行的。本文接下来介绍如何在本地调试skywalking agent源码。

#skywalking#java
RocketMQ安装部署详解

文章目录一、RocketMQ简介二、消息队列优点三、安装步骤1、环境要求2、下载3、Linux环境安装4、Windows环境安装5、程序访问一、RocketMQ简介RocektMQ是阿里巴巴在2012年开源的一个纯java、分布式消息中间件。RocektMQ具有低延迟、高性能、可靠性、万亿级别的容量和灵活的可伸缩性。2016年阿里巴巴将RocketMQ捐赠给Apache,2017年9月Rocket

Java-网上关于MappedByteBuffer的一些传言

网络上介绍MappedByteBuffer的文章有很多,发现其中一些文章内容有出入,我想在本文中通过一下实验验证一下哪些是对的。本文使用的是JDK8。内存映射文件原理MappedByteBuffer简介关于内存释放问题MappedByteBuffer是一个抽象类,它有两个子类:DirectByteBuffer和DirectByteBufferR。下面来看一下什么时候释放内存空间。通过内存映射,减少

#java
Mybatis解析-注解MapperScan详解

本文基于mybatis-spring 1.3.1和mybatis 3.4.4版本注解MapperScan是mybatis的核心注解,它可以设置Mapper文件的扫描路径。本文将详细介绍该注解以及各个属性作用。文章目录一、如何使用注解MapperScan二、MapperScan各个属性介绍三、MapperScannerRegistrar一、如何使用注解MapperScan@MapperScan放在s

#mybatis#spring boot#数据库 +1
论Redis 7种加锁方式的优缺点

本文参考文章《论Redis分布式锁的正确使用姿势》总结一下文中提到的7种加锁方式的优缺点。方案一:SETNX + EXPIRE优点:实现简单,通过修改过期时间可以支持锁重入,锁超时自动释放;缺点:因为上述命令是分两步执行,如果第二步执行失败,将造成无法解锁。方案二:SETNX + value值是(系统时间+过期时间)优点:加锁是原子操作,解决了方案一的缺点。缺点:实现复杂,每个机器的时间必须保持同

#redis
到底了