最近接到一个需求,产品说要对一个接口做负载均衡。当时我听到这个需求的时候,我的内心是奔溃的——这接口只有一个,怎么做负载均衡,负载均衡起码得有两个才能做啊!
本文实现了一个基于 Java SPI 机制的的简单 demo,然后分析了 ServiceLoader 类基于线程上下文类加载器实现 Java SPI 的源码。
今天练习的主题是快慢指针法,对应LeetCode上的题目是第876题——链表的中间结点。
相信很多小伙伴们在日常开发学习过程中或多或少都听说过分布式事务,恰巧后端君之前在看RocketMQ源码,今天就来聊聊RocketMQ基于事务消息解决分布式事务的原理。
今天来聊聊 Java 集合框架中最常用也是面试中最常见的 HashMap,我们一起来看看关于 HashMap 的八股文到底能整出些什么花头来。
本文从一道经典面试题开始介绍了 String 的不可变性、底层结构、String 的创建流程,最后引出了另一道经典的 String、StringBuilder、StringBuffer 比较的面试题,希望能对你有所帮助。
今天是学习RocketMQ的第三天,继续来聊聊NameServer。上一篇分析了启动流程、心跳机制以及优雅停机,我们知道除了心跳机制NameServer还会接受broker的注册并提供路由管理功能,今天就来聊聊NameServer是如何进行路由管理的。
上一篇文章讲述了以RocketMQ源码的方式启动NameServer和broker进行单机部署及收发消息的流程,其实就是简单的quickstart,后端君在实际操作过之后就已经能够基于RocketMQ进行简单业务的消息传递,完成诸如异步消费收集日志这样的小功能了。
学习RocketMQ的第一天,应该从官网的QuickStart案例开始,这一节就来介绍一下如何部署单机RocketMQ以及进行消息的收发。
1. 什么是 RocketMQ RocketMQ是一个低延迟、高并发、高可用、高可靠的分布式消息中间件。