一、部署前的说明 本文根据官网资料搭建,官方网站部署文档地址:https://rocketmq.apache.org/zh/docs/4.x/deployment/01deploy 本文采用3台服务器,多节点(集群)多副
一、说明 本章节不是描述怎么搭建admin服务端和客户端,这个比较简单,本文主要记录自己在搭建过程中遇到的一个问题,用了一点时间处理。 二、背景 项目有一个数据采集的场景,有很多设备,需要采集数据到数据中心处理,这里用的java(springboot项目)写的采集数据的程序,整合了redis、roc
本次例子中,xml存储于本地, <?xml version="1.0" ?> <PCXRF_MULTI_FORMAT> <PCXRF_USER_FORMAT> <FileInfo> <DataVersion> <Major>0</Major> <Minor>0</Minor> <R
AI解释 在 Java 中,`@Slf4j` 是 Lombok 提供的一个注解,用于自动生成日志对象。它可以简化在类中创建日志对象的过程,避免了手动编写日志对象的代码。使用 @Slf4j 注解后,可以通过 log 对象来记录日志,而无需手动创建 Logger 对象。 @Slf4j 的 topic 属
线程进入WAITING状态有以下几种情况: 调用Object.wait()方法,该方法会使得当前线程进入等待状态,等待其他线程调用同一个对象的notify()或notifyAll()方法唤醒该线程。 调用Thread.join()方法,该方法会使得当前线程等待指定线程的结束,当指定线程结束时,当前线
线程调度器(Thread Scheduler)是操作系统内核中的一个重要组件,负责分配并管理处理器时间片,控制多线程程序的执行顺序。当有多个线程同时运行时,线程调度器会在这些线程之间进行切换,使得每个线程都有机会使用 CPU 资源,并实现任务的并发执行。 时间分片(Time Slicing)是指将可
Fork/Join框架是一个用于并行化执行任务的框架,它是Java 7引入的一个新特性,专门用于方便地利用多核CPU的性能优势,通过分治法的策略来将任务分解为更小的子任务,然后并行执行这些子任务,最后再合并子任务的结果。 Fork/Join框架的核心是ForkJoinPool,它是一种特殊的线程池,
CPU密集型任务:比如像加解密,压缩、计算等一系列需要大量耗费 CPU 资源的任务,大部分场景下都是纯 CPU 计算。尽量使用较小的线程池,一般为CPU核心数+1。因为CPU密集型任务使得CPU使用率很高,若开过多的线程数,会造成CPU过度切换。 IO密集型任务:比如像 MySQL 数据库、文件的读
不可变对象(Immutable object)是一种一旦创建后其状态就不能被修改的对象。在Java中,不可变对象包括String、基本类型的包装类(如Integer、Double等)等。 不可变对象对写并发有如下帮助: 线程安全:不可变对象是线程安全的,因为它们不会被其他线程修改。因此,多个线程可以
JDK8中新增了红黑树,JDK8是通过数组+链表+红黑树来实现的; JDK7中链表的插入是用的头插法,而JDK8中则改为了尾插法; JDK8中的因为使用了红黑树保证了插入和查询了效率,所以实际上JDK8中的Hash算法实现的复杂度降低了; JDK8中数组扩容的条件也发了变化,只会判断是否当前元素个数