零拷贝
什么是零拷贝?
所谓零拷贝就是避免数据在内核空间缓冲区和用户空间缓冲区之间的复制,避免CPU拷贝对CPU资源的消耗。
零拷贝的两种实现方式:
- mmap + write方式
优点:即使频繁调用,使用小块文件传输,效率也很高。
缺点:不能很好的利用DMA方式,会比sendfile多消耗 CPU,内存安全性控制复杂,需要避免JVM Crash问题。 sendfile方式
什么是零拷贝?
所谓零拷贝就是避免数据在内核空间缓冲区和用户空间缓冲区之间的复制,避免CPU拷贝对CPU资源的消耗。
零拷贝的两种实现方式:
sendfile方式
本文主要介绍如何部署支持自动主从切换的RocketMQ集群,主要是增加支持自动主从切换的Controller组件,其可以独立部署也可以内嵌在NameServer中。
RocketMQ消息存储默认路径:${user.home}\store\
消息存储结构包括:
刷盘策略:同步刷盘/异步刷盘(指节点自身消息持久化是同步还是异步写入磁盘)
主从同步方式:同步双写/异步复制(指同一组主从节点之间数据的同步)
使用二阶段提交,半事务消息和事务回查来解决上下游数据的一致性。
在一些对数据一致性有强需求的场景,可以使用RocketMQ事务消息来解决,从而保证上下游数据的一致性。
例如,A系统 --> RocketMQ --> B系统,如何保持A、B系统分布式事务的一致性?