码迷,mamicode.com
首页 > 其他好文 > 详细

Kafka(二) —— 设计原理

时间:2019-11-14 10:13:14      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:broker   pre   原理   ESS   大小   mic   要求   produce   sso   

broker端设计架构

消息设计


/**
 * 消息类
 *
 * @author Michael Fang
 * @since 2019-11-14
 */
public class Message implements Serializable{
    // 2字节
    private short magic;
    // 2字节
    private short codecKlassOrdinal;
    // 1字节
    private boolean codecEnabled;
    // 4字节    
    private CRC32 crc;
    // 4字节
    private String key;
    // 4字节
    private String value;

}


一个普通的Kafka消息对象有多大

这个Message对象被创建好实际的大小是多少?

JMM要求Java对象必须按照8Byte对齐,未对齐的部分会填充空白字节进行补齐。

外加64位JVM对象头通常由两个8Byte的word组成。

所以大小 = 16byte(对象头) + 2 + 2 + 1 + 4 + 4 + 4 +7(补充字节) = 40byte。

一个普通的Kafka消息对象就要40KB的内存空间,显然是比较大的,其中7个字节被浪费掉。

producer端设计架构

consumer端设计架构

Kafka(二) —— 设计原理

标签:broker   pre   原理   ESS   大小   mic   要求   produce   sso   

原文地址:https://www.cnblogs.com/fonxian/p/11854410.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!