小马哥不会代码
码龄5年
  • 513,531
    被访问
  • 111
    原创
  • 3,710
    排名
  • 4,104
    粉丝
关注
提问 私信

个人简介:如何简洁编码?

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2017-03-06
博客简介:

Long-Tai

博客描述:
高级Java开发工程师,CSDN博客专家,掘金年度人气作者。专注高并发、中间件、分布式、框架底层源码等知识分享
查看详细资料
  • 5
    领奖
    总分 1,772 当月 22
个人成就
  • 博客专家认证
  • 获得590次点赞
  • 内容获得204次评论
  • 获得1,450次收藏
创作历程
  • 8篇
    2022年
  • 13篇
    2021年
  • 66篇
    2020年
  • 24篇
    2019年
成就勋章
TA的专栏
  • 后台
    1篇
  • Spring 实战专题
    7篇
  • Mybatis 源码分析
    13篇
  • 死磕并发编程
    13篇
  • Docker 系列实战
    12篇
  • 开发踩坑记录
    9篇
  • 设计模式 实战
    7篇
  • Python 自学笔记
    5篇
  • JAVA 新特性
    4篇
  • GO 编程
    2篇
  • 动态线程池
    6篇
兴趣领域 设置
  • 后端
    架构
知识星球
《小马哥的代码实战课》知识星球
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Hippo4J v1.3.1 发布,增加 Netty 监控上报、SpringCloud Hystrix 线程池监控等特性

Hippo4J通过对JDK线程池增强,以及扩展三方框架底层线程池等功能,为业务系统提高线上运行保障能力。🏗全局管控-管理应用线程池实例;⚡️动态变更-应用运行时动态变更线程池参数,包括不限于核心、最大线程数、阻塞队列容量、拒绝策略等;🐳通知报警-内置四种报警通知策略,线程池活跃度、容量水位、拒绝策略以及任务执行时间超长;👀运行监控-实时查看线程池运行时数据,最近半小时线程池运行数据图表展示;👐功能扩展-支持线程池任务传递上下文;依赖配置中心和无中间件依赖;...
原创
发布博客 2022.07.22 ·
57 阅读 ·
0 点赞 ·
0 评论

提名 Apache ShardingSphere Committer,说说方法

文章首发在公众号(龙台的技术笔记),之后同步到 CSDN 和个人网站:xiaomage.info就在前几天,收到了 Apache ShardingSphere Vote 我成为 Committer 的邮件,心情非常高兴,被提名代表自己的贡献得到了充分的认可;在这里,非常感谢 ShardingSphere 团队给予我的帮助!写这篇文章,主要是记录自己贡献 ShardingSphere 这段时间内,代码提交的心路历程。让大家找到对的道路,能够和我一样,成为 Apache 项目的 Committer。如果有个人告
原创
发布博客 2022.07.14 ·
41 阅读 ·
0 点赞 ·
0 评论

图解设计模式:身份认证场景的应用

文章首发在公众号(龙台的技术笔记),之后同步到 CSDN 和个人网站:xiaomage.info今天和大家聊一聊,如何合理的将多种设计模式放到同一个业务场景中最近接到一个认证的需求,C 端用户在购买公司保险时,需要先进行 实名认证确认身份为了保证业务复用,单独将认证的逻辑拆分为微服务模块C 端用户下单购买保险的逻辑大致如下先说下关于认证相关的一些基本知识。简单来说,你如何证明你是你自己一些云服务厂商都会有关于验证身份的付费接口,接下来我们就以腾讯云姓名、身份证二要素认证为参考进行举例说完认证知识,我们再来拆
原创
发布博客 2022.06.29 ·
47 阅读 ·
1 点赞 ·
0 评论

跟着 Guava、Spring 学习如何设计观察者模式

文章首发在公众号(龙台的技术笔记),之后同步到掘金和个人网站:xiaomage.info今天讲解一篇行为型设计模式,什么是行为型?行为型主要负责设计 类或对象之间的交互。工作中常用的观察者模式就是一种行为型设计模式最近在尝试重构之前写过的代码。在重新梳理过业务之后,发现已有的设计场景应该能够接入到设计模式,而且查看了代码的提交记录,更是坚定了此想法保持之前的一贯作风,想要说明一个设计模式,需要三板斧支撑。什么是观察者模式?如何使用观察者模式?项目中应该如何应用?观察者模式 是一种行为设计模式,允许定义一种订
原创
发布博客 2022.06.15 ·
84 阅读 ·
2 点赞 ·
0 评论

HIPPO-4J 1.3.0 正式发布:支持 Dubbo、RibbitMQ、RocketMQ 框架线程池

文章首发在公众号(龙台的技术笔记),之后同步到个人网站:xiaomage.infoHippo-4J 距离上一个版本 1.2.1 已经过去一个月的时间。在此期间,由 8 位贡献者 提交了 170+ commits,正式发布 1.3.0 版本。注:这是一个 兼容历史版本 的重大升级。Github:https://github.com/mabaiwan/hippo4jGitee:https://gitee.com/mabaiwancn/hippo4jHippo-4J 1.3.0 最大的功能发布就是开发出了 适配三
原创
发布博客 2022.06.13 ·
258 阅读 ·
2 点赞 ·
1 评论

面试官问 OOM,别再说不会了

OOM 意味着程序存在着漏洞,可能是代码或者 JVM 参数配置引起的。这篇文章和读者聊聊,Java 进程触发了 OOM 后如何排查常说对生产环境保持敬畏之心,快速解决问题也是一种敬畏的表现欢迎关注我的公众号:龙台的技术笔记,持续输出代码设计和性能调优原创文章为什么会 OOMOOM 全称 “Out Of Memory”,表示内存耗尽。当 JVM 因为没有足够的内存来为对象分配空间,并且垃圾回收器也已经没有空间可回收时,就会抛出这个错误为什么会出现 OOM,一般由这些问题引起分配过少:JVM
原创
发布博客 2022.03.18 ·
169 阅读 ·
2 点赞 ·
0 评论

轻量级动态线程池才是“王道”?

大家好,我是龙台。一、前言最初设计 Hippo4j 的初衷是尽可能提高以及保障线程池对于线上应用的作用,所以加了很多个性化功能,这也间接导致强依赖 Hippo4j Server 项目。自 Hippo4j 1.0.0 版本发布之后,不断有社区小伙伴提出相同的一个问题,如何能够轻量级使用动态线程池?这不,它来了。GitHub:https://github.com/acmenlt/dynamic-threadpoolGitee:https://gitee.com/acmenlt/dynamic
原创
发布博客 2022.03.14 ·
811 阅读 ·
2 点赞 ·
0 评论

我的开源之路:耗时 6 个月发布线程池框架,GitHub 1.7k Star。

大家好,我是程序员龙台。Hippo4J 线程池框架经过 6 个多月的版本迭代,2022 年春节当天成功发行了 1.0.0 RELEASE 版本。对这方面功能有需求的小伙伴可以入手了哈~Hippo4J简介Hippo4J 基于 美团动态线程池 设计理念开发,针对线程池增强 动态调参、监控、报警功能。通过 WEB 控制台对线程池参数进行动态调整,支持 集群内线程池的差异化配置。内置线程池参数变更通知,以及 运行过载报警 功能(支持多通知平台)。按照租户、项目、线程池的维度划分,配合系统权限,让不同的开
原创
发布博客 2022.02.11 ·
505 阅读 ·
3 点赞 ·
0 评论

线程池如何监控,帮助开发快速定位错误?

大部分情况下,线程池的运行情况对于使用者来说是个黑盒运行情况不可知,会导致 生产出现事故问题排查困难,以及线程池参数难以定义文章围绕线程池监控展开,讨论 线程池如何监控、监控的指标以及监控数据的存储展示如何监控设想一下,如果想监控线程池的运行数据,你会怎么操作?这里提供两种常规思路线程池运行时埋点,每一次运行任务都进行统计定时获取线程池的运行数据这里我推荐第二种,因为线程池的监控 API 会通过 获取主锁来控制结果的相对准确性,性能相对较差,后面会详细说明为什么叫相对准确?因为任务和线
原创
发布博客 2021.12.29 ·
117 阅读 ·
1 点赞 ·
0 评论

借鉴美团文章实现的动态线程池,已开源

大家好, 我是龙台给自己定了个小目标,hippo4j 年底达到 1k star!GitHub:https://github.com/acmenlt/dynamic-threadpoolSite:https://www.hippox.cn为什么写这个项目?相信很多程序员都希望一件事,那就是能够参与到某款主流的中间件开发,我也不例外虽然至今为止没有参与主流中间件的开发,但是无意中发现了一件更“有趣”的事情,hippo4jhippo4j 的起始还要从看了美团那篇线程池文章说起,Java线程池实
原创
发布博客 2021.12.01 ·
587 阅读 ·
4 点赞 ·
3 评论

给你介绍下,Hippo4J 动态线程池基础架构

很多小伙伴知道小编从今年六月份开始,陆陆续续开始提交 Hippo4J 动态线程池项目经过 200+ 的 Commit,也是快要能发布 1.0.0 正式版本,今天就写一篇文章正式介绍下 Hippo4J 的项目架构Hippo4J GitHub:https://github.com/acmenlt/dynamic-threadpool小伙伴如果访问 GitHub 速度慢,可以通过改 Host 的方式提高访问速度,修改 Host 方案1. 架构设计简单来说,Hippo4J 从部署的角度上分为两种角色
原创
发布博客 2021.11.08 ·
1542 阅读 ·
4 点赞 ·
1 评论

美团的动态线程池,不依赖中间件可以实现么?

美团的动态线程池,不依赖中间件可以实现么?1. 为什么写这个项目?2. 它解决了什么问题?3. 它有什么特性?4. 如何运行 Demo?5. 查看源码能收获什么?6. 回顾总结1. 为什么写这个项目?大家好,我是龙台。美团线程池文章 介绍中,因为业务对线程池参数没有合理配置,触发过几起生产事故,进而引发了一系列思考。最终决定封装线程池动态参数调整,扩展线程池监控以及消息报警等功能在开源平台找了挺多动态线程池项目,从功能性以及健壮性而言,个人感觉不满足企业级应用因为对动态线程池比较感兴趣,加上想写
原创
发布博客 2021.10.27 ·
292 阅读 ·
2 点赞 ·
1 评论

如果线上遇到了OOM,该如何解决?

OOM 意味着程序存在着漏洞,可能是代码或者 JVM 参数配置引起的。这篇文章和读者聊聊,Java 进程触发了 OOM 后如何排查常说对生产环境保持敬畏之心,快速解决问题也是一种敬畏的表现为什么会 OOMOOM 全称 “Out Of Memory”,表示内存耗尽。当 JVM 因为没有足够的内存来为对象分配空间,并且垃圾回收器也已经没有空间可回收时,就会抛出这个错误为什么会出现 OOM,一般由这些问题引起分配过少:JVM 初始化内存小,业务使用了大量内存;或者不同 JVM 区域分配内存不合理.
原创
发布博客 2021.10.24 ·
427 阅读 ·
8 点赞 ·
2 评论

Snowflake(雪花算法),什么情况下发生冲突?

分布式系统中,有一些需要使用全局唯一 ID 的场景,这种时候为了防止 ID 冲突可以使用 36 位的 UUID,但是 UUID 有一些缺点,首先他相对比较长,另外 UUID 一般是无序的有些时候我们希望能使用一种简单些的 ID,并且希望 ID 能够按照时间有序生成什么是雪花算法Snowflake 中文的意思是雪花,所以常被称为雪花算法,是 Twitter 开源的分布式 ID 生成算法Twitter 雪花算法生成后是一个 64bit 的 long 型的数值,组成部分引入了时间戳,基本保持了自增.
原创
发布博客 2021.10.21 ·
561 阅读 ·
2 点赞 ·
0 评论

DataSource接口,一个被大多数程序员忽略的接口

代码不多,文章不长,简要描述了下 DataSource 演进过程的故事文章产出背景最近这段时间一直忙着集团内部安全等保加密相关事项,初步决定使用 shardingsphere 来进行因为项目众多,需要兼容的需求也随之而来,加密数据源和动态数据源的互相兼容,以及分库分表和加密数据源的兼容等等,反正一言不合就兼容无疑,上面这些或多或少都和数据源有关系,所以在处理不同兼容性等问题时,也让我再次对 DataSource 产生了了解的兴趣,这个曾经被很多人遗忘的重要概念老时代的数据查询在很久很久
原创
发布博客 2021.09.12 ·
5107 阅读 ·
15 点赞 ·
4 评论

线上问题复盘,JVM Fast Throw 的故事

文章字数 1.3k 左右,阅读时长 5 分钟 首先,这是一个 悲伤的故事,涉及到JVM 底层优化的知识点。想到第一次碰到这种问题时的懵逼,应了句老话:书到用时方恨少!负责的消息中台在 晚上八点左右,运维群里反馈大量用户接收不到短信消息。登陆 Kibana 查找对应的 Error 日志,发现出现了 大量的下标越界异常当时更…,线上问题得到了修复。但是,出现问题可不得找到问题的产出原因,不然下次有可能还会出现因为在 ELK 上进行 日志分析不太方便,难以根据对应异常进行不同纬度上的统计分析,所以联系.
原创
发布博客 2021.07.11 ·
174 阅读 ·
4 点赞 ·
3 评论

彻底掌握分布式事务2PC、3PC模型

前言工作中使用最多的是本地事务,但是在对单一项目拆分为 SOA、微服务之后,就会牵扯出分布式事务场景文章以分布式事务为主线展开说明,并且针对 2PC、3PC 算法进行详细的讲解,最后通过一个 Demo 来更深入掌握分布式事务,文章目录结构如下什么是事务什么是分布式事务DTP 模型和 XA 规范什么是 DTP 模型什么是 XA 规范2PC 一致性算法2PC-准备阶段2PC-提交阶段2PC 算法优缺点3PC 一致性算法JDBC 操作 MySQL XA 事务结言.
原创
发布博客 2021.05.07 ·
323 阅读 ·
2 点赞 ·
0 评论

火遍全网的Hutool,如何使用Builder模式创建线程池

前言Builder 设计模式也叫做 构建者模式或者建造者模式,名字只是一种叫法,当聊起三种名称的时候知道是怎么回事就行Builder 设计模式在作者编码过程中,属于比较常用的模式之一。优秀的设计模式总是会受到广大开发者的青睐,Hutool 也是其中之一因为上周编写的业务需要用到线程池,就去 Hutool thread 包下看了看,还真有惊喜,学习到了一种之前编码中没用过的 Builder 模式实现这里必须提一句:设计模式重要的是思想,一种设计模式可能不止一种实现方式Builder 模式文章大纲.
原创
发布博客 2021.03.15 ·
1095 阅读 ·
2 点赞 ·
4 评论

龙台的技术笔记

作者花名龙台,CSDN博客专家,目前就职北京某医药领域公司,任公司系统架构组职位。喜欢研究框架底层源码,知其然知其所以然,是个爱折腾、爱钻研、心有不羁 IT 男~希望通过自己的努力,帮助更多热爱技术的小伙伴收获知识!博客主要分享高并发、中间件、分布式、框架底层源码等知识,文章以下述 TAG 为主题展开分享【设计模式】【源码解析】【高并发编程】【备战数据库】【Spring 知识】【SpringCloud Alibaba】这里引用旭博简介的一句话,很喜欢我狂妄,我自负,就像我曾.
原创
发布博客 2021.01.21 ·
269 阅读 ·
2 点赞 ·
3 评论

1.1w字,10图彻底掌握阻塞队列(并发必备)

前言什么是队列队列是一种先进先出的特殊线性表,简称 FIFO。特殊之处在于只允许在一端插入,在另一端删除进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列队列在程序设计中使用非常的多,包括一些中间件底层数据结构就是队列文章首发自公众号:【源码兴趣圈】,微信搜索关注这个高质量原创技术,定期分享高并发、中间件、分布式、框架源码等知识点什么是阻塞队列队列就队列呗,阻塞队列又是什么鬼阻塞队列是在队列的基础上额外添加两个操作的队列,分别是:支持阻塞的插.
原创
发布博客 2021.01.07 ·
298 阅读 ·
2 点赞 ·
1 评论
加载更多