延时消息常见实现方案

2022-01-14
阅读 5 分钟
2.9k
延时消息适用的业务场景非常的广泛,在分布式系统环境下,延时消息的功能一般会在下沉到中间件层,通常是 MQ 中内置这个功能或者内聚成一个公共基础服务。

从 Kafka 看时间轮算法设计

2021-12-30
阅读 3 分钟
4.7k
Kafka 中有很多延时操作,比如对于耗时的网络请求(比如 Produce 时等待 ISR 副本复制成功)会被封装成 DelayOperation 进行延迟处理操作,防止阻塞 Kafka请求处理线程。

从 RocksDB 看 LSM-Tree 算法设计

2021-12-29
阅读 8 分钟
8.2k
目前笔者本人正在基于 Pulsar 搭建公司内部的消息平台,自然也对其底层存储做了一些研究。Pulsar 使用 BookKeeper 作为存储层,BookKeeper 底层使用到了 RocksDB 来保存 Entry (BookKeeper 中的数据存储单元) 对应的位置索引。RocksDB 是我一直关注的存储引擎技术,因为之前在调研持久型 KV 存储的时候,发现主流开源的 ...

面向实际的单测完整解决方案分享

2021-03-21
阅读 14 分钟
4.9k
背景主要是后续我们的持续集成流程中会增加单测覆盖率这个一个卡点,大家之后需要慢慢将手头上的服务的单测补充起来。然后就发现组里的人对单测这个事情的理解有很大的偏差,并且有些人不知道怎么去写单测。所以就有了这么一次分享。

Elasticsearch 如何做到快速检索 - 倒排索引的秘密

2020-10-30
阅读 7 分钟
13k
"All problems in computer science can be solved by another level of indirection.”– David J. Wheeler“计算机世界就是 trade-off 的艺术”

Java 应用线上问题排查思路、工具小结

2020-04-30
阅读 7 分钟
4k
本文总结了一些常见的线上应急现象和对应排查步骤和工具。分享的主要目的是想让对线上问题接触少的同学有个预先认知,免得在遇到实际问题时手忙脚乱。毕竟作者自己也是从手忙脚乱时走过来的。

Java 并发编程 ④ - Java 内存模型

2020-04-27
阅读 6 分钟
2k
原文地址:Java 并发编程 ④ - Java 内存模型转载请注明出处! 往期文章: Java 并发编程基础 ① - 线程 Java 并发编程 ② - 线程生命周期与状态流转 Java 并发编程 ③ - ThreadLocal 和 InheritableThreadLocal 详解 前言 Java内存模型(Java Memory Model ,JMM)就是一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访...

读书日,谈谈读书

2020-04-24
阅读 2 分钟
2k
4月23号是国际读书日,借着这个时机就想谈谈自己对读书的感悟。 其实回顾前大半个学生生涯,我都不是一个喜欢读书的人。 因为什么?我后来仔细想了想,因为我觉得“无用”。 原来从很久很久以前,我都是站在一种很纯粹的实用主义立场,去看待读书这件事情,这和每个人家庭的成长环境有关,从小到大,周围的人都给我灌输着...

《clean code》 阅读笔记

2020-04-04
阅读 7 分钟
3.5k
编者寄语:这是一本真正的好书,不过如果读者没有一定的经验,以及缺乏对编程境界的追求的话,可能认为这本书很一般。当然,对于有心人来说,这本书里面的部分东西可能都已经习以为常了。 那么,你是怎样的呢? 另外我为什么写的是《clean code》而不是《代码整洁之道》,因为这本书很多地方你需要看原版的文字才能get到...

有个定时任务突然不执行了,别急,原因可能在这

2020-03-30
阅读 7 分钟
10.2k
原文地址:有个定时任务突然不执行了,别急,原因可能在这转载请注明出处! 小伙伴们,我们一起来避坑😅😅 问题描述 程序发版之后一个定时任务突然挂了! “幸亏是用灰度跑的,不然完蛋了。😭” 之前因为在线程池踩过坑,阅读过ThreadPoolExecutor的源码,自以为不会再踩坑,没想到又一不小心踩坑了,只不过这次的坑踩在了Sch...

Java 并发编程 ③ - ThreadLocal 和 InheritableThreadLocal 详解

2020-03-25
阅读 13 分钟
3.3k
原文地址:Java 并发编程 ③ - ThreadLocal 和 InheritableThreadLocal 详解转载请注明出处! 前言 往期文章: Java 并发编程基础 ① - 线程 Java 并发编程 ② - 线程生命周期与状态流转 继上一篇结尾讲的,这一篇文章主要是讲ThreadLocal 和 InheritableThreadLocal。主要内容有: ThreadLocal 使用 和 实现原理 ThreadLoc...

Dubbo 服务性能压测(with JMeter)

2020-03-23
阅读 4 分钟
3.6k
最近在做Dubbo服务与Prometheus的监控集成,为了测试监控组件对Dubbo RPC 调用的性能影响,就需要对添加前后做性能测试。虽然之前给组内搭建了统一的Dubbo 服务测试平台,但是无法用于性能测试。

Java 并发编程 ② - 线程生命周期与状态流转

2020-03-20
阅读 8 分钟
2.4k
原文地址:Java 并发编程 ② - 线程生命周期与状态流转转载请注明出处! 前言 往期文章: Java 并发编程基础 ① - 线程 继上一篇结尾讲的,这一篇文章主要是讲线程的生命周期以及状态流转。主要内容有: Java 中对线程状态的定义,与操作系统线程状态的对比 线程状态的流转图 如何自己验证状态的流转 一、Java 线程的状态 ...

Java 并发编程基础 ① - 线程

2020-03-18
阅读 10 分钟
2.1k
进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,线程则是进程的一个执行路径,一个进程中至少有一个线程,进程中的多个线程共享进程的资源。

开发小记 - 用函数式编程优化代码可读性,减少一半行数

2020-03-06
阅读 7 分钟
2.7k
前言 本文主要是记录一下用lambda 表达式优化代码的经历,篇幅不长,算是分享我觉得不错的一个小技巧。 话不多说,直接进入正题。 正文 我们先来看这么一段代码: {代码...} 俺是做支付的,这段代码的逻辑很简单,就是获取某个支付渠道的商户配置,缓存取不到就去数据库取。 在IDEA乍一看,我倒没看出什么问题,代码检查...

传统 Spring MVC 项目 集成 Prometheus

2020-03-05
阅读 7 分钟
6k
前言 春节前的两个星期,本人写了两篇Spring Boot 应用集成Prometheus + Grafana实现监控告警功能的文章。 Spring Boot Actuator 模块 详解:健康检查,度量,指标收集和监控 SpringBoot 微服务应用集成Prometheus + Grafana 实现监控告警 凭借着 Spring Boot Actuator 模块 + micrometer-registry-prometheus 模块,Spr...

这几个关于Spring 依赖注入的问题你清楚吗?

2020-02-04
阅读 6 分钟
4.5k
当你在使用@Autowired时,是否有出现过Field injection is not recommended的警告?你知道这是为什么吗?

Spring Boot 微服务应用集成Prometheus + Grafana 实现监控告警

2020-01-22
阅读 14 分钟
11.3k
关键词:Prometheus; Grafana; Alertmanager; SpringBoot; SpringBoot Actuator; 监控; 告警;

Spring Boot Actuator 模块 详解:健康检查,度量,指标收集和监控

2020-01-17
阅读 10 分钟
23.8k
去年我们项目做了微服务1.0的架构转型,但是服务监控这块却没有跟上。这不,最近我就被分配了要将我们核心的微服务应用全部监控起来的任务。我们的微服务应用都是SpringBoot 应用,因此就自然而然的想到了借助Spring Boot 的Actuator 模块。(没吃过猪肉总听过猪叫见过猪跑吧🤪)。

🔥 万字精美图文带你掌握JVM垃圾回收

2020-01-08
阅读 13 分钟
4.2k
本篇内容干货太多,耗费作者大量心力,强烈建议读者朋友们先收藏后观看😉🙇🙏现在正值年底,估计有很多兄弟们在准备面试,希望本篇能给各位带来帮助。 转载请注明出处,原创不易!

JVM 学习笔记 - 带你掌握JVM类加载机制

2019-12-31
阅读 10 分钟
4.1k
前言 JVM系列: 🔥 万字精美图文带你掌握JVM垃圾回收 JVM 学习笔记 - 带你掌握JVM类加载机制 🔥 精美图文带你掌握 JVM 内存布局 本节主要内容: 类的生命周期 类加载阶段描述 数组类和非数组类在加载阶段的差别 父子类初始化顺序 接口的初始化 JVM如何处理 多线程同时初始化一个类 的情况 类加载器的分类 什么是双亲委派模...

🔥 精美图文带你掌握 JVM 内存布局

2019-12-27
阅读 8 分钟
11k
前言 JVM 系列: 🔥 万字精美图文带你掌握JVM垃圾回收 JVM 学习笔记 - 带你掌握JVM类加载机制 🔥 精美图文带你掌握 JVM 内存布局 本JVM系列属于本人学习过程当中总结的一些知识点,目的是想让读者更快地掌握JVM相关的知识要点,难免会有所侧重,若想要更加系统更加详细的学习JVM知识,还是需要去阅读专业的书籍和文档。 本...

Java 服务调用全流程追踪 简易实现方案

2019-12-26
阅读 11 分钟
4.9k
前段时间,本人一直协助项目组在做系统的重构,系统应用被拆分成了多个服务,部分服务做了集群部署。随着上述架构的演进,自然而然的引进了ELK + Filebeat 做日志收集。但是在使用Kibana查看日志时,由于缺少TraceID,导致开发人员很难筛选出指定请求的相关日志,也很难追踪应用对下游服务的调用过程,耗费了很多时间。...

微服务设计学习(三)服务治理之服务注册与发现

2019-11-27
阅读 6 分钟
3.6k
前言 欢迎阅读往期系列: 微服务设计学习(一)关于微服务和如何建模服务 微服务设计学习(二)关于服务的集成 在微服务大行其道的今天,服务的粒度被拆分得非常细,随之而来的是服务数量的迅速增长。在云原生的浪潮中,服务治理更多情况下与容器调度平台结合,共同形成一站式的自动化调度治理平台。 当然无论是否使用基...

微服务设计学习(二)关于服务的集成

2019-11-20
阅读 5 分钟
3.3k
微服务之间如何集成应该可以说是微服务相关技术中最重要的知识之一。具体可以表示成服务之间的调用方式、通信协议、序列化协议等。如果服务集成做得好,你的微服务可以最大程度地保持自治,你可以独立地修改和发布,相反,前期考虑得不周全的话,会给你带来灾难。

向您生动地讲解Spring AOP 源码(3)

2019-11-12
阅读 8 分钟
2.8k
前言 往期文章: Spring IoC - Spring IoC 的设计 Spring IoC - IoC 容器初始化 源码解析 Spring IoC - 依赖注入 源码解析 Spring AOP - 注解方式使用介绍(长文详解) 向您生动地讲解Spring AOP 源码(1) 向您生动地讲解Spring AOP 源码(2) 在上一章向您生动地讲解Spring AOP 源码(2)中,作者介绍了【如何获取对应...

向您图文并茂生动讲解Spring AOP 源码(2)

2019-11-11
阅读 6 分钟
2.3k
前言 往期文章: Spring IoC - Spring IoC 的设计 Spring IoC - IoC 容器初始化 源码解析 Spring IoC - 依赖注入 源码解析 Spring AOP - 注解方式使用介绍(长文详解) 向您生动地讲解Spring AOP 源码(1) 在上一章向您生动地讲解Spring AOP 源码(1)中,作者介绍了【开启AOP自动代理的玄机】和【自动代理的触发时机】...

代码以外的生存之道

2019-11-09
阅读 2 分钟
5.7k
愿所有自强不息、孜孜不倦地持续自我改进的开发人员都能在代码之外,找到自己的最佳生存之道。 前言 最近刚刚读完了一本书,深受启发,想和各位程序员同道分享一二,也强烈建议大家去阅读一下。 这本书叫做《软技能:代码以外的生存之道》,本章的名字也截选与此。 这本书虽说是一名程序员所写,但是通篇没有一行代码。...

向您图文并茂生动讲解Spring AOP 源码(1)

2019-11-08
阅读 4 分钟
2.9k
前言 在Spring AOP - 注解方式使用介绍(长文详解)中,作者介绍了Spring AOP 注解方式的使用方式。算是给咱们的Spring AOP 源码分析开了个头,做了一点知识点的铺垫。 在开始学习Spring AOP的源码之前,如果你还没有学习过Spring IoC的源码,最好先去学习下Spring IoC。 Spring IoC - Spring IoC 的设计 Spring IoC - I...

Spring AOP - 注解方式使用介绍(长文详解)

2019-11-04
阅读 10 分钟
9.3k
之前的源码解析章节,本人讲解了Spring IOC 的核心部分的源码。如果你熟悉Spring AOP的使用的话,在了解Spring IOC的核心源码之后,学习Spring AOP 的源码,应该可以说是水到渠成,不会有什么困难。