- 博客(740)
- 资源 (2)
- 问答 (8)
- 收藏
- 关注
原创 redis原理深入解析之看完这篇还需要努力
len:4 alloc:4 flags:1 数组 \0sds可追加:动态扩容 减少内存分配次数 二进制安全如新字符串1m 新空间为扩展后字符串长度+1m+1 内存预分配。
2024-03-07 06:16:59
1044
原创 jmeter压测
h3>调用哪个服务的哪个方法这里设置线程相关jmeter强大到很强大 hh~可设置一下 上面的 参数${}对应的有后置HTTP请求数据库设置
2023-10-17 18:58:47
299
原创 集成shiro
基础概念1、UsernamePasswordToken,用来封装用户登录信息 public UsernamePasswordToken(final String username, final char[] password, final boolean rememberMe, final String host) { this.username = username; this.password
2022-01-18 12:04:15
3369
原创 如何写出气定神闲的代码——泛型
使用了Mybatis 增强工具包https://gitee.com/baomidou/mybatis-plushttps://blog.csdn.net/s10461/article/details/53941091泛型相关 本来这里有一大段溢美之词,但是写完感觉也没什么高大上的,但是作为小白下面的代码极其思想是我需要多学习的,之前一直加班,现在有点时间开始欣赏cto的代码;大概介绍一下:简单的三层,采用springboot,redis,baomidou,一切从简原来的mq也去掉...
2021-05-07 18:38:41
850
原创 python批量修改数据库字段类型
#首先这个代码没有提取不够简练#!/usr/bin/python# -*- coding: UTF-8 -*-import pymysqlimport datetimeimport timeimport re,stringhost = "19.206.25.24"mysql_user_name = "root"now = datetime.datetime.now()now_timestamp = int(time.time())def update_create_time..
2021-01-25 18:14:18
979
5
原创 JIT
JIT,又是一块带肉的骨头;just-in-time compilation,运行时编译,吭哧吭哧写了半天的bug不能到最后还让人来做吧?“侬脑子瓦特了”——当然是交给机器做,javac把java源文件翻译成class文件(字节码组成),jvm加载这些文件逐条取出字节码并执行,这就是解释执行了!当然还可以重新编译优化字节码以生成机器码,CPU直接执行,这样效率更高,这里有java如此受欢迎的原因,这里点破不说破,然后怎么让机器去执行呐?当然是告诉它了:要有源代码或者字节码到机器码的转换过程,...
2020-10-18 12:15:43
323
原创 对象一定分配在堆上吗?
读过之前半文章的小哥哥们肯定都知道,宝宝我最近入坑了Golang,当然这不是自愿的也说不上胁迫,反正就入坑了,没想到21世纪的C语言也有了堆和栈,随之而来的战利品是逃逸分析,自然这只是其中之一,其他的离题比较远,写文章最主要的是什么?不被催稿(奋斗状)!这个我有生之年是做不到了 官方回答逃逸分析:一种确定指针动态范围的方法,就是在程序的哪些地方可访问到这些指针,具体涉及到指针分析和形状分析,是不是不好理解,在次要特别鸣谢公司让贫下中农的我可以”科学上网“;再直白一些:逃逸分析确定某个指针可...
2020-10-13 22:07:41
610
1
原创 springboot自动装配
装载谁@SpringBootApplication @SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan@EnableAutoConfiguration开启自动装配 在classpath下找到all配置的bean进行装配,据若干conditional定制规则初始化@Import(EnableAutoConfigurationImportSelector.class)1.5中过时,查看父类AutoC...
2020-09-02 23:29:55
207
原创 DDD Domain Drive Design
源自圣杰https://www.cnblogs.com/sheng-jie/p/6931646.htmlDDD理论系列文章DDD综合软件系统分析和设计的面向对象建模的方法通用语言:通过团队交流达成共识 能简单清晰准确 传递业务规则的语言(文字 图片)《实现领域驱动设计》书中有一个简单的例子(P238)系统必须对User进行认证,并且只有当Tenant(租户)处于激活状态时才能对...
2019-09-05 21:14:15
458
原创 ShardingSphere下
使用规范不支持:不支持case when,having,union可解析至第一个含表的子查询,在下层嵌套再次找到子查询抛错子查询不支持聚合函数,不支持含shema的SQL:shardingsphere对sql的访问都是在同一个逻辑schema上分页完全支持MySQL、PostgreSQL和Oracle的分页查询,SQLServer由于分页查询较为复杂,仅部分支持性能编...
2019-08-27 15:01:58
2632
1
原创 开源监控:Prometheus
开源的系统监控及告警工具,适用于以服务器为中心,高动态 面向服务架构 的监控;架构图:prometheus server:核心,据配置采集数据,服务发现,数据存储prometheus targets:探针exporter提供采集接口,或应用本身提供的支持promethenus数据模型采集接口pushgateway:为部分push场景提供插件,监控数据先推送到push...
2019-05-29 22:54:16
881
1
转载 kafka入坑
高级消费者提供消费消息的方法而屏蔽底层细节;高级消费者在zk特点分区存储最后的偏离(kafka启动时准备完毕),全局kafka集群消费群体,任何老逻辑的消费者应该被关闭然后运行新的代码,当一个新的进程拥有相同的消费者群的名字,kafka新增进程的线程来消费topic且引发“重新平衡”:分配现有分区到all可用线程如果你提供比在topic分区多的线程数量,一些线程将永远不会看到消息。 如果...
2019-03-19 22:04:26
404
4
转载 canal详解
canal在github上的文档:https://github.com/alibaba/canal/wiki/ClientExamplemysqlcanal伪装成mysql slave,如此“降低”姿态,mysql当然要做出些表示:那便是开启binlog支持[mysqld]log-bin=mysql-bin #添加这一行就okbinlog-format=ROW #选择row模式...
2019-03-09 16:46:45
3939
原创 ClickHouse 来一篇
是时候来见证一下真正的面向列的DBMS了!!!真正的DBMS没有任何垃圾值,数据紧凑存储(无需存数值长度):定长数值clickhouse容许在运行时可建表建库,加载数据进行查询,不需要重新配置 重启服务器快:不是一般的飞快支持事务,无隔离级别:ACID是没戏了,so数据可能不一致 我们CK是分析性数据库嘛 引擎:合并树MergeTree系列通主键字典排序,主键可以是列...
2019-03-03 10:30:46
575
原创 微服务时代“通行证”:为什么 synchronized 救不了集群
“不要试图用战术上的勤奋(手写复杂的锁逻辑),掩盖战略上的懒惰(直接上成熟框架Redisson/Curator)。”“分布式锁不是银弹。它解决了并发冲突,但引入了网络依赖和性能损耗。能不用则不用,能用数据库乐观锁 (UPDATE table SET stock = stock - 1 WHERE id = ? AND stock > 0) 解决的,就别上分布式锁。”“没有最好的锁,只有最适合业务场景的锁。追求极致性能选 Redis,追求绝对数据一致选 ZK。成年人的世界,不做选择题,只做权衡题 (Tr
2026-03-16 23:27:38
231
原创 NLP((Natural Language Processing)简介
自然语言处理:打破人类语言与机器代码之间的隔阂, 让计算机真正理解我们在说什么。
2026-03-16 20:48:47
56
原创 Datawhale——一封ai的介绍信
任何能够通过传感器(Sensors)感知其所处环境(Environment),并自主地通过执行器(Actuators)采取行动(Action)以达成特定目标的实体;环境是智能体所处的外部世界,摄像头、麦克风、雷达或各类应用程序编程接口(Application Programming Interface, API)返回的数据流,都是其感知能力的延伸执行器可以是物理设备(如机械臂、方向盘)或虚拟工具(如执行一段代码、调用一个服务)自主:基于其感知和内部状态进行独立决策,以达成其设计目标。
2026-03-15 17:58:17
282
原创 分布式事务:一场关于“信任危机”的豪门恩怨
别光看代码,去搞破坏!Chaos Engineering (混沌工程):在 Confirm 阶段随机杀进程。模拟网络延迟,让 Cancel 比 Try 先到。把数据库 CPU 打满,看超时怎么处理。如果你的代码在这些情况下还能保持数据最终一致(通过日志对账发现并修复),那你就是真正的分布式大师了!
2026-03-15 15:53:12
270
原创 jvm——时不我待
JDK 8 用户:如果是新系统,尽量升级到 JDK 17/21。如果必须留在 JDK 8,大堆请用 G1 (需手动开启),小堆可用 ParallelGC。慎用 CMS。JDK 17/21 用户无脑选 ZGC(特别是 JDK 21 的分代 ZGC)。它已经解决了吞吐量的短板,是目前的最优解。核心心法GC 调优的本质是减少对象分配,而不是调整 GC 参数。最好的 GC 是没有 GC。通过对象池、复用、逃逸分析减少new,比任何调参都有效。监控先行:没有数据支撑的调优就是瞎猜。结合我们之前聊的。
2026-03-15 15:05:54
384
原创 线上故障排查实战经验总结一
工具只是手段,日志才是线索。在生产环境部署完善的日志系统(ELK/SkyWalking),配合这些底层工具,才能真正做到“手到病除”。不要等到挂了才想起来看日志!
2026-03-14 22:43:18
324
原创 无锁编程:并发的“珠穆朗玛峰”与 F1 的“无缝换挡”
"If you can avoid locking, do it. If you can avoid allocation, do it. If you can fit it in a cache line, do it."(如果能避免锁,就避免;如果能避免内存分配,就避免;如果能塞进一个缓存行,就塞进去。)这就是极致性能的代价与魅力。
2026-03-14 22:43:02
335
原创 分布式锁:跨 JVM 的“工商局备案章”
高频并发找 Redis,低频协调用 ZK;监听只盯前驱点,本地缓存省网络;热点数据要分片,SSD 磁盘保平安。Redis 锁:像高速公路的 ETC 闸机。速度极快,大家刷刷过。万一系统故障重启,可能偶尔有辆车没记录上(极小概率冲突),但后面有摄像头(数据库兜底)再核对一遍。ZK 锁:像银行金库的双人指纹锁。必须严格登记,一个人出来另一个才能进。绝对安全,但每个人都要按指纹、等验证,速度慢,人多了门口就堵死了。
2026-03-14 10:56:04
315
原创 锁优化高级策略:JVM 的“灵活执法”艺术
JVM 的锁优化就像交警执法:没车时撤岗(消除),车流密集时拉长绿灯(粗化),短时等待时原地转圈(自旋),而那个容易误判导致全线停车的“特殊通行证”(偏向锁)已经被收回了。
2026-03-13 21:46:42
311
原创 线程间的友谊小船
掌握这些底层机制,你不仅能写出正确的并发代码,还能在系统出现“莫名卡顿”或“数据丢失”时,迅速定位到是锁竞争、上下文丢失还是线程池配置不当引起的。
2026-03-13 21:39:54
334
原创 CompletableFuture:异步编程的“智能机械臂”
一句话口诀: 微服务编排用 CF,线程池子要隔离。 ThenCompose 串依赖,ThenCombine 并两路。 Handle 异常做降级,Join 只在最后处。掌握了 CompletableFuture,你就掌握了现代 Java 高并发架构中降低 RT (响应时间) 和 提升吞吐量 的核心钥匙!🔑
2026-03-13 21:39:26
288
原创 Fork/Join 框架与并行流:CPU 密集型的“分身术”
IO 多用线程池,CPU 密用 F/J。集合处理并行流,阻塞操作要隔离。拆分阈值调得好,工作窃取效率高。 Fork/Join 是 咱们Java 处理计算密集型大数据的大武器,而 Parallel Stream 则是让每个牛马都能轻松挥舞这把武器的“剑鞘”。用对了,性能提升十倍百倍;用错了(比如在并行流里查数据库),系统直接雪崩。小心哦~
2026-03-13 21:38:54
351
原创 并发容器全家桶:选择正确的“交通工具”
并发容器虽好,但不要滥用。能用 ConcurrentHashMap 解决的,别强行上 SkipList(没必要)。能加锁解决的简单场景,别为了“无锁”强行上 COW(适得其反)。理解业务场景(交通流量模型),才是选择正确工具的关键!
2026-03-12 20:37:09
379
原创 ThreadLocal 与内存泄漏
ThreadLocal 是好东西,但它不负责打扫卫生。打扫战场,是你作为开发者的责任,主动 remove 是唯一可靠的方案!
2026-03-11 22:25:21
429
1
原创 死锁 (Deadlock) 与 活锁 (Livelock)
在并发编程中,“预防”永远比“治疗”便宜。写好代码时的几分钟思考(设计锁顺序),能省去生产环境半夜三点起来 jstack 抓鬼的几个小时痛苦。
2026-03-10 23:22:46
382
原创 volatile:从“窃窃私语”到“广而告之”的硬件革命
下次当你写下 volatile 时,请想象一下:你正在按下核按钮,命令所有 CPU 核心停止手中的活,立刻通过数据总线大声广播,并确保所有指令按严格的顺序执行。这就是轻量级同步背后的重型硬件支撑!
2026-03-09 21:53:27
351
原创 多线程的“时差”与“近视眼”大冒险——JMM内存模型
设计硬件的地方,如有不对,欢迎批评指教,大家看文章受累了!数据总线是瓶颈:CPU 再快,也得等总线运数据。可见性靠总线广播:volatile 和 synchronized 的底层,本质上是触发了总线上的 MESI 协议广播,强制其他核心的缓存失效。有序性靠屏障 + 总线顺序:内存屏障不仅阻止 CPU 重排,还强制刷新写缓冲,确保数据真正走上总线。性能杀手是伪共享:别让无关变量挤在同一个缓存行里,否则总线会把你撕碎。给开发者的建议:不要过度优化,但要懂原理。高并发下,尽量减少共享变量的修改(无锁
2026-03-08 21:57:51
345
原创 关于ai——纯笔记
这个定时任务已经帮很大短视频创作者们做了很多热点工作捕捉、消息提醒等等很多事情,大家也要在激流中涌进,尽量别被拍在沙滩上!先推理:现在是个什么情况,我看看是怎么个事;当前对话的历史、打开的代码文件、项目的结构和配置、提供的参考资料。这是大家疯狂在做,也是我正在尝试的内容,集大成者。再行动:好的,咱们来试试看怎么解决;观察结果:做完了,检查下成果,看看行动效果如何。所有的参考信息:背景、提示、之前的历史。也可以简单理解为:提出来的问题,要求。语义匹配向量化信息,加入上下文。借助SKILL.md。
2026-03-08 19:46:02
299
原创 线程池 ThreadPoolExecutor:Java并发的智能生产线调度系统
线程池不是银弹,合理配置才是王道,别指望一个线程池走天下,根据业务拆分成多个线程池(比如核心业务池、非核心业务池),才是高级架构师的操作~
2026-03-07 17:30:33
345
原创 家家有本难念的经——事务知多少
事务这玩意儿,本质就是 “要么全成,要么全败” 的承诺 —— 就像你点外卖,要么 “下单 + 付款 + 商家接单 + 骑手配送” 全成,要么只要一步崩了,就回到 “没下单” 的状态,绝不能出现 “付了钱但商家没接单” 的尴尬。最后一句事务是保证数据安全的最后一道防线,但性能是业务存活的第一道防线—— 既要保证数据不错乱,也要别把数据库卡崩。
2026-03-05 22:09:00
366
原创 用ReentrantReadWriteLock把谁锁起来
核心架构思想:通过 “位拆分” 复用 AQS 的 state 变量,用最小的内存开销实现 “读写分离”,兼顾原子性和可见性;并发控制核心:读锁(共享模式)+ 写锁(独占模式),通过 AQS 的双向链表和 CAS 保证并发安全,遵循 “读读共享、读写 / 写写互斥”;读极多、写极少 → CopyOnWrite 结构;读多写少、键值对存储 → ConcurrentHashMap;非键值对、需灵活锁控制 → 拆分锁粒度的 RWL + Striped 优化;写频率中等、需避免饥饿 → 公平模式 RWL。
2026-03-04 21:37:09
371
原创 Elasticsearch之线上问题合集——下
ES 的哲学: 它不会阻止你犯错,每个男人女人(放心女人也不会拉下)都会犯错,但会让你为每个错误付出“集群挂掉”的代价。 所以,敬畏配置,尊重原理,监控先行。嗯…… 接下来你们说吧,舞台交给大家~
2026-03-03 21:58:38
82
原创 数据总线——计算机血管系统
“数据总线就像 公司里的电梯。宽度:电梯能站多少人(64 位 = 一次进 8 个大汉)。频率:电梯跑得有多快(3200MHz = 每秒跑 32 亿趟)。三态门:电梯门的开关。别人进的时候,你必须把门关好(高阻态),不然两拨人在门口打架(短路)。时序:电梯必须有节奏地停和走,不能乱来。瓶颈:哪怕你的办公室(CPU)里有爱因斯坦在工作,如果电梯(总线)太慢或者太窄,资料(数据)送不上来,爱因斯坦也只能发呆摸鱼。所以:买电脑别只看 CPU 核心数,看看电梯(内存带宽)够不够宽、够不够快!
2026-03-03 21:57:18
406
原创 翻身路上的好帮手CAS
“CAS 就像一个强迫症保安:他站在仓库门口(内存地址),手里拿着登记本(寄存器)。每次有人想搬东西,他都要:瞪大眼睛看:‘现在的库存是 10 吗?’ (Compare)如果 yes:‘好,立马改成 9!’ (Swap) —— 动作快如闪电,还要拉警戒线 (LOCK) 不让别人靠近。如果 no:‘滚回去重来!’ (Retry)
2026-03-03 13:10:43
839
ELK6.1.2,filebeat及es的常用head和ik插件
2018-04-03
Highcharts
2017-03-05
连接阿里云数据库RDS失败,想选40C币 没有那么多了,请大家帮帮忙,急
2018-06-16
springboot项目controller注入失败,空指针;单元测试没有问题
2018-06-15
service层判断返回值是否为空,空的话返回一个=null的model,不为空的话
2017-08-22
服务用jenkins构建之后注册不上dubbo,url访问500,重启tomca问题解决
2017-08-22
JAVA用SSH框架,Source not found for OrderService
2017-03-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅