自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 RocketMQ NameSever

首先需要设置环境变量ROCKETMQ_HOME,使用命令启动NameServer来看启动方法。

2024-07-09 23:45:17 131

原创 RocketMQ网络通讯——NettyRemotingClient

的类,见名知意,```SemaphoreReleaseOnlyOnce``是一个只会被释放一次的信号量,避免多线程或者潜在逻辑错误情况下被释放多次。Netty channel接收到消息后处理核心逻辑在。主要根据消息类型(请求/响应)进行不同的处理逻辑。值得一提的是,RocketMQ依据jdk自带。

2024-06-26 21:34:27 229

原创 类责任链模式

最近在看RocketMQ代码,发现了一个简单的责任链实现方式,记录一下。

2024-06-24 21:49:24 72

原创 RocketMQ网络通信——NettyRemotingServer

使用线程池来调度任务,可以并行多个任务,提供了更多的配置,灵活性扩展性更强,适用于复杂的任务调度(个人认为ScheduledExecutorService完全可以代替TimerTask)基于单线程的时间轮算法,不支持并发,如果一个任务执行时间过长会阻塞后续任务的执行,适用于简单轻量的任务调度。有意思的是,这里使用不同方式实现了定时任务。这里简单总结一下二者的区别和适用场景。

2024-06-20 23:00:46 150

原创 RocketMQ网络通信——协议

RocketMQ解码采用的是LenghtFieldBasedFrameDecode。

2024-06-19 23:34:56 276

原创 RocketMQ位运算实现标记类

【代码】RocketMQ位运算实现标记类。

2024-04-28 22:20:54 326

原创 RocketMQ发送消息之选择消息队列

接上文获取到topic路由信息后,需要选择具体发送的消息队列。其实开不开其故障延迟机制的区别在于对于Broker不可用的定义不同,默认机制只会避开上一次发送且失败的broker(只规避一次),而故障延迟机制会在接下来一段时间内都对其进行规避。

2024-04-14 22:43:32 291 1

原创 RocketMQ消息发送之查找Topic路由

发送消息之前rocketMQ需要获取目的topic的路由信息,即需要将消息发送到哪个topic上。

2024-04-14 19:22:31 337 2

原创 Springcloud Gateway 一次请求流程源码分析

执行完这些过滤器,将请求转发到对应的代理服务器,至此,一次请求流程就结束了。注意,这里的过滤器由于是采用递归方式实现的责任链模式,不仅会在request进行处理,也会对response做一些处理。继续处理请求, DispatcherHandler在SpringMVC包里也有, 这也是为什么使用Springcloud Gateway要替换掉SpringMVC的依赖。, SpringWeb底层采用Netty作为网络框架,所以这里第一步先将Netty的请求转换为Reactor的请求。接口, 来看下它的注释。

2024-03-05 22:55:56 395

原创 责任链模式——递归实现

我们知道责任链模式可以通过构造数组或者链表方式实现,本文介绍一种更富有技巧性的实现方式,通过构造函数递归实现,这样做的好处是什么呢?容我先卖个关子,后面会给出答案。以实现一串过滤器为例子,话不多说,撸代码!首先定义过滤器接口/*** @param exchange 需要贯穿过滤全程的对象,这里采用字符串* @param chain 过滤连*/

2024-03-04 23:31:05 268

原创 使用Supplier, Consumer巧妙重构if判空逻辑

阅读dubbo源码发现了这一巧妙用法, 记录下来。

2023-10-15 16:30:52 107 1

原创 Spring cloud源码阅读笔记-----ReactiveLoadBalancerClientFilter

是中的一个重要的过滤器, 主要用于实现负载均衡, 将客户端的请求路由到不同的后端实例上来实现负载均衡和高可用。

2023-09-11 23:31:57 385

原创 Java下载文件功能

【代码】Java下载文件功能。

2023-04-27 20:25:49 93

原创 让kryo支持反序列化没有无参构造方法的类

动态得到类的实例,我们通常通过反射来得到。但有时候,类缺少默认构造方法,我们又不想传参来实例化,这时候怎么办呢?

2023-03-21 16:34:47 252

原创 Java正则表达式使用

Java正则表达式使用

2022-07-14 17:18:25 133

原创 Hutool包发送Http请求并获取返回数据

Hutool包发送Http请求并获取返回数据, TypeReference, createGet, toBean

2022-07-14 17:12:01 2520

原创 Runtime.getRuntime().exec()的一个坑

Runtime.getRuntime().exec()阻塞问题

2022-07-07 22:50:55 1340

原创 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 1007

原创 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 52

原创 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 211

原创 JVM内存管理笔记

一、内存区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域Java虚拟机运行时数据区程序计数器程序计数器是一块较小的内存空间, 它可以看作时当前线程所执行的字节码的行号指示器, 分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成.Java虚拟机栈 同程序计数器一样, Java虚拟机栈也是线程私有的, 生命周期同线程一样. 虚拟机栈描述的是Java方法执行的线程内存模型: 每个方...

2021-09-27 16:48:24 76

空空如也

空空如也

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

TA关注的人

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