自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一只小星星

静下心来,认真学习。

  • 博客(244)
  • 收藏
  • 关注

原创 MAC OS使用docker部署RocketMQ,解决宿主机无法访问broker

虽然利用docker启动容器,可以在启动的时候配置端口映射,利用127.0.0.1+映射端口的方式直接访问容器,但是在Broker的连接上,是通过NameServer来获取他的地址,并非通过自己的配置。而NameServer提供的是容器网络内的地址,所以导致在拿到Broker的地址后,无法通过宿主机连接。然后使用以下命令在 docker 端运行 wenjunxiao/mac-docker-connector,** 指令的含义是需要使用 host 网络,并且允许 NET_ADMIN**

2024-09-05 01:37:26 375

原创 高并发系统设计

削峰填谷(Load Shedding and Smoothing):对于流量高峰,采用削峰填谷的策略,例如消息队列、请求缓冲队列、批处理等方式,将瞬时高峰流量平滑处理,减少对系统的冲击。无锁编程和减少锁争用:尽量使用无锁数据结构(如 ConcurrentHashMap)和算法(如 CAS,Compare-And-Swap),避免线程之间的锁竞争,提高并发性能。高效的网络库:使用高效的网络库和框架(如 Netty、Akka、Vert.x)来处理大量的并发连接和请求,优化底层网络性能。

2024-09-03 23:18:22 1071

原创 RocketMQ性能优化:全网最全的一篇

通过监控 RocketMQ 的性能指标和运行状态,可以及时发现问题并进行优化调整。操作系统的配置对 RocketMQ 的性能有显著影响。通过合理的操作系统调优,可以更好地发挥硬件性能,提升 RocketMQ 的消息处理能力。RocketMQ 的写入和消费性能直接影响系统的整体吞吐量和响应时间。通过优化写入和消费策略,可以进一步提升 RocketMQ 的性能。合理选择和配置硬件资源,可以为 RocketMQ 提供更高的吞吐量和更低的延迟。通过优化消息存储策略和数据结构设计,可以提升消息存储和检索的效率。

2024-08-27 23:29:55 877

原创 Redis性能优化:全网最全的一篇

Redis 的 Hash 适合存储多个字段的对象,当字段较少且值较短时,使用 Hash 可以显著减少内存占用。**使用更紧凑的字符串编码:**Redis 会自动选择适当的字符串编码方式(raw 或 int 编码)。**使用 LZF 压缩 AOF 文件:**如果启用了 AOF(Append Only File)持久化,可以选择使用 LZF 压缩 AOF 文件,减少磁盘和内存的使用。**优化内存分配:**Redis 内部使用 jemalloc 作为内存分配器,可以通过定期优化和整理内存分配来减少内存碎片。

2024-08-27 22:41:04 1171

原创 Redis源码浅析二:命令执行

总结:readQueryFromClient 函数负责从客户端 socket 读取请求数据,将其存储在查询缓冲区中,并根据不同的情况进行处理(如命令解析、复制状态更新等)。如果数据读取不完整或发生错误,它会正确处理这些情况,并确保不会由于某个客户端的异常状态影响到整个 Redis 服务器的稳定性。在redis启动的时候,我们还要关注一个重点,在initServer的时候,会执行aeCreateFileEvent,这里我们还有深入学习一下。看到这里基本上就可以了,不再往下追了,

2024-08-25 23:15:14 486

原创 Redis源码浅析一:redis启动

当输出缓冲区中仍然有未发送的数据时,Redis 需要确保这些数据能在将来继续发送,为此,Redis 在事件循环中为该客户端的 socket 创建一个 可写事件(AE_WRITABLE)。这个事件表示,当客户端的 socket 变为可写状态(即,socket 缓冲区有足够的空间来接收更多数据)时,Redis 的事件循环会触发相应的事件处理器(sendReplyToClient),继续将剩余的数据发送给客户端。回调函数在事件循环进入休眠等待 I/O 事件之前执行,主要用于处理一些需要在阻塞等待之前完成的任务。

2024-08-25 22:27:34 415

原创 Redission源码浅析一:RedissonLock.lock与RedissonLock.tryLock

加锁时,如果没有指定过期时间,则默认过期时间为30s且每隔10s进行锁续期操作。

2024-08-25 21:09:34 892

原创 Lettuce源码二:执行命令

本文主要介绍了使用发送set命令的主要流程和原理:获取基础连接调用set方法(阻塞等待) -> 封装命令 -> 获取指定槽的节点连接 -> 命令缓存到队列末尾 -> 命令编码 -> 发送到tcp缓冲区 ->redis服务端收到请求、处理并返回响应 -> 客户端tcp缓冲区收到响应报文 -> 响应消息解码 -> 从本地队列头部去除缓存命令 -> 响应写入命令对象 -> 返回响应唤醒调用线程。Lettuce 客户端借助命令队列、响应式编程,实现了tcp。

2024-08-23 16:47:39 783

原创 Luttuce源码一:启动并创建连接

最近在看Luttuce的源码,简单记录一下。

2024-08-23 15:35:18 921

原创 双指针算法:移动零

【代码】双指针算法:移动零。

2024-08-02 19:58:23 104

原创 双指针算法:盛最多水的容器

【代码】双指针算法:盛最多水的容器。

2024-08-02 19:57:45 93

原创 二分算法:在排序数组中查找元素的第一个和最后一个位置

【代码】二分算法:在排序数组中查找元素的第一个和最后一个位置。

2024-08-01 21:43:31 246

原创 回溯算法:目标和

【代码】回溯算法:目标和。

2024-08-01 21:42:34 285

原创 回溯算法:电话号码的字母组合

【代码】回溯算法:_17电话号码的字母组合_hot。

2024-07-31 14:16:12 398

原创 回溯算法:子集

【代码】回溯算法:子集。

2024-07-31 14:14:43 303

原创 Mysql 性能调优四:查询优化

在前面几篇中,我们介绍了如何设计最优的库表结构、如何建立最好的索引,这些对于提高性能来说是必不可少的。但这些还不够——还需要合理地设计查询。如果查询写得很糟糕,即使库表结构再合理、索引再合适,也无法实现高性能。

2024-07-30 21:39:44 376

原创 回溯算法:组合总和

【代码】回溯算法:组合总和。

2024-07-30 20:22:02 334

原创 回溯算法二:括号生成

【代码】回溯算法二:括号生成。

2024-07-30 20:14:19 254

原创 ES性能优化:全网最全的一篇

更多的字段对搜索也是有影响的,ES 非常依赖于底层的文件系统缓存,我们肯定想把更多的数据(index segment)缓存起来,这样可以提升性能。的方式来进行处理的。使用 Bulk 的方式有利于提高写入的性能,这个其实也很好理解,如果链接不是长链接,每写入一条数据都进行一次 TCP 链接的过程,那效率是多低啊。对于写入的耗时还是很明显的,从一开始每个批次 3200 条数据的耗时 4 分 39 秒,一路优化到最后的 3 分 53 秒,需要注意的是,部分配置是有特定的使用场景的。

2024-07-30 14:40:57 1945

原创 Mysql 性能调优三:索引设计

todo。

2024-07-29 21:40:00 325

原创 Mysql 性能调优二:Schema设计

这个虚假的全0值可能会导致很多问题(可以将MySQL的SQL_MODE配置为不允许使用无意义的日期,对于尚未创建满是坏数据的数据库的新应用程序来说,这是一个特别好的实践)。Mysql可以为整数类型指定宽度,例如,INT(11),这对大多数应用毫无意义:它不会限制值的合法范围,只是规定来Mysql的一些交互工具例如,MySQL命令行客户端)用来显示字符的个数。在任何具有枚举值类型的数据库中,这可能是一个值得商榷的设计决策,因为它实际上应该是一个整数,会被设计为“字典”或“查找”表的外健。

2024-07-29 21:26:32 824

原创 Leetcode热题100道(刷完进大厂)

给大家一个上下班能快速的刷LeetCode hot100的好去处😁。

2024-07-28 21:47:30 247

原创 回溯算法:全排列

【代码】回溯算法-全排列。

2024-07-28 16:41:06 367

原创 阿里Mysql最佳实践

说明:其中 id 必为主键,类型为 bigint unsigned、单表时自增、步长为 1。create_time,update_time 的类型均为datetime 类型, 如果要记录时区信息,那么类型设置为 timestamp。正例:where a =?and b =?order by c;索引:a_b_c正例:where a =?索引:a_b_c反例:索引如果存在范围查询,那么索引有序性无法利用,如:WHERE a > 10 ORDER BY b;索引 a_b 无法排序。

2024-07-28 16:29:18 1285

原创 二分查找(右边界)

【代码】二分查找(右边界)

2024-07-27 13:10:29 278

原创 Mysql 性能调优一:服务端

调整InnoDB缓冲池:使用 innodb_dedicated_server 这个配置会自动优化,可以使用innodb_buffer_pool_instances将缓冲池分割成多个实例,提高并发性能调整relo log日志文件大小:调整innodb_log_file_size, 确保日志文件大小适中,平衡写入性能和故障恢复时间调整relo log buffer大小:调整innodb_log_buffer_size,减少日志写入磁盘的频率,提高写入性能。

2024-07-27 12:59:16 1255

原创 二分查找(左边界)

【代码】二分查找(左边界)

2024-07-21 11:33:34 90

原创 Idea编译报错java: No implementation was created for BrandConverter due to having a problem in the erron

【代码】Idea编译报错java: No implementation was created for BrandConverter due to having a problem in the erron。

2024-07-21 11:16:54 348

原创 二分查找【标准二分查找】

【代码】二分查找【标准二分查找】

2024-07-20 18:43:18 124 1

原创 全网最全的Java集合最佳实践

说明:毕竟泛型是在 JDK5 后才出现,考虑到向前兼容,编译器是允许非泛型集合与泛型集合互相赋值。// 此处抛出 ClassCastException 异常。

2024-07-20 08:00:00 799

原创 Hot100【一百】:581. 最短无序连续子数组

【代码】Hot100【一百】:581. 最短无序连续子数组。

2024-04-30 16:18:40 109

原创 Hot100【一百】: 461. 汉明距离

【代码】Hot100【一百】: 461. 汉明距离。

2024-04-30 16:15:28 91

原创 Hot100【九十九】:39.组合总和

【代码】Hot100【九十九】:39.组合总和。

2024-04-29 14:11:13 135

原创 Sentinel源码三:滑动窗口

本篇主要还是介绍了滑动窗口进行一个qps等数据的保存和维护的,后续我们将进入flowSlot的源码分析,看看限流是如何运用刚刚统计到的信息进行一个限流判定的。

2024-04-29 08:27:44 1904

原创 Sentinel源码四:限流

发现他去调用了 node 的方法根据 grade 分别去获取 curThreadNum(当前线程数)和 passQps,我们在这里主要研究 qps,研究每秒限制通过多少请求,继续跟入进去,来到 StatisticNode 类中,这里的逻辑也很简单,就是查询这个resource(接口)的所有流控规则,然后调用所有的流控规则的canPassCheck方法。这里代码就不往里面继续看了,核心逻辑就是拿出有效的所有样本窗口,将所有有效的样本窗口的通过数加起来。本地走的话,直接就是passLocalCheck。

2024-04-29 08:27:31 569

原创 Hot100【九十七】:79. 单词搜索

在这里插入代码片。

2024-04-29 08:25:49 80

原创 Hot100【九十六】:309. 买卖股票的最佳时机含冷冻期

在这里插入代码片。

2024-04-29 08:24:40 84

原创 Hot100【九十四】:297. 二叉树的序列化与反序列化

在这里插入代码片。

2024-04-29 08:23:04 66

原创 Hot100【九十三】:617. 合并二叉树

【代码】Hot100【九十三】:617. 合并二叉树。

2024-04-29 08:21:17 292

原创 Hot100【九十二】:312. 戳气球

2024-04-29 08:19:52 268

空空如也

空空如也

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

TA关注的人

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