vertx源码_聊聊vertx

看了一周vertx,对一些概念还是有些模糊。源码也看了一部分,先记录一下吧。

vertx主要的两大功能,1,web 2, 集群(类似RPC框架)

web

web主要基于netty实现。下面模型即经典的reactor模型。(下图reactor三种模型中的一种,使用最多的)

在vertx web中,有acceptorEventLoopGroup负责处理客户端的连接请求,收到请求后,把创建好的连接注册到eventLoopGroup中的某个eventloop上。这个group中只包含1个eventloop,即1个线程处理所有连接的accept请求。

eventLoopGroup 负责处理网络读写事件。

vertx有三种模式,EventLoop、Worker、MultiThreadedWorker。第一种即业务逻辑由eventloop处理,第二种业务逻辑由Worder线程池处理,保证顺序执行任务,第三种也是有worker线程池处理,但不会新顺序执行,所以可能有并发问题。一般推荐使用第二种。

集群

集群就类似一个rpc框架了。

首先在通过consumer方法在注册中心注册节点。再通过send或者publish方法发送消息,服务端收到消息并执行回调事件,业务逻辑即写在回调中。这一些都是通过eventbus执行。

业务逻辑是由worker线程执行的,当然首先要设置为worker模式。

在eventbus启动时,默认是先从注册中心获取服务节点信息,等send或者publish时候,根据节点信息轮训拿到一个地址,建立tcp链接,并保持着(ping/pong),下次就不用再重新建立链接了。如果注册中心有变动,又会同步更新本地的缓存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值