自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Silence的博客

好记性不如烂笔头

  • 博客(32)
  • 资源 (2)
  • 收藏
  • 关注

原创 Spring拓展机制之BeanFactoryPostProcessor

BeanFactoryPostProcessor的作用:熟知BeanPostProcessor的知道,BeanPostProcessor是bean的后置处理器,用于在bean的生命周期来拓展对bean进行自定义处理。按照BeanPostProcessor的理解,BeanFactoryPostProcessor则是BeanFactory的后置处理器,用于对BeanFactory进行自定义处理,例如自定义注册bean,以及修改BeanFactory中注册的bean定义。

2020-11-07 05:27:11 599

原创 Dubbo的心跳机制

title: Dubbo的心跳机制author: Silencetags:Dubbocategories:Dubbodate: 2020-05-17 11:28:001. 心跳机制在网络传输中,如何确保客户端和服务端之间通道连接是否可用是一个很重要的问题,比如客户端突然崩溃,服务器端可能在几天内都维护着一个无用的 TCP 连接。心跳机制能有效的保证连接的可用性。TCP本身...

2020-11-07 05:27:11 2656

原创 Spring的重要拓展点BeanPostProcessor

BeanPostProcessor的作用bean的后置处理器,spring ioc容器管理bean最重要的一个拓展机制,开发者通过向BeanFactory中添加自定义的Be...

2020-11-07 05:27:11 680

原创 一图读懂Netty的Reactor线程模型

1. 服务端启动后 Boss NioEventLoop会一直处于轮训过程中,当客户端请求服务端,其持有的Selector会检测到accept事件(图中Boss NioEventLoop圆环中的第一个过程select)2. Boss NioEventLoop检测到accept事件后,接着进入第二个过程:process selected keys。3. Boss NioEventLoop执行的process selected key逻辑会经过服务端channelPipeline中的handler进行

2020-08-29 13:48:48 334

原创 RocketMQ保证消息不丢失的手段

消息整体处理过程这里我们将消息的整体处理阶段分为3个阶段进行分析:Producer发送消息阶段。Broker处理消息阶段。Consumer消费消息阶段。Producer发送消息阶段发送消息阶段涉及到Producer到broker的网络通信,因此丢失消息的几率一定会有,那RocketMQ在此阶段用了哪些手段保证消息不丢失了(或者说降低丢失的可能性)。手段一:提供SYNC的发送消息方式,等待broker处理结果。RocketMQ提供了3种发送消息方式,分别是: //同步

2020-07-05 09:05:13 1953 1

原创 Spring-Kafka消费者端源码分析

本文按照源码分析三部曲:核心类->核心流程->核心逻辑,对spring-kafka消费端的源码实现进行分析。

2021-12-26 21:15:31 3568

原创 RocketMQ 延迟消息的使用与分析

文章目录延迟消息的使用实现原理源码分析入口:ScheduleMessageService.start两类TimeTask的作用1、DeliverDelayedMessageTimerTask2、ScheduleMessageService.this.persist()总结延迟消息的使用使用比较简单,指定message的DelayTimeLevel即可。示例代码如下: Message msg = new Message("DelayTopicTest","TagA",("Hello RocketM

2020-11-21 17:15:32 1278 1

原创 Dubbo源码分析之五:服务端响应客户端请求过程

1. 在服务端接收客户端响应时,首先会经过解码器NettyCodecAdapter.InternalDecoder,然后经过NettyServerHandler.channelRead进行请求处理。2. 服务端接收请求处理之后,接着响应结果客户端,经过NettyServerHandler.write进行结果响应,然后经过NettyCodecAdapter.InternalEncoder编码器进行编码处理,最终响应给客户端。

2020-11-21 16:29:23 627

原创 Dubbo源码分析之一:前置知识

文章目录学习思路前置知识准备SPISPI中的AOP实现spi中的自适应拓展机制扩展点自动激活配置类说明应用配置相关服务提供相关服务消费相关子信息配置关键接口职责说明ExtensionLoaderProxyInvokerInvocationProxyFactoryProtocolDirectoryClusterFilterURL学习思路从github导出官方源码,同时通过官方提供的demo进行分析,如果对部分细节想深入理解某功能或者某个类,可以找项目内的单元测试进行调试学习。另外,dubbo源码体系本身

2020-11-21 16:22:04 270

原创 将博客搬至CSDN

将博客搬至CSDN

2020-11-10 04:47:16 85

原创 关于spring-data操作redis报invalid-bulk-length的错误分析

应用每隔一段时间频繁会收到invalid bulk length错误告警,并且每次报错应用操作的key都不一样,并且本身命令没有任何问题

2020-11-07 05:27:11 5666 2

原创 RocketMQ之NameServer管理路由分析

title: RocketMQ之NameServer管理路由分析author: Silencetags:消息中间件RocketMQcategories:消息中间件date: 2019-12-30 12:48:00启动过程NameServer的本质其实就是用来管理topic的路由信息,本文重点围绕路由信息是如何管理的来进行分析。我们这里先简单分析下NameServer的启...

2020-11-07 05:27:11 475

原创 Spring-Boot启动过程分析

title: Spring Boot启动过程分析author: Silencetags:Spring-Boot''''categories:Spring-Bootdate: 2020-10-07 14:07:00构造SpringApplication public SpringApplication(ResourceLoader resou...

2020-11-07 05:27:11 534

原创 RocketMQ之Producer消息发送过程分析

目录启动过程检查配置创建MQClientInstance实例注册当前producer启动MQClientInstance发送消息过程消息校验从nameserver查找路由信息TopicPublishInfoTopicRouteData选择具体的队列不启用broker故障延迟启用broker故障延迟发送消息启动过程Producer的启动过程本质就是围绕MQClientInstance的构建过程。入口:DefaultMQProducerI...

2020-11-07 05:27:11 989

原创 Spring使用技巧归纳

title: Spring boot使用技巧归纳author: Silencedate: 2018-09-28 13:50:38tags:事务控制技巧在Transactional标注的方法里面处理一段事务逻辑提交之后,再处理非事务的逻辑 @Transactional(rollbackFor = Exception.class) @Override public...

2020-11-07 05:27:11 261

原创 RocketMQ-Broker端处理消息过程分析

消息投递到broker之后,会先存到broker的堆内存,同时再写到堆外内存,最后根据刷盘策略是否立即将堆外内存的消息刷到磁盘。

2020-11-07 05:27:11 749

原创 深入理解java虚拟机一:java内存区域与内存溢出

title: jvm学习一:java内存区域与内存溢出tags:javajvmcategories:jvmauthor: Silencedate: 2018-06-07 17:28:001、运行时数据区域1.1 结构图:1.2 各区域详细介绍1.2.1 程序计数器较小的内存空间,它可以看做是当前线程所执行的字节码的行号指示器。线程私有的内存区域。唯一一个区域没有任何...

2020-11-07 05:27:11 82

原创 Spring-BeanFactory后置处理器之ConfigurationClassPostProcessor

本文能帮你解答的问题ConfigurationClassPostProcessor的作用是什么?@Configuration、@Component、@ComponentScan、@ComponentScans、@Bean、@Import等注解是如何完成bean注册的?@Conditional注解如何控制配置类是否需要解析?@Configuration的bean为什么要增强?增强了什么逻辑?

2020-11-07 05:27:11 302

原创 Dubbo源码分析之四:客户端服务调用过程

1、进入invoke调用链2、发送请求3、接收服务端响应4、处理响应结果

2020-11-07 05:27:11 1014

原创 Spring的Bean后置处理器之AutowiredAnnotationBeanPostProcessor

本文能帮你解答的问题@Autowired注解是如何完成属性自动注入的?如何改变bean实例化构造函数的选择?@Aut...

2020-11-07 05:27:11 1229

原创 那些年,我们踩过的技术坑汇总

title: 那些年,我们踩过的技术坑汇总author: Silencetags:技术bu gcategories:其他date: 2018-06-09 16:24:001、GET请求URL带中文参数乱码问题。我们开发中可能会遇到这样的问题:例如和其他系统对接,其他系统会通过http的get请求同时带一些参数请求你的接口地址(类似于支付宝回调等)。如:http://xxx.c...

2020-11-07 05:27:11 216

原创 程序猿应该了解的密码技术

title: 程序猿都应该读的密码学知识author: Silencetags:密码学Https比特币categories:密码学date: 2018-07-06 19:16:001. 开头可能有些人对密码学有个误区,认为密码学就是为了解决机密性的问题,就像很多人会把MD5当成一种加密算法去使用。之所以存在这样的误区,主要问题在于对密码学没有一个整体的认识,对密码学的了解...

2020-11-07 05:27:11 831

原创 关于安卓端okhttp框架请求后端服务丢失Authorization请求头的问题

title: 关于安卓端okhttp框架请求后端服务丢失Authorization请求头的问题author: Silencetags:javacategories: []date: 2019-04-19 19:41:00问题描述这两天写接口给iOS和Android端联调,客户端在请求头写了一个Authorization传给后端,后端需要拿到Authorization换取登录的用...

2020-11-07 05:27:11 1693 4

原创 RocketMQ 消费消息过程分析

1、为什么说DefaultMQPushConsumer本质还是pull?既然是pull,那rocketmq是怎么保证消息消费的实时性?2、消费消息是否存在超时问题?超时了会重试吗?3、什么情况下代表消费消息失败?怎么样又代表消费消息成功?4、为什么说consumer端消费消息要保证幂等?什么情况下会重复消费?5、消费消息失败了是怎么实现重试的?

2020-11-07 05:27:11 1003

原创 Dubbo源码分析之三:服务引用

在Dubbo中,有两种方式引用服务,第一种是使用服务直连的方式引用服务,第二种方式是基于注册中心进行引用。本文重点分析基于注册中心进行服务引用的过程。

2020-11-07 05:27:11 422

原创 RocketMQ 事务消息使用与分析

解决本地事务执行与消息发送的原子性问题。即解决Producer执行业务逻辑成功之后投递消息可能失败的场景。

2020-11-07 05:27:11 1229 4

原创 Spring-Bean后置处理器之CommonAnnotationBeanPostProcessor

本文能帮你解答的问题@PostConstruct和@PreDestroy注解标注的方法是在什么阶段调用的?@Resource是如何完成属性自动注入的?@Resource相比@Autowired查找候选者的过程差异是什么?

2020-11-07 05:27:11 994

原创 Dubbo源码分析之二:服务暴露

所谓服务暴露,是指生产者Provider一侧提供的服务要能暴露出来,以便能被消费者发现服务并调用到。只有读明白了服务的暴露过程,我们才能为后面读懂服务端如果接收响应作准备。例如本地有一个ser...

2020-11-07 05:27:11 310

原创 Spring-Bean后置处理器之AnnotationAwareAspectJAutoProxyCreator

本文能帮你解答的问题AnnotationAwareAspectJAutoProxyCreator后置器的作用是什么?Spring AOP自动增强bean是如何实现的。如何在spring上下文添加AnnotationAwareAspectJAutoProxyCreator?如何利用ProxyFactory硬编码实现一个bean的增强?AnnotationAwareAspectJAutoProxyCreator是在bean的生命周期什么阶段完成bean的增强?

2020-11-07 05:27:11 429 1

原创 RocketMQ-延迟消息的使用与原理分析

title: RocketMQ 延迟消息的使用与原理分析author: Silencetags:RocketMQ消息中间件categories:消息中间件date: 2018-12-16 19:09:00延迟消息的使用使用比较简单,指定message的DelayTimeLevel即可。示例代码如下: Message msg = new Message("De...

2020-11-07 05:27:11 1025

原创 RocketMQ Reliablity

title: RocketMQ保证消息不丢失的手段author: Silencetags:Rocket消息中间件categories:消息中间件date: 2019-05-04 01:12:00消息整体处理过程这里我们将消息的整体处理阶段分为3个阶段进行分析:Producer发送消息阶段。Broker处理消息阶段。Consumer消费消息阶段。Pr...

2020-11-07 05:27:11 178

原创 Dubbo源码学习之一:前置准备

title: Dubbo源码分析之一:前置准备author: Silencetags:Dubbocategories:Dubbodate: 2020-04-05 21:08:00学习思路从github导出官方源码,同时通过官方提供的demo进行分析,如果对部分细节想深入理解某功能或者某个类,可以找项目内的单元测试进行调试学习。另外,dubbo源码体系本身很大,为了学习DUB...

2020-11-07 05:27:11 158

Logback中文文档-实用

Logback中文文档 实用 api 带目录 覆盖内容全,深入学习logback首选

2018-04-04

实战Java高并发程序设计-高清

实战Java高并发程序设计高清版 作者: 葛一鸣 / 郭超 《实战Java高并发程序设计》内容丰富,实例典型,实用性强,适合有一定Java基础的技术开发人员阅读。

2018-04-04

空空如也

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

TA关注的人

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