美文网首页
聊聊vertx

聊聊vertx

作者: 玄冥theone | 来源:发表于2018-11-10 16:53 被阅读0次

    看了一周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),下次就不用再重新建立链接了。如果注册中心有变动,又会同步更新本地的缓存。

    相关文章

      网友评论

          本文标题:聊聊vertx

          本文链接:https://www.haomeiwen.com/subject/tcnzxqtx.html