上一页 1 2 3 4 5 6 7 8 9 ··· 16 下一页
摘要: 一、概述 负责生产消息,一般由业务系统负责生产消息。一个消息生产者会把业务应用系统里产生的消息发送到broker服务器。 RocketMQ支持三种消息发送方式: 同步消息发送(sync):当Producer发送消息到Broker时会同步等待消息处理结果; 异步消息发送(async):当Produce 阅读全文
posted @ 2023-05-06 18:53 夏尔_717 阅读(417) 评论(0) 推荐(0)
摘要: 前言 RocketMQ是一个分布式具有高度可扩展性的消息中间件。本文旨在探索在broker端,生产端,以及消费端是如何做到横向扩展以及负载均衡的。 NameServer集群 提供轻量级的服务发现和路由。每个NameServer 记录完整的路由信息,提供等效的读写服务,并支持快速存储扩展。 就是一个注 阅读全文
posted @ 2023-05-06 18:53 夏尔_717 阅读(465) 评论(0) 推荐(0)
摘要: 前言 首先提出我们的监控诉求,出现如下情况时,希望能够及时接收到系统告警通知: RocketMQ服务宕机 RocketMQ消费者下线 RocketMQ消息出现长时间或者大量堆积 本文将通过修改rocketmq-console源码的方式,增加RocketMQ消费者下线和RocketMQ消息出现长时间或 阅读全文
posted @ 2023-05-06 18:53 夏尔_717 阅读(1154) 评论(0) 推荐(0)
摘要: 一、概述 对于任何一款消息中间件而言,消费者客户端一般有两种方式从消息中间件获取消息并消费: Push方式:由消息中间件(MQ消息服务器代理)主动地将消息推送给消费者;采用Push方式,可以尽可能实时地将消息发送给消费者进行消费。但是,在消费者的处理消息的能力较弱的时候(比如,消费者端的业务系统处理 阅读全文
posted @ 2023-05-06 18:53 夏尔_717 阅读(461) 评论(0) 推荐(0)
摘要: 一、概述 Apache RocketMQ在4.3.0版中已经支持分布式事务消息,通过消息的异步事务,可以保证本地事务和消息发送同时执行成功或失败,从而保证了数据的最终一致性。 二、案例 根据官方提供的例子,TransactionProducer.java如下: public class Transa 阅读全文
posted @ 2023-05-06 18:52 夏尔_717 阅读(1074) 评论(0) 推荐(0)
摘要: 一、概述 Producer对发送失败的消息进行重新发送的机制,称为消息发送重试机制,也称为消息重投机制。 对于消息重投,需要注意以下几点: 生产者在发送消息时,若采用同步或异步发送方式,发送失败会重试,但oneway消息发送方式发送失败是没有重试机制的; 只有普通消息具有发送重试机制,顺序消息是没有 阅读全文
posted @ 2023-05-06 13:50 夏尔_717 阅读(2371) 评论(0) 推荐(0)
摘要: 一、概述 消息轨迹是用来跟踪记录消息发送、消息消费的轨迹。 如何启用消息轨迹? broker端 需要在broker端的配置文件中添加配置项:traceTopicEnable=true,注意:对于消息轨迹数据量较大的场景,可以在RocketMQ集群中选择其中一个Broker节点专用于存储消息轨迹,使得 阅读全文
posted @ 2023-05-06 13:49 夏尔_717 阅读(543) 评论(0) 推荐(0)
摘要: 一、概述 RocketMQ消息队列集群主要包括NameServer、Broker(Master/Slave)、Producer、Consumer4个角色,基本通讯流程如下: Broker启动后需要完成一次将自己注册至NameServer的操作;随后每隔30s时间定时向NameServer上报Topi 阅读全文
posted @ 2023-05-06 13:49 夏尔_717 阅读(422) 评论(0) 推荐(0)
摘要: 一、概述 消息持久化存储是MQ消息队列中最为复杂和最为重要的一部分,本文先从目前几种比较常用的MQ消息队列存储方式出发,为大家介绍RocketMQ选择磁盘文件存储的原因。然后,本文分别从RocketMQ的消息存储整体架构和RocketMQ文件存储模型层次结构两方面进行深入分析介绍。使得大家读完本文后 阅读全文
posted @ 2023-05-05 19:05 夏尔_717 阅读(3309) 评论(0) 推荐(0)
摘要: 一、概述 一般而言JDK8按照默认情况下,new Object()一个对象占多少内存空间? 答案是16字节——但这个数字并非凭空而来,而是由HotSpot虚拟机规定的「对象内存布局」决定的。 在HotSpot中,所有Java对象(包括普通对象和数组对象)的内存布局统一分为三部分: 对象头(Heade 阅读全文
posted @ 2023-04-26 22:21 夏尔_717 阅读(436) 评论(1) 推荐(0)
摘要: 一、简述 dynamic-tp是一个轻量级的动态线程池插件,它是一个基于配置中心的动态线程池,线程池的参数可以通过配置中心配置进行动态的修改,目前支持的配置中心有Apollo,Nacos和Zookeeper,同时dynamic-tp支持线程池的监控和报警,具体特性如下: 基于Spring框架,现只支 阅读全文
posted @ 2023-04-21 16:34 夏尔_717 阅读(2126) 评论(0) 推荐(0)
摘要: # 一、概述 高并发场景中,调用批量接口相比调用非批量接口有更大的性能优势。但有时候,请求更多的是单个接口,不能够直接调用批量接口,如果这个接口是高频接口,对其做请求合并就很有必要了。比如电影网站的获取电影详情接口,`APP`的一次请求是单个接口调用,用户量少的时候请求也不多,完全没问题;但同一时刻 阅读全文
posted @ 2023-04-19 18:38 夏尔_717 阅读(1805) 评论(0) 推荐(0)
摘要: 一、RMI 1.1 概念 RMI是用Java在JDK1.2中实现的,它大大增强了Java开发分布式应用的能力,Java本身对RMI规范的实现默认使用的是JRMP协议。而在Weblogic中对RMI规范的实现使用T3协议 JRMP:Java Remote Message Protocol,Java远程 阅读全文
posted @ 2023-04-10 18:12 夏尔_717 阅读(543) 评论(0) 推荐(0)
摘要: 一、前言 Spring基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。 例如没有SpringBoot的 阅读全文
posted @ 2023-04-06 15:16 夏尔_717 阅读(487) 评论(0) 推荐(0)
摘要: 一、B树 在1970年,Bayer&McCreight发表的论文《ORGANIZATION AND MAINTENANCE OF LARGE ORDERED INDICES》(大型有序索引的组织和维护)中提出了一种新的数据结构来维护大型索引,这种数据结构在论文中称为B-Tree。 1.1 B树的定义 阅读全文
posted @ 2023-03-16 13:39 夏尔_717 阅读(645) 评论(1) 推荐(0)
摘要: 一、概述 Stack是栈。它的特性是:先进后出(FILO, First In Last Out)。 java工具包中的Stack是继承于Vector(矢量队列)的,由于Vector是通过数组实现的,这就意味着,Stack也是通过数组实现的,而非链表。当然,我们也可以将LinkedList当作栈来使用 阅读全文
posted @ 2023-03-15 11:45 夏尔_717 阅读(270) 评论(0) 推荐(0)
摘要: 一、概述 Hashtable是一个比较古老的Map实现类,从它的名称就可以看得出来,因为没有遵循Java的语言规范。它和HashMap很像,同属于散列表,有以下特性: 线程安全,这也估计算是唯一一个优于HashMap的特性了吧; Hashtable不允许key或者value为null; 自从JDK1 阅读全文
posted @ 2023-03-14 17:39 夏尔_717 阅读(314) 评论(0) 推荐(0)
摘要: 一、JVM层 在java.util.concurrent包下面的很多类为了追求性能都采用了sun.misc.Unsafe类中的CAS操作,从而避免使用synchronized等加锁方式带来性能上的不足。 在sun.misc.Unsafe中CAS方法如下: /** * CAS * @param o 包 阅读全文
posted @ 2023-02-28 23:06 夏尔_717 阅读(453) 评论(0) 推荐(0)
摘要: 一、概述 理论上Object类是所有类的父类,即直接或间接的继承java.lang.Object类。由于所有的类都继承在Object类,因此省略了extends Object关键字。 Object类属于java.lang包,此包下的所有类在使用时无需手动导入,系统会在程序编译期间自动导入。Objec 阅读全文
posted @ 2023-02-22 16:51 夏尔_717 阅读(339) 评论(0) 推荐(0)
摘要: 一、概述 Collections工具类提供了大量针对Collection和Map的操作,都为静态(static)方法,总体可分为四类: 排序操作 查找、替换操作 同步控制 设置不可变(只读)集合 二、排序操作 Collections提供以下方法对List进行排序操作: void reverse(Li 阅读全文
posted @ 2023-02-17 16:42 夏尔_717 阅读(338) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 ··· 16 下一页