上一页 1 2 3 4 5 6 ··· 13 下一页
摘要: 一、概述 对于任何一款消息中间件而言,消费者客户端一般有两种方式从消息中间件获取消息并消费: Push方式:由消息中间件(MQ消息服务器代理)主动地将消息推送给消费者;采用Push方式,可以尽可能实时地将消息发送给消费者进行消费。但是,在消费者的处理消息的能力较弱的时候(比如,消费者端的业务系统处理 阅读全文
posted @ 2023-05-06 18:53 夏尔_717 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 一、概述 Apache RocketMQ在4.3.0版中已经支持分布式事务消息,通过消息的异步事务,可以保证本地事务和消息发送同时执行成功或失败,从而保证了数据的最终一致性。 二、案例 根据官方提供的例子,TransactionProducer.java如下: public class Transa 阅读全文
posted @ 2023-05-06 18:52 夏尔_717 阅读(623) 评论(0) 推荐(0) 编辑
摘要: 一、概述 Producer对发送失败的消息进行重新发送的机制,称为消息发送重试机制,也称为消息重投机制。 对于消息重投,需要注意以下几点: 生产者在发送消息时,若采用同步或异步发送方式,发送失败会重试,但oneway消息发送方式发送失败是没有重试机制的; 只有普通消息具有发送重试机制,顺序消息是没有 阅读全文
posted @ 2023-05-06 13:50 夏尔_717 阅读(1746) 评论(0) 推荐(0) 编辑
摘要: 一、概述 消息轨迹是用来跟踪记录消息发送、消息消费的轨迹。 如何启用消息轨迹? broker端 需要在broker端的配置文件中添加配置项:traceTopicEnable=true,注意:对于消息轨迹数据量较大的场景,可以在RocketMQ集群中选择其中一个Broker节点专用于存储消息轨迹,使得 阅读全文
posted @ 2023-05-06 13:49 夏尔_717 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 一、概述 RocketMQ消息队列集群主要包括NameServer、Broker(Master/Slave)、Producer、Consumer4个角色,基本通讯流程如下: Broker启动后需要完成一次将自己注册至NameServer的操作;随后每隔30s时间定时向NameServer上报Topi 阅读全文
posted @ 2023-05-06 13:49 夏尔_717 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 一、概述 消息持久化存储是MQ消息队列中最为复杂和最为重要的一部分,本文先从目前几种比较常用的MQ消息队列存储方式出发,为大家介绍RocketMQ选择磁盘文件存储的原因。然后,本文分别从RocketMQ的消息存储整体架构和RocketMQ文件存储模型层次结构两方面进行深入分析介绍。使得大家读完本文后 阅读全文
posted @ 2023-05-05 19:05 夏尔_717 阅读(2291) 评论(0) 推荐(0) 编辑
摘要: 一、对象在堆内存中布局 Object object = new Object() 一般而言JDK8按照默认情况下,new一个对象占多少内存空间? 在HotSpot虚拟机里,对象在堆内存中的存储布局可以划分为三个部分:对象头(Header)、实例数据(Instance Data)和对齐填充(Paddi 阅读全文
posted @ 2023-04-26 22:21 夏尔_717 阅读(117) 评论(1) 推荐(0) 编辑
摘要: 一、简述 dynamic-tp是一个轻量级的动态线程池插件,它是一个基于配置中心的动态线程池,线程池的参数可以通过配置中心配置进行动态的修改,目前支持的配置中心有Apollo,Nacos和Zookeeper,同时dynamic-tp支持线程池的监控和报警,具体特性如下: 基于Spring框架,现只支 阅读全文
posted @ 2023-04-21 16:34 夏尔_717 阅读(1152) 评论(0) 推荐(0) 编辑
摘要: # 一、概述 高并发场景中,调用批量接口相比调用非批量接口有更大的性能优势。但有时候,请求更多的是单个接口,不能够直接调用批量接口,如果这个接口是高频接口,对其做请求合并就很有必要了。比如电影网站的获取电影详情接口,`APP`的一次请求是单个接口调用,用户量少的时候请求也不多,完全没问题;但同一时刻 阅读全文
posted @ 2023-04-19 18:38 夏尔_717 阅读(907) 评论(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 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 一、前言 Spring基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。 例如没有SpringBoot的 阅读全文
posted @ 2023-04-06 15:16 夏尔_717 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 简介:本文主要介绍了B树和B+树的插入、删除操作。 一、B树 在1970年,Bayer&McCreight发表的论文《ORGANIZATION AND MAINTENANCE OF LARGE ORDERED INDICES 》(大型有序索引的组织和维护)中提出了一种新的数据结构来维护大型索引,这种 阅读全文
posted @ 2023-03-16 13:38 夏尔_717 阅读(207) 评论(1) 推荐(0) 编辑
摘要: 一、概述 Stack是栈。它的特性是:先进后出(FILO, First In Last Out)。 java工具包中的Stack是继承于Vector(矢量队列)的,由于Vector是通过数组实现的,这就意味着,Stack也是通过数组实现的,而非链表。当然,我们也可以将LinkedList当作栈来使用 阅读全文
posted @ 2023-03-15 11:45 夏尔_717 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 一、概述 Hashtable是一个比较古老的Map实现类,从它的名称就可以看得出来,因为没有遵循Java的语言规范。它和HashMap很像,同属于散列表,有以下特性: 线程安全,这也估计算是唯一一个优于HashMap的特性了吧; Hashtable不允许key或者value为null; 自从JDK1 阅读全文
posted @ 2023-03-14 17:39 夏尔_717 阅读(38) 评论(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 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 一、概述 理论上Object类是所有类的父类,即直接或间接的继承java.lang.Object类。由于所有的类都继承在Object类,因此省略了extends Object关键字。 Object类属于java.lang包,此包下的所有类在使用时无需手动导入,系统会在程序编译期间自动导入。Objec 阅读全文
posted @ 2023-02-22 16:51 夏尔_717 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 一、概述 Collections工具类提供了大量针对Collection和Map的操作,都为静态(static)方法,总体可分为四类: 排序操作 查找、替换操作 同步控制 设置不可变(只读)集合 二、排序操作 Collections提供以下方法对List进行排序操作: void reverse(Li 阅读全文
posted @ 2023-02-17 16:42 夏尔_717 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 一、概述 String类的一个最大特性是不可修改性,而导致其不可修改的原因是在String内部定义了一个常量数组,因此每次对字符串的操作实际上都会另外分配分配一个新的常量数组空间。 二、创建字符串对象的方式 2.1 四种方式 方式一:直接赋值(常用) // 直接赋值方式创建对象是在方法区的常量池 S 阅读全文
posted @ 2023-02-09 18:58 夏尔_717 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 一、概述 SPI(Service Provider Interface),是JDK内置的一种服务注册与发现的机制,通过解耦服务提供者与服务使用者,实现了服务创建 & 服务使用的关注点分离。用来启用框架扩展和替换组件,这一机制为很多框架扩展提供了可能,比如在Dubbo、JDBC中都使用到了SPI机制。 阅读全文
posted @ 2023-02-02 14:00 夏尔_717 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 一、多线程概述 1.1 进程和线程概述 进程:操作系统中的应用程序,一个进程就是一个应用程序。进程A和进程B的内存独立不共享资源。 线程:CPU调度的最小单元,进程的一个执行流/指定单元,一个进程可以有多个线程。 PS:Java程序启动的时候,JVM就是一个进程,JVM会执行main方法,main方 阅读全文
posted @ 2023-01-05 21:51 夏尔_717 阅读(62) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 13 下一页