时序图
2019-06-25 09:57:05 0 举报
jafka的时序图
作者其他创作
大纲/内容
LogSegment
message长度+2
返回offset
topic长度
偏移量获取返回消息体
删除主题处理器
FetchHandler
getChildrenParentMayNotExist()删除主题(topic、topicpath)
解析出请请求类型(requestTypeId)
CreaterRequest
readFrom(ByteBuffer)
short
deleteLogs()删除主题信息(topic、password)
通过channel写入文件
maxSize
LogManager
getOffsets(Request)
返回消息体(FileMessageSet)
参数(topic、partition、offset、maxsize)
string
删除主题请求体
DeleterHandler
注册服务
message
offset列表长度
获取文件管理器的文件最大offset
打开文件channel
日志处理器
通过FileChannel将消息写入磁盘文件
content
主题任务队列
参数(topic、partition)
删除文件(file)
LinkedBlockingQueue
add(task)take(task)
FileMessageSet
创建主题处理器
偏移量获取
删除
4+4
请求体(bytebuffer)
header
获取日志文件实例对象(topic、partition)
文件分片处理器
进程管理器
返回消息(IntegersSend)
password
文件管理器
content
密码长度
partition
删除主题
写入最后一个分片处理器(messageSet)
topic
highWaterMark()
BlockingQueue
add(SocketChannel)poll()attach(Send)
zkClient
写入消息(messageSet)
requestTypeid
createLogs(topic、partition、enlarge)
Acceptor
日志文件实例对象
将返回消息加入到队列并设置写准备
读取消息处理器
返回消息(MessageSetSend)
返回日志文件实例对象
消息接收器
错误码
返回文件channel
processTask()通知注册服务删除主题(task)
返回日志文件实例
partiotion
add()将删除任务加入任务队列(task)
Pool
get(topic)
deleteLogs(topic、password)
磁盘
start()
long
byte
获取(topic、partition)
4+4+2
头两字节读出requestTypeId
offset列表
获取所有文件分片
tcp
返回全部文件分片的offset
4+offset列表长度*8+2
创建文件管理器(dirpath)
offset
task
参数(topic、partition、enlarge)
获取对应实例对象的offset(topic、partition、time)
channal读取请求消息(bytebuffer)
Log
创建/扩充任务
通过channel读取消息
创建主题请求体
getLog(topic、partition)
int
创建主题
返回删除的实例数量
消息长度
不存在则创建
根据offset找到对应的文件分片(offset)
读取消息(offset、maxsize)
Processor
accept(SocketChannel)write(SelectionKey)
ServerRegister
processTask(task)
请求处理
日志文件实例池
mapper()解析出请请求类型(requestTypeId)
偏移量处理器
返回(task)
OffsetsHandler
创建文件分片处理器(topic、partition、dirpath、FileMessageSet)
生产消息请求体
创建主题返回消息
lastModified
密码验证权限(password)
OffsetRequest
获取channel并设置为读准备
生产消息处理器
读取消息请求体
删除实例数量
take()读取任务队列任务
enlarge
返回消息(send)
accept()建立连接(selectkey)
返回全部文件分片的offset列表
RequestHandlers
mapping(RequestKeys,Receive)
Authentication
auth(password)
找到对应主题的日志文件实例(topic)
消息处理
返回删除实例数量
channel队列
messageSetSize
读取任务队列任务
读取消息
zk客户端
ProducerHandler
不存在则将创建topic信息加入队列(topic、partition)
生产消息
get(topic,partition)
ProducerRequest
前两字节读出requestTypeId
返回(boolean)
找到分片处理器的文件管理器
返回分片处理器
channel添加到队列(channel)
时序图
返回(partition)
读取文件的lastModified
kafka客户端
删除主题返回消息体
返回消息(OffsetArraySend)
偏移量获取请求体
创建/扩充主题(topic、partition)
创建/扩充topic信息加入队列(topic、partition、enlarge)
获取时间点以前的偏移量(topic、partition、time)
获取队列中的channel
header
四字节的(4+offset列表长度*8+2)加上两字节的错误码组成header,四字节的offset列表长度加上offset列表中的offset以八字节长度写入组成content
getOrCreateLog()参数(topic、partition、message)
返回文件管理器(FileMessageSet)
参数(topic、password)
参数(topic、partition、time、maxNumOffsets)
getOrCreateLog(topic、partition)
将消息写回channel
get()
认证
getOffsetsBefore(offsetRequest)
delete(path)
读取消息返回消息体
日志文件实例池移除文件实例并返回
两字节读出主题长度,再根据主题长度读出主题,后两字节读出password长度,根据password长度读出password
0 条评论
下一页