Fork me on GitHub
RocketMQ--消息ACK机制及消费进度管理

RocketMQ--消息ACK机制及消费进度管理

RokectMQ——水平扩展及负载均衡详解 中剖析过,consumer的每个实例是靠队列分配来决定如何消费消息的。那么消费进度具体是如何管理的,又是如何保证消息成功消费的?(RocketMQ有保证消息肯定消费成功的特性,失败则重试)? 本文将详细解析消息具体是如何ack的,又是如何保证消费肯定成功的。 由于以上工作所有的机制都实现在PushConsumer中,所以本文的原理均只适用于Rock...

Spring是如何解决循环依赖的

循环依赖就是N个类中循环嵌套引用,如果在日常开发中我们用new 对象的方式发生这种循环依赖的话程序会在运行时一直循环调用,直至内存溢出报错。下面说一下Spring是如果解决的。 首先,需要明确的是spring对循环依赖的处理有三种情况: ①构造器的循环依赖:这种依赖spring是处理不了的,直 接抛出BeanCurrentlylnCreationException异常。 ②单例模式下...

Java 14的新增功能

Java 14 reached General Availability on 17 March 2020, download Java 14 here. Java 14 features. JEP 305: Pattern Matching for instanceof (Preview) (developer feature) JEP 343: Packaging Tool (Incu...

RocketMQ--水平扩展及负载均衡详解

RocketMQ--水平扩展及负载均衡详解

RocketMQ是一个分布式具有高度可扩展性的消息中间件。本文旨在探索在broker端,生产端,以及消费端是如何做到横向扩展以及负载均衡的。 Broker端水平扩展Broker负载均衡Broker是以group为单位提供服务。一个group里面分master和slave,master和slave存储的数据一样,slave从master同步数据(同步双写或异步复制看配置)。 通过nameser...

JVM之调优

JVM之调优

JVM 调优概述性能定义 吞吐量 - 指不考虑 GC 引起的停顿时间或内存消耗,垃圾收集器能支撑应用达到的最高性能指标。 延迟 - 其度量标准是缩短由于垃圾啊收集引起的停顿时间或者完全消除因垃圾收集所引起的停顿,避免应用运行时发生抖动。 内存占用 - 垃圾收集器流畅运行所需要的内存数量。 调优原则GC 优化的两个目标: 将进入老年代的对象数量降到最低 减少 Full GC 的执行时间 ...

maven-metadata.xml使用

maven-metadata.xml使用最近在开发过程中,发现工程中的一些包有问题,主要分为以下两种: 1、最新包(版本号未变,只是被更新了)少了一个方法 2、jar包被更新了,但是无法更新最新的包下来 首先先确定一下更新包会导致更新哪些文件?下面都以a-1.0.1-snapshot.jar包为例 当你更新了a-snapshot.jar的内容,并上传到maven服务器时,会更新一个元数据文件...

Maven仓库理解和优先级

Maven仓库理解和优先级

前言使用 maven 也有一段时间了,有时候在配置 repository,mirror,profile的时候,总会导致 jar 拉取不到。所以认真的分析了 maven 获取 jar 包时候的优先级。 Maven 仓库的分类仓库分类:本地仓库和远程仓库。Maven根据坐标寻找构件的时候,它先会查看本地仓库,如果本地仓库存在构件,则直接使用;如果没有,则从远程仓库查找,找到后,下载到本地。 1)...

Hexo博客之文章置顶+置顶标签

博文置顶一种方法是手动对相关文件进行修改,具体可参考这篇文章。 另一种方法就是,目前已经有修改后支持置顶的仓库,可以直接用以下命令安装。 12$ npm uninstall hexo-generator-index --save$ npm install hexo-generator-index-pin-top --save --registry=https://registry.npm.t...