51CTO首页
AI.x社区
博客
学堂
精品班
软考社区
免费课
企业培训
鸿蒙开发者社区
信创认证
公众号矩阵
移动端
视频课
免费课
排行榜
短视频
直播课
软考学堂
全部课程
软考
信创认证
华为认证
厂商认证
IT技术
PMP项目管理
免费题库
在线学习
文章
资源
问答
课堂
专栏
直播
51CTO
鸿蒙开发者社区
51CTO技术栈
51CTO官微
51CTO学堂
51CTO博客
CTO训练营
鸿蒙开发者社区订阅号
51CTO软考
51CTO学堂APP
51CTO学堂企业版APP
鸿蒙开发者社区视频号
51CTO软考题库
鸿蒙开发者社区
首页
帖子
问答
资源
课堂
直播
发现
登录/注册
51CTO
中国优质的IT技术网站
51CTO博客
专业IT技术创作平台
51CTO学堂
IT职业在线教育平台
活动
短视频
专栏
极客Show
鸿蒙技术特刊
我的关注
全部帖子
操作系统
OpenHarmony
HarmonyOS
其他
应用开发
卡片开发
三方库
IDE
其他
设备开发
海思开发板
树莓派
其他
框架语言
C/C++
Java
JavaScript
ArkUI / eTS
其他
其他
物联网
云原生
数据库
操作系统
大数据
人工智能
开发语言
其他
社区版务
社区公告
社区生活
社区规则
意见反馈
社区活动
默认
发布时间
热度
原创
精华
热门标签
harmony
纯血
harmonyos
大厂Offer收割机:Netty处理写事件之连环四问,你能抗住吗?
见字如面,我是威哥,一个从普通二本院校毕业,从未曾接触分布式、微服务、高并发到通过技术分享实现职场蜕变,成长为RocketMQ社区优秀布道师、大厂资深架构师,出版《RocketMQ技术内幕》,欢迎大家关注「中间件兴趣圈」,设置为星标,一起交流进步。关注「中间件兴趣圈」,回复RMQPDF可获取两本电子书,浓缩了笔者千亿级消息流转集群的运维经验。该系列已分别介绍了服务端、客户端的启动流程、网络读事件处理流程,本文将重点剖析...
WilliamGates
0回复
4697浏览
Netty
构建Netty4通道的体系化思维,这些方法你应该关注
见字如面,我是威哥,一个从普通二本院校毕业,从未曾接触分布式、微服务、高并发到通过技术分享实现职场蜕变,成长为RocketMQ社区优秀布道师、大厂资深架构师,出版《RocketMQ技术内幕》一书,欢迎大家关注「中间件兴趣圈」,设置为星标,一起交流进步。关注「中间件兴趣圈」,回复RMQPDF即可获取两本电子书,浓缩了笔者千亿级消息流转经验。Netty4网络篇到目前为止即将进入收官之作,Netty4中关于事件传播机制、服务端、客户端启...
WilliamGates
0回复
3953浏览
中间件
面试官:你是如何评估一个线程池需要设置多少个线程
见字如面,我是威哥,一个从普通二本院校毕业,从未曾接触分布式、微服务、高并发到通过技术分享实现职场蜕变,成长为RocketMQ社区优秀布道师、大厂资深架构师,出版《RocketMQ技术内幕》一书,欢迎大家关注我,一起交流进步。Java并发编程是大厂第一轮面试中的高频面试题,而线程池又是其中的典型代表,本文将梳理关于线程池的工作机制,并提出灵魂之问:你对线程池的工作机制这么了解,那你在工作中是如何判断一个线程池需要创建...
WilliamGates
0回复
6482浏览
RocketMQ
为什么同样是分布式架构的Kafka需要Leader而Redis不需要
Redis不需要Leader这个观点其实有歧义,是不准确的,这个问题本质其实是涉及数据分片、数据副本一致性,接下来将为大家一一解答。1、RedisCluster架构在Redis3.0版本开始,Redis引入了一种去中心化的集群架构,采用预分片的模式,一个集群中所有节点总共对应16384个槽位,在对一个key进行写入时,首先对key取hashcode,然后求模来映射到具体的某一个节点,其部署架构如下图所示:上述每一个节点中存储的数据都不一样,即每一个...
WilliamGates
0回复
4548浏览
Redis
Kafka
队列数量变更会导致顺序消费失效,我是这样解决的...
在金融行业中,如果用户订阅了余额变更短信通知服务,当余额发生变化会收到短信通知,但收到短信的顺序必须和用户银行卡账号余额发生变化的顺序一致。这个场景是典型的顺序消费场景,在分布式架构体系中,账户余额服务与发送短信是两个不同的微服务,通常会基于MQ来实现解耦合,其时序图如下图所示:引入了MQ,那如何保证顺序呢?1、理论基础RocketMQ提供了基于分区(队列级别)顺序消费,能保证一个队列中的消息顺序投递,基于Roc...
WilliamGates
0回复
4087浏览
MQ
通过一个Kafka故障解决过程阐述架构师必须具备的架构思维
本文是Kafka系列第4篇,从问题出发,从而探讨集群分区迁移实战、底层原理以及运维时需要考虑的问题。掌握一到两门java主流中间件,是敲开BAT等大厂必备的技能,送给大家一个Java中间件学习路线,助力大家实现职场的蜕变。Java进阶之梯,成长路线与学习资料,助力突破中间件领域1、问题描述某一天突然收到开发环境Kafka报IOException(manyopenfiles),其相关的日志如下:问题是发生在公司的开发环境,为了避免信息泄露,...
WilliamGates
0回复
4528浏览
Kafka
图解Kafka消息发送者核心参数与工作机制
掌握一到两门java主流中间件,是敲开BAT等大厂必备的技能,送给大家一个Java中间件学习路线,助力大家实现职场的蜕变。java中间件进阶路线(三本电子书、12个免费专栏)本文将从KafkaProducer的配置属性为突破口,结合源码深入提炼出KafkaProducer的工作机制,方便大家更好使用KafkaProducer,并且胸有成竹的进行性能调优。将KafkaProducer相关的参数分成如下几个类型:常规参数工作原理(性能相关)参数(图解)本文会结合图...
WilliamGates
0回复
4703浏览
Kafka
线上环境大规模RocketMQ集群不停机优雅升级实践
见字如面,我是威哥,一个从普通二本院校毕业,从未曾接触分布式、微服务、高并发到通过技术分享实现职场蜕变,成长为RocketMQ社区优秀布道师、大厂资深架构师,出版《RocketMQ技术内幕》一书,欢迎大家关注「中间件兴趣圈」,设置为星标,一起交流进步。关注「中间件兴趣圈」,回复RMQPDF即可获取两本电子书,浓缩了笔者千亿级消息流转经验。接安全部门的行政要求,生产环境上百台RocketMQ机器必须在半个月内升级,必须支持ACL,...
WilliamGates
0回复
7606浏览
RocketMQ
“有的放矢”才是性能优化的正确打开方式
在Kafka消息发送端遇到性能瓶颈时是否有办法正确的评估瓶颈在哪呢?如何针对性的进行调优呢?1、Kafka消息发送端监控指标其实Kafka早就为我们考虑好了,Kafka提供了丰富的监控指标,并提供了JMX的方式来获取这些监控指标,在客户端提供的监控指标如下图所示:主要的监控指标分类如下:producermetrics消息发送端的监控指标,其子节点为该进程下所有的生产者producernodemetrics以Broker节点为维度,每一个发送方的数据指标。pro...
WilliamGates
0回复
3012浏览
Kafka
第一次尝试为Apache顶级开源项目贡献代码
本文首先先再次回到上述几篇关于公司升级ACL这个事情上来,通常涉及到服务器版本的升级,一旦涉及到版本的升级,兼容性测试是一个必不可少的工作。RocketMQ客户端版本众多,并且RocketMQ的多语言生态逐渐完善,客户端目前已支持C++、.Net、Go、Python等主流编程语言,服务端版本的升级,其兼容性如何能充分考虑现有情况呢?结合公司的实际,公司主要的技术栈以Java为主,但Python,Go等技术栈在某些部门也有使用,那如何通过技...
WilliamGates
0回复
4620浏览
RocketMQ
关于“零拷贝”原理相关的文章满天飞,但你知道如何使用零拷贝吗?
零拷贝是中间件相关面试中必考题,本文就和大家一起来总结一下NIO拷贝的原理,并结合Netty代码,从代码实现层面近距离观摩如何使用java实现零拷贝。1、零拷贝实现原理“零拷贝”其实包括两个层面的含义:拷贝一份相同的数据从一个地方移动到另外一个地方的过程,叫拷贝。零希望在IO读写过程中,CPU控制的数据拷贝到次数为0。在IO编程领域,当然是拷贝的次数越少越好,逐步优化,将其拷贝次数将为0,最大化的提高性能。那接下来...
yoursoft
0回复
4505浏览
零拷贝
知其然而知其所以然,为什么Kafka在2.8版本会“抛弃”Zookeeper
相信大家最近一定关注到一款重量级消息中间件Kafka发布了2.8版本,并且正式移除了对Zookeeper的依赖,背后的设计哲学是什么呢?仅仅只是减少了一个外部依赖吗?答案显然不会这么简单,容我慢慢道来。在解答为什么之前,我觉得非常有必要先来阐述一下Zookeeper的经典使用场景。1、Zookeeper的经典使用场景zookeeper是伴随着大数据、分布式领域的兴起。大数据中的一个非常重要的议题是如何使用众多廉价的机器来实现可靠存储。所谓...
yoursoft
0回复
8956浏览
Kafka
从实战中认识Kafka消费组
作为一个Kafka初学者,需要快速成长,承担维护公司Kafka的重任,对Kafka的学习,我按照三步走策略:阅读Kafka相关书籍从运维实战的角度学习Kafka阅读源码,体系化,精细化掌握其实现原理本文属于学习的第二阶段:[从运维实战的角度学习Kafka],本文重点介绍kafkaconsumergroups运维命令的使用,从运维、使用驱动对消费组的了解。1、Kafka消费组运维实战选项类型详细说明delete命令删除消费组,消费组删除后,其对应的消费位点也...
yoursoft
0回复
3698浏览
Kafka
7张图揭晓RocketMQ存储设计的精髓
RocketMQ作为一款基于磁盘存储的中间件,具有无限积压能力,并提供高吞吐、低延迟的服务能力,其最核心的部分必然是它优雅的存储设计。温馨提示:本文节选自新上市《RocketMQ技术内幕》第二版本,一个最大的改变就是在进入源码分析之前,首先通过图文的方式,提炼出RocketMQ的核心工作机制,降低源码阅读的难度,引发思考。1、存储概述RocketMQ存储的文件主要包括Commitlog文件、ConsumeQueue文件、Index文件。RocketMQ将所有主...
yoursoft
0回复
4369浏览
RocketMQ
(架构实战)你的RocketMQ集群是安全的吗?
RocketMQ是一款非常优秀的主流中间件,本文是RocketMQ系列的第52篇文章,重点阐述笔者在公司升级RocketMQ集群并开启ACL的真实经历,并且遇到的一些问题及其解决方案,实战性非常强。1、ACL机制的重要性某一天突然接到安全团队的通知,公司内网部署的RocketMQ集群安全性非常低,需要立马整改。接到安全团队的通知,马上开启了复盘,公司内部的RocketMQ集群还是基于RocketMQ4.1搭建的,存在重大安全隐患,因为生产环境的任意一台...
yoursoft
0回复
5468浏览
RocketMQ
生产环境出现网络分区,RocketMQ集群表示毫无压力!!!
一个粉丝朋友在咨询这个问题,我觉得这问题一句话两句话也说不完,答应周末赶一篇文章来重点分析一下。之所以需要详细阐述,这里不仅仅涉及具体的工作机制,更是能体现背后的设计理念,请容我慢慢道来。1、RocketMQ路由注册机制与缺陷RocketMQ的路由注册机制如下:Broker每30s向NameServer发送心跳包,心跳包中包含主题的路由信息(主题的读写队列数、操作权限等),NameServer会通过HashMap更新Topic的路由信息,并记录最后一...
yoursoft
0回复
4194浏览
RocketMQ
性能调优篇:困扰我许久的RocketMQ timeout exception终于破解了
在内网环境中,超时问题,网络表示这个锅我不背。笔者对于超时的理解,随着在工作中不断实践,其理解也越来越深刻,RocketMQ在生产环境遇到的超时问题,已经困扰了我将近半年,现在终于取得了比较好的成果,和大家来做一个分享。本次技术分享,由于涉及到网络等诸多笔者不太熟悉的领域,如果存在错误,请大家及时纠正,实现共同成长与进步。1、网络超时现象时不时总是接到项目组反馈说生产环境MQ发送超时,客户端相关的日志截图...
yoursoft
0回复
8579浏览
RocketMQ
问题排查|为啥RocketMQ广播消费每次启动都会从头开始消费?
1、现象最近听到有项目反馈,使用公司内部封装的消息sdk,在使用RocketMQ广播消费时,每一次版本发布,消费者重启后,都会从最早位点开始消费,造成严重的消息消费积压,不仅对消息服务的负载产生极大影响,也会让发版本后消息出来不及时。那这是什么原因引起的呢?2、问题排查熟悉RocketMQ的小伙伴应该知道,消费组在重启时优先会去查询上一次的消费位点,只要能查询到有效的位点,则会从查询到的位点开始消费,如果查询不到有...
WilliamGates
0回复
9818浏览
RocketMQ
案例分享|生产环境MQ集群一个非常诡异的消费延迟排查
1、问题现象某一天,项目组一个同事向我反馈,他们使用公司的数据同步产品将MySQL数据同步到MQ集群,然后使用消费者将数据再同步到ES,反馈数据同步延迟严重,但对应的消费组确没有积压,但最近最近几分钟的数据都没有同步过来。那问题来了,消费端没有消费积压,而且通过查看数据同步平台该通过任务的同步状态,同样显示没有积压,那是为什么呢?遇到这个问题,我们应该冷静下来,分析一下其大概的数据流向图,梳理后如下图所...
WilliamGates
0回复
4499浏览
MQ集群
万字长文解析kafka分区工作机制(上篇)
Kafka的消息发送与消息消费与分区关联密切,我们从这篇文章开始讲点学习分区相关的知识,本篇文章将重点介绍分区内部的工作机制,即分区状态机运转机制。1、Kafka分区状态Kafka内部分区的运转机制具体实现为PartitionStateMachine,从这个类的注释上来看可以得知Kafka分区的状态共有四个,它们分别是:NonExistentPartition表示分区不存在,通常是该分区从未创建过或者创建后被删除。NewPartition分区已创建,即分配完成了副本...
WilliamGates
0回复
4482浏览
kafka
暂无内容
1
82
83
84
85
86
87
88
89
90
156
精选
客服
订阅鸿蒙技术特刊,精选内容抢先看
微信扫码关注,即刻订阅