美文网首页开源工具技巧DTeam团队日志Vert.x
一个可插拔远程服务框架的诞生

一个可插拔远程服务框架的诞生

作者: 胡键 | 来源:发表于2017-11-10 18:45 被阅读255次

这些天因为项目的需要基于Vert.xPF4J做了一个简单的插件式远程服务框架dfx。它是一个非常简单的小框架(或者称为微框架也行),其目的很简单:快速地将老旧Java类转变成为远程服务,降低这类工作的难度和门槛。

简单到什么程度呢?这么说吧:开发者只要实现一个指定的接口,然后将其打包成一个插件并复制到dfx指定的插件目录之下就ok了(当然,还需要修改对应的配置文件)。

至于为何选定Vert.x为支撑技术,原因在我之前的踩坑记中已经解答。而采用插件的原因则在于:

  • 分工明确。插件开发者只需专注于业务逻辑的开发,不用去为底层各种机制(如断路器,你没看错,dfx管理下的插件天然就具有断路器功能,而插件开发者根本就没有意识到这一点!即使无意间引入了一个慢插件,也不会殃及其他插件。)烦心。
  • 管理的需要。除了功能的扩展性,插件系统带来的一个附加好处就是有效控制了整个系统的代码。即,开发新功能时不需要将整个系统的代码clone得到处都是。从代码安全性上来讲,这无疑是绝佳的选择。同时,这还带来了另一个好处:编译速度的极大改善。要是经历过编译3天才得到一个二机制文件,那你应该明白我在说什么,;)。

对于插件系统,我选择的是PF4J,一个小巧的插件实现。

除了简单和断路器支持,dfx的还支持热更新,只是目前的方式简单粗暴:当发现任意一个变化(conf和插件目录中zip包的变化)时,会重新加载整个服务,即相当于重启。

关于dfx的详细使用和插件的开发,可以从它的README得到更多细节。

相关文章

  • 一个可插拔远程服务框架的诞生

    这些天因为项目的需要基于Vert.x和PF4J做了一个简单的插件式远程服务框架dfx。它是一个非常简单的小框架(或...

  • Umi+Dva搭建Cesium 3D开发环境

    umi,中文可发音为乌米,是一个可插拔的企业级 react 应用框架,是蚂蚁金服的底层前端框架,已直接或间接地服务...

  • go-micro简介

    go-micro简介Go Micro是一个插件化的基础框架,基于此可以构建微服务,Micro的设计哲学是可插拔的插...

  • Go - Micro微服务框架实践 - Go API 处理器(十

    Go API 概览 Go API是基于服务发现驱动开发的可插拔API框架,旨在帮助构建强大的API网关。 概览 G...

  • java 各种远程通信技术

    在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:R...

  • Java远程通讯技术及原理分析

    在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:R...

  • Thrift 和 Protobuf

    介绍 有 Facebook 开发的远程服务调用框架采用接口描述语言定义并创建服务,支持可拓展的跨语言服务开发,所包...

  • dubbo常见的一些面试题

    什么是Dubbo? Duubbo是一个RPC远程调用框架, 分布式服务治理框架 什么是Dubbo服务治理? 服务与...

  • Thrift

    Thrift 是一个软件框架(远程过程调用框架),用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和...

  • java-spi开发

    SPI(Service Provide Interface)即服务提供接口规范,其功能是为了实现可插拔的服务提供,...

网友评论

    本文标题:一个可插拔远程服务框架的诞生

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