自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

农夫三拳

balabala

  • 博客(188)
  • 资源 (4)
  • 收藏
  • 关注

原创 kafka如何管理Tcp连接

xxx。

2025-01-13 15:55:10 122

原创 kafka 重平衡机制

xxx。

2025-01-13 15:54:27 86

原创 kafka offset机制

xxxx。

2025-01-13 15:53:26 88

原创 mysql RR、RC隔离级别实现原理

采用乐观锁实现,它通过对不同事务生成不同的快照版本,通过UNDO版本链进行管理并且在MVCC里面,规定了高版本能够看到低版本的事务变更,低版本看不到高版本的事务变更,从而实现了不同事务之间的数据隔离。是一种特殊的表级别锁。简言之,如果一个事务正在往表中插入记录,所有其他事务的插入必须等待,以便第一个事务插入的行,是连续的主键值。写锁,给事务加上排它锁,该事务可以执行任意读写操作,其他事务无法获取该排它锁,也不能加其他类型的锁。保证并发场景下,使用RC高过RR,RC的锁的粒度是只有一行,RR是多行的锁。

2025-01-07 21:28:51 1410

原创 mysql优化器如何选择索引

XXX。

2025-01-07 19:53:04 109

原创 查询mysql中sql语句的耗时

showxxxx。

2025-01-07 19:46:21 118

原创 char和varchar的区别

xxxx。

2025-01-07 19:25:05 119

原创 spring @Profile

xxx。

2025-01-07 18:02:24 86

原创 jvm方法加载过程

xxxx。

2025-01-05 22:54:04 85

原创 CompletableFuture

2、批量执行异步任务。

2024-12-27 17:20:32 184

原创 CopyOnWriteArrayList和CopyOnWriteArraySet

XXXX。

2024-12-25 18:40:49 112

原创 Log4j日志源码分析

XXXX。

2024-12-16 15:43:30 133

原创 常用代码工具

【代码】常用代码工具。

2024-12-16 15:12:14 110

原创 dubbo消费方调用服务流程

dubbo解析ReferenceConfig,经过dubbo构建代理、Invoker链路,注册消费者,并且订阅注册中心提供方发布的服务,并且经由cluster集群扩展、路由过滤、负载均衡到Protocol层、exchange层、Transport层完成netty服务消费。无论服务发布还是服务订阅,都是通过dubbo的十层架构完成的,每一层都是通过SPI机制或者adative机制进行扩展实现的,Invoker责任链路能够把每一层的的责任划分开来,结构清晰。

2024-06-06 16:07:12 455

原创 dubbo订阅服务

远程引用:创建 invoker 的核心逻辑是在 RegistryProtocol 的 doCreateInvoker 方法中完成的。本地引用:本地引用环节中使用的 invoker 对象是从 InjvmProtocol 中 exporterMap 获取到的。通过解析 @DubboReference 注解来标识需要订阅的服务,并且解析成ReferenceConfig配置类。ReferenceConfig 的 get 方法会先后进行本地引用与远程引用的两大主干流程。2、订阅提供方,可以实时感知到提供方的变化。

2024-06-06 16:06:25 359

原创 dubbo发布服务

通过扫描指定包路径下含有 @DubboService 注解的 Bean 定义,把扫描出来的 Bean 定义属性,全部转移至新创建的 ServiceBean 类型的 Bean 定义中,为后续导出做准备。主要有两块,一块是 injvm 协议的本地导出,一块是暴露协议的远程导出,远程导出与本地导出有着实质性的区别,远程导出会使用协议端口,通过 Netty 绑定来提供端口服务。远程导出的一个分支,会将提供方的服务接口信息,通过 Curator 客户端,写到 Zookeeper 注册中心服务端去。

2024-06-06 16:05:37 516

原创 Dubbo动态服务下线

1、Dubbo服务消费端会使用Zookeeper里面的Watch来针对Zookeeper Server端的/providers节点注册监听,3、Dubbo Client端收到事件以后,就会把本地缓存的这个服务地址删除,这样后续就不会把请求发送到失败的节点上,完成服务下线感知。2、一旦这个节点下的子节点发生变化,Zookeeper Server就会发送一个事件通知Dubbo Client端。dubbo是依赖Zookeeper里面提供的Watch机制来实现的。

2024-06-06 16:04:08 549

原创 RocketMq Broker源码

NameServer 在收到来自 Broker 的心跳消息后,更新 BrokerLiveInfo 中的 lastUpdateTimestamp,如果 NameServer 长时间未收到 Broker 的心跳信息,NameServer 就会将其移除。brokerAddrTable:维护了 Broker Name 和 Broker 元信息的映射关系,Broker 通常以 Master-Slave 架构部署,BrokerData 记录了同一个 Broker Name 下所有节点的地址信息。

2024-06-04 17:03:32 284

原创 RocketMQ consumer DefaultLitePullConsumerImpl 拉模式

推模式做了封装,Broker启动时会将PullRequest封装起来,通过callback设计模式让consumer自行拉取消息,表面看起来时推消息,实际还是consumer自行拉取。4、长轮询优化:使用延时Task处理PullRequest,每隔5秒拉取消息,当处理大批量消息,延迟任务变更为10秒。1、从阻塞队列里面消费PullRequest,PullRequest调用netty client做出Response。拉模式是由consumer主动去拉取消息,自行从阻塞队列里面拉取PullRequest。

2024-06-04 15:23:19 504

原创 Redisson用法

【代码】Redisson用法。

2024-05-31 17:51:11 140

原创 Tomcat启动过程

从配置文件读取信息,并且将pojo,StandardServer、StandardService、StandardEngine、StandardHost、Connector类名加载到集合中。将StandardServer、StandardService、StandardEngine、StandardHost、Connector类实例化。发生在org.apache.catalina.startup.Catalina#load()2、容器启动,启用StandardContext维持Socket连接。

2024-05-29 14:44:18 307

原创 order by工作过程和优化

order by 是由优化器决定的,如果优化器认为filesort速度快,那么走filesort排序,如果优化器认为索引速度快,那么走索引排序。

2024-05-28 15:26:37 209

原创 优化Using filesort

xxx。

2024-05-28 00:16:18 164

原创 mysql innodb为什么选择B+树

mysql底层采用B+树的数据结构,页索引16KB,全部存储到B+树的非叶子节点上,16KB全是索引数据,相对于B树存储键值对而言,能够存储更多的数据。并且由于索引的关系,树的层高就更矮,而底层的双向链表,对于范围索引,排序查找、去重更有优势。

2024-05-28 00:12:33 143

原创 BeanFactory、FactroyBean、ApplicationContext

定制的工厂Bean,可以通过抽象工厂方式创建的bean,不纳入spring的生命周期、依赖、注入特性,相当于spring给第三方的一个扩展,比如dubbo的@DubboReference,ReferenceBean交给dubbo ioc自己管理。实现BeanFactory接口,全局上下文,非spring自动注入但加入spring管理的bean,刷新生命周期的时候调用的工厂直接就是ApplicationContext,通过ApplicationContext一样可以刷新容器。

2024-05-26 18:03:49 241

原创 spring自定义初始化的加载顺序

构造函数>@PostConstruct > afterPropertiesSet > init-method。

2024-05-26 17:41:15 537

原创 @Service 、@Component、@Repository

xxxx。

2024-05-26 17:37:27 384

原创 spring refresh

负责spring ioc、proxy 、aop 、init、event的整合。

2024-05-26 13:38:24 415

原创 spring注入方式

2024-05-25 14:38:23 358

原创 创建线程的四种方式

2024-05-23 22:54:59 167

原创 守护线程

2024-05-23 22:54:10 143

原创 线程的状态

2024-05-23 22:53:09 147

原创 二叉树、红黑树、二叉平衡树

红黑树优化了平衡二叉树需要频繁自旋的场景,插入最多需要两次旋转,删除最多需要三次旋转,不需要顾忌左右子树的高度差1的情况,权衡下,红黑树插入和删除的效率其实更高。缺点:为了平衡左子树和右子树的高度相差不超过1,插入和删除节点需要频繁左旋和右旋,消耗性能。左旋:逆时针旋转两个节点,让一个节点被其右子节点取代,而该节点成为右子节点的左子节点。右旋:顺时针旋转两个节点,让一个节点被其左子节点取代,而该节点成为左子节点的右子节点。特点:左子树和右子树需要通过自旋方式平衡两边树的高低,可以避免链表的出现。

2024-05-23 15:04:37 262

原创 jvm内存模型

2024-05-19 14:38:56 126

原创 jvm类加载过程

2024-05-19 14:36:59 123

原创 Elasticsearch聚合模型

占坑。

2024-04-23 16:47:20 359 2

原创 Elasticsearch分布式搜索

占坑。

2024-04-23 16:46:36 370 1

原创 Elasticsearch搜索模型

占坑。

2024-04-23 16:45:57 437 2

原创 dubbo流量控制

占坑。

2024-04-23 16:42:46 332

原创 dubbo异步

占坑。

2024-04-23 16:38:14 273

Tomcat安装包

Tomcat7.0安装包+源码包

2017-05-22

mysql-connector

mysql连接池

2017-05-22

mybiatis代码生成

mybitas代码自动生成工具

2017-05-22

svn-server-client

svn的客户端和服务端

2017-05-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除