一,基础API操作
新建mavn项目导入jar包:
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.7.1</version>
</dependency>
新建mavn项目导入jar包:
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.7.1</version>
</dependency>
在一个空Maven项目中,新增xxxx-spring-boot-starter和xxxx-spring-boot-autoconfigure两个模块,xxxx是你这个starter是做什么的,模块xxxx-spring-boot-starter主要是作依赖管理,外界使用我们自定义的starter只需要导入我们xxxx-spring-boot-starter模块即可。自定义的xxxx-spring-boot-autoconfigure模块,是我们编写自动注入的地方,需要引入了Spring的spring-boot-starter模块,这个模块在创建SpringBoot项目的时候会自动引入的,也是必须引入的,通过加载META-INF文件夹下的spring.factories文件完成自动配置的功能以及开箱即用的效果。
HashTable容器在竞争激烈的并发环境下表现出效率低下的原因,是因为所有访问HashTable的线程都必须竞争同一把锁,那假如容器里有多把锁,每一把锁用于锁容器其中一部分数据,那么当多线程访问容器里不同数据段的数据时,线程间就不会存在锁竞争,从而可以有效的提高并发访问效率,这就是ConcurrentHashMap所使用的锁分段技术,首先将数据分成一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问。有些方法需要跨段,比如size()和containsValue(),它们可能需要锁定整个表而而不仅仅是某个段,这需要按顺序锁定所有段,操作完毕后,又按顺序释放所有段的锁。这里“按顺序”是很重要的,否则极有可能出现死锁,在ConcurrentHashMap内部,段数组是final的,并且其成员变量实际上也是final的,但是,仅仅是将数组声明为final的并不保证数组成员也是final的,这需要实现上的保证。这可以确保不会出现死锁,因为获得锁的顺序是固定的。JDK1.8的实现已经抛弃了Segment分段锁机制,利用CAS+Synchronized来保证并发更新的安全。
所谓的循环依赖是指,A 依赖 B,B 又依赖 A,它们之间形成了循环依赖。
@Component
public class A {
@Autowired
private B b;
}
第一步:检查内核版本,必须是3.10及以上
[root@VM-4-7-centos ~]# uname -r
3.10.0-1160.99.1.el7.x86_64
第一步:引入Spring整合RabbitMQ的jar包:
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
<version>2.1.8.RELEASE</version>
</dependency>
会签的意思是,在流程任务管理中,任务通常是由一个人或者多个人同时去处理的,这种任务叫做会签任务
Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道:

七款经典的垃圾收集器:
| 收集器 | 串行、并行or并发 | 新生代/老年代 | 算法 | 目标 | 适用场景 |
|---|---|---|---|---|---|
| Serial | 串行 | 新生代 | 复制算法 | 响应速度优先 | 单CPU环境下的Client模式 |
| Serial Old | 串行 | 老年代 | 标记-整理 | 响应速度优先 | 单CPU环境下的Client模式、CMS的后备预案 |
| ParNew | 并行 | 新生代 | 复制算法 | 响应速度优先 | 多CPU环境时在Server模式下与CMS配合 |
| Parallel Scavenge | 并行 | 新生代 | 复制算法 | 吞吐量优先 | 在后台运算而不需要太多交互的任务 |
| Parallel Old | 并行 | 老年代 | 标记-整理 | 吞吐量优先 | 在后台运算而不需要太多交互的任务 |
| CMS | 并发 | 老年代 | 标记-清除 | 响应速度优先 | 集中在互联网站或B/S系统服务端上的Java应用 |
| G1 | 并发 | both | 标记-整理+复制算法 | 响应速度优先 | 面向服务端应用,将来替换CMS |
拉取镜像
docker pull rocketmqinc/rocketmq