Skip to content

jamsure/vertx

Repository files navigation

vertx

Vert.x是架构在Netty上的一个异步开发框架,以其小巧、灵活、轻量的特性吸引了一大批的开发者。

这个应用就是我在学习和使用Vert.x的时候逐步积累而来的。包含一些学习的demo以及根据自己体会所编写的Vert.x架构体系。

模块说明

这个项目是一个Maven聚合项目,包含很多的小模块,以vertx-开头的模块是使用Vert.x为核心核心技术模块,包含一些演示案例和Vert.x框架。以ext-开头的模块为扩展模块,主要是一些在Vert.x模块中用到的技术扩展,这里简单对各小模块进行介绍。

vertx-blog-demo

这个模块是我在写博客时,用到的案例代码。包含了Vert.x最为基础的一些案例。

博客的地址为:https://blog.csdn.net/king_kgh

vertx-book-demo

这个模块是公司内部Vert.x资料中所使用的Demo,但目前还在组建中。

vertx-framework

这是一个微内核的Vert.x框架,内核中仅提供极少的支持功能以及有限个注解,大部分功能依靠插件来完成。

系统整体结构如图所示

img 图片

开发者不需要去关注Vert.x底层细节,只需要创建自己的Verticle,并在Verticle中发布自己的服务,然后将开发的服务按照需要排列组合串到一起,形成服务链,用来对事件的处理。

这个过程说起来比较繁琐,而且不好理解,看下面的图,应该就比较清晰了

img 图片

需要开发者开发的是组件,组件中可以发布多个服务,每个服务是最小的执行单元。

多个服务随机组合构成一个服务串,来完成某个功能。简单的功能可以只有一个服务,甚至可以不用服务。

服务串有多种形式,可能有些服务比较简单,那么就可以定义一种特殊的串,在串中不调用服务,而是直接处理功能。

当有事件到来,框架会找到合理的服务链进行执行,并将服务链的执行结果解析并响应给客户端。

框架支持单机模式和集群模式(目前仅支持单机模式)。

框架提供强大的监控能力,能够监控每一个事件的执行情况,包括服务串的每个服务的执行结果,响应时间,链路的执行位置等等。(还在实现中)

下面是框架的整体结构

vertx-framework-common

提供一些公共的工具类,接口以及注解

vertx-framework-core

封装框架的核心服务,包括执行引擎,运行上下文等。

vertx-framework-plugins

这里是官方提供的一些插件,包括HTTP监听的插件来实现对Web应用的支持,数据库插件来支持数据库的操作等等,具体如下

plugin-db

数据库插件,用于对数据库的调用

plugin-listener

HTTP监听组件,用于对HTTP请求的支持与响应

plugin-mgr

框架的监控和管理的控制台,这是一个Web应用。

管理功能包括:

  • 控制组件(Verticle)的启用与停用
  • 控制服务链的启动与停用
  • 控制服务级别断点

监控功能包括:

  • 监控实时请求明细
  • 监控每个请求执行细节(哪个服务链提供服务,当前执行到哪个服务,每个服务接收的参数以及处理后的响应)
  • 监控数据库性能、服务器性能、磁盘容量等(这个不是重点,与Vert.x技术无关)

辅助功能:

  • 拖拽生成服务链(第一个级别是生成Java代码,第二个级别是生成class字节码,第三个级别是生成jar)

vertx-stu-manager

该模块是一个简单的学生管理系统,能够实现列表、新增和删除。

ext-thread-demo

一些关于线程的小例子

About

some of vertx demo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages