背景 Java线程:由开始的单线程,到通过new Thread()创建的多线程,再到现如今的线程池,Java多线程编程的效率和性能有了很大的提升 Reactor模型:基于事件驱动,适合处理 ...
rocketmq底层网络使用的netty框架,类图如下 RecketMQ通信模块的顶层结构是RemotingServer和RemotingClient,分别对应通信的服务端和客户端 首先看看RemotingServer RemotingServer RemotingServer类中比较重要的是:localListenPort registerProcessor和registerDefaultPro ...
2018-12-02 22:21 0 1034 推荐指数:
背景 Java线程:由开始的单线程,到通过new Thread()创建的多线程,再到现如今的线程池,Java多线程编程的效率和性能有了很大的提升 Reactor模型:基于事件驱动,适合处理 ...
前言 上一节(堆外内存与零拷贝)当中我们从jvm堆内存的视角解释了一波零拷贝原理,但是仅仅这样还是不够的。 为了彻底搞懂零拷贝,我们趁热打铁,接着上一节来继续讲解零拷贝的底层原理。 感受一下NIO的速度 之前的章节中我们说过,Nio并不能解决网络传输的速度。但是为什么很多人却说Nio的速度 ...
本文通过具体的设计思路来加深对快照的理解,如有错误,欢迎指出 基于CoFW的设计 工作流程 文件系统初始数据如下图 文件系统映射表保存着数据和保存地址的对应关系,当上层要更改A0时,会寻址到逻辑地址0进行接下来的操作 准备一个IO仓库用来存放变化的IO ...
读完这一章,我们基本上可以了解到Netty所有重要的组件,对Netty有一个全面的认识,这对下一步深入学习Netty是十分重要的,而学完这一章,我们其实已经可以用Netty解决一些常规的问题了。 一、先纵览一下Netty,看看Netty都有哪些组件? 为了更好 ...
Channel、EventLoop 和 ChannelFuture 这一节将对 Channel、EventLoop 和 ChannelFuture 类进行讨论,它们组合在一起,可以被认为是 Netty 网络抽象的代表: Channel —— Socket EventLoop ...
前言 看了我们之前的文章,相信小伙伴们对RocketMQ已经有了一个初步的了解,那么今天我们就来聊一聊具体如何来设计一套高可用的生产部署架构。 在聊如何设计这套架构的同时,我们再补充一些之前没提到的知识。好了,那我们现在开始吧。 NameServer的部署 ...
@ 目录 1、消息轨迹数据格式 2、记录消息轨迹 3、如何存储消息轨迹数据 RocketMQ消息轨迹主要包含两篇文章:设计篇与源码分析篇,本节将详细介绍RocketMQ消息轨迹-设计相关。 RocketMQ消息轨迹,主要跟踪消息发送、消息消费的轨迹,即详细 ...
对于很多设备之间的通信,经常需要自己设计一套通信协议。当然此处的通信协议一般都是建立在TCPIP协议等协议基础之上的协议,也就是在已有协议的基础之上,在定义一套协议。例如:有一套检测降雨量的设备(一般为简单的嵌入式设备)需要把采集到的的数据上报给中心服务器(一般为一台性能特别好的计算机)。就需要 ...