Java学习-RocketMq&netty&Rpc
2025-07-05 11:46:38 0 举报
java中间件学习
作者其他创作
大纲/内容
rpc调用
Consumer2
Consumer0
Netty
Pipeline
解决两个问题
远程主机
查对应的词条
Broker2
用户空间
cilent和Server建立连接后,netty会在socketChannel中生成一个pipeline通道,里面会有很多的handler,client和server之间通过socketchannel发送数据都会经过这些handler。对于server端而言。往客户端发送数据叫做出站事件,从客户端接收数据叫做入站事件。 入站时:数据是从头handler流向tailhandler,中间只会经历inHandler类型的处理出站时:数据是从tail 流向head,中间指挥经历outHandler类型处理
数据链路层
服务
问题1:数据格式
server1: @Service(version=\"async\
RPC协议
helloelasticsearch
线程:用户态
Server
具体实现框架
排序
网络层
分词
定义数据格式
ES
Client
主机
RPC协议抽象在应用层之上
ConsumerGroup0
使用tomcat通信
Topic和Broker,消费者组三者之间对应关系
磁盘
dubbo协议
文件零拷贝
http通讯
问题2:数据如何传输
分区queue1
dubbo-spi
根据index查索引库
Consumer1
进程:方法实现
传输层:tcp
2.使用dubbo的spi机制加载不同协议的实现
ID
World
Index
1
hello
2
world
3
elasticsearch
4
what
5
is
通过网络调用
分区queue2
tailHandler
内核空间
缓冲区
headHandler
浏览器
Broker1
http协议数据格式
支持http协议
http协议
ES查找过程
查找的词条hello elasticsearch
应用层:http
ES存储过程
物理层
业务Handler
socketchannel
作用,支持远程调用
使用netty通信
dubbo
支持dubbo协议
分区queue0
ConsumerGroup1
线程:内核态
进程:接口
索引库hello worldhello elasticsearchwhat is elasticsearch
共享空间
Rockemq
Dubbo框架
配置文件#dubbo.protocols.p1.id=dubbo1#dubbo.pro tocols.p1.name=dubbo#dubbo.protocols.p1.port=20881#dubbo.protocols.p1.host=0.0.0.0##dubbo.protocols.p2.id=rest#dubbo.protocols.p2.name=rest#dubbo.protocols.p2.port=20882#dubbo.protocols.p2.host=0.0.0.0#
rest协议
6
7
所处的位置
Topic1
SocketChannel
spi机制,加载不同的协议实现类
去重
Broker0
0 条评论
下一页