- 博客(21)
- 收藏
- 关注
原创 RocketMQ网络通讯——NettyRemotingClient
的类,见名知意,```SemaphoreReleaseOnlyOnce``是一个只会被释放一次的信号量,避免多线程或者潜在逻辑错误情况下被释放多次。Netty channel接收到消息后处理核心逻辑在。主要根据消息类型(请求/响应)进行不同的处理逻辑。值得一提的是,RocketMQ依据jdk自带。
2024-06-26 21:34:27
352
原创 RocketMQ网络通信——NettyRemotingServer
使用线程池来调度任务,可以并行多个任务,提供了更多的配置,灵活性扩展性更强,适用于复杂的任务调度(个人认为ScheduledExecutorService完全可以代替TimerTask)基于单线程的时间轮算法,不支持并发,如果一个任务执行时间过长会阻塞后续任务的执行,适用于简单轻量的任务调度。有意思的是,这里使用不同方式实现了定时任务。这里简单总结一下二者的区别和适用场景。
2024-06-20 23:00:46
227
原创 RocketMQ发送消息之选择消息队列
接上文获取到topic路由信息后,需要选择具体发送的消息队列。其实开不开其故障延迟机制的区别在于对于Broker不可用的定义不同,默认机制只会避开上一次发送且失败的broker(只规避一次),而故障延迟机制会在接下来一段时间内都对其进行规避。
2024-04-14 22:43:32
520
1
原创 RocketMQ消息发送之查找Topic路由
发送消息之前rocketMQ需要获取目的topic的路由信息,即需要将消息发送到哪个topic上。
2024-04-14 19:22:31
638
2
原创 Springcloud Gateway 一次请求流程源码分析
执行完这些过滤器,将请求转发到对应的代理服务器,至此,一次请求流程就结束了。注意,这里的过滤器由于是采用递归方式实现的责任链模式,不仅会在request进行处理,也会对response做一些处理。继续处理请求, DispatcherHandler在SpringMVC包里也有, 这也是为什么使用Springcloud Gateway要替换掉SpringMVC的依赖。, SpringWeb底层采用Netty作为网络框架,所以这里第一步先将Netty的请求转换为Reactor的请求。接口, 来看下它的注释。
2024-03-05 22:55:56
484
原创 责任链模式——递归实现
我们知道责任链模式可以通过构造数组或者链表方式实现,本文介绍一种更富有技巧性的实现方式,通过构造函数递归实现,这样做的好处是什么呢?容我先卖个关子,后面会给出答案。以实现一串过滤器为例子,话不多说,撸代码!首先定义过滤器接口/*** @param exchange 需要贯穿过滤全程的对象,这里采用字符串* @param chain 过滤连*/
2024-03-04 23:31:05
338
原创 Spring cloud源码阅读笔记-----ReactiveLoadBalancerClientFilter
是中的一个重要的过滤器, 主要用于实现负载均衡, 将客户端的请求路由到不同的后端实例上来实现负载均衡和高可用。
2023-09-11 23:31:57
537
原创 让kryo支持反序列化没有无参构造方法的类
动态得到类的实例,我们通常通过反射来得到。但有时候,类缺少默认构造方法,我们又不想传参来实例化,这时候怎么办呢?
2023-03-21 16:34:47
355
原创 Hutool包发送Http请求并获取返回数据
Hutool包发送Http请求并获取返回数据, TypeReference, createGet, toBean
2022-07-14 17:12:01
2913
原创 Springboot整合MyBatiPlus遇到问题
报错2021-11-03 16:48:59.024 ERROR 12964 --- [ restartedMain] o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userController': Unsatisfied d...
2021-11-03 16:52:26
1077
原创 Shiro笔记
Shiro简介以下是官方文档的描述:Apache Shiro™is a powerful and easy-to-use Java security framework that performs authentication, authorization, cryptography, and session management. With Shiro’s easy-to-understand API, you can quickly and easily secure any applicat.
2021-10-25 16:45:27
78
原创 spring-boot-maven-plugin爆红(已解决)
1.在maven的settings.xml中加入阿里云镜像 <mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>https://maven.aliyun.com/repository/central</url> .
2021-10-03 22:57:30
246
原创 JVM内存管理笔记
一、内存区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域Java虚拟机运行时数据区程序计数器程序计数器是一块较小的内存空间, 它可以看作时当前线程所执行的字节码的行号指示器, 分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成.Java虚拟机栈 同程序计数器一样, Java虚拟机栈也是线程私有的, 生命周期同线程一样. 虚拟机栈描述的是Java方法执行的线程内存模型: 每个方...
2021-09-27 16:48:24
86
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人