我曾在2021年年初的时候承诺过要将myddd-vertx开源。
选日不如撞日,2021年也快接近尾声了,刚好今天是程序员日,myddd-vertx源代码正式开放。
myddd-vertx是myddd的一个子模块。
myddd-vertx是基于Kotlin与Vertx的响应式领域驱动基础框架。它是myddd在后端的实现。
myddd-vertx是myddd在后端的大胆尝试 ,myddd-vertx遵循以下宗旨:
myddd-vertx的核心技术选型为:
如果你想知道为什么我会选择kotlin+vert.x,可以访问附录中的文章以了解更多。
myddd-vertx严格遵照TDD测试驱动开发。使用SonaQube来进行质量管理。
对于每个正式release的版本,要求达到:
当前数据
myddd-vertx是基础框架,它是对DDD领域驱动理念的实践,在架构风格上并没有限定使用方式。考虑到需求各有不同,myddd-vertx推荐以下三种推定架构:
如果你的一些需求很明显不存在极大的并发量或高可用,那myddd-vertx的单体架构是非常适合的。
这种架构模式下,最终会以Jar的形式部署。
基于vert.x极高的性能表现,就算是在这种架构模式下,依然有着优秀的性能表现。从我实际的性能测试表现上来看,至少是传统Spring Boot的6-8倍的优势。
这种是对单体架构的扩展,如果你的架构在并发上,或是特别在高可用上有需求,那在单体架构的基础上,添加nginx或lvs为负载均衡的集群是最合适的选择。
相比单体架构,它有着以下几个优势
事实上,我们推荐你主要考虑使用这个模式,除了TO C互联网以外的大部分情况下,我们认为这种架构足以胜任。
微服务是近年来非常流行的一种架构。
myddd-vertx的支持的微服务架构是: Vert.x + gRPC + Event Bus事件总线 + 单机/微服务双部署支持
有关此架构,访问myddd github中的myddd-vertx-micro-scaffold示例项目以了解更多
优势
不足
考虑到技术的非主流性与异步编程带来的挑战,也许使用myddd-vertx对你来说并不是个好的方案。
没有关系,myddd仍然有基于Java及Spring Boot的领域驱动基础框架供你使用。
myddd-java
myddd-java是基于Java及Spring Boot的领域驱动基础框架。
myddd-java始终坚持以下两个原则:
我已经开发了一个快速生成myddd项目的代码初始化工具。这就是myddd starter,官网是: https://starter.myddd.org
通过myddd starter,你可以在数秒内生成一个myddd项目。
myddd starter
myddd starter当前支持以下维度的项目生成
如果你对myddd有兴趣,可以随时访问myddd的官网:
https://myddd.org
同时,你也可以关注我的公众号: 微言码道
随时欢迎任何人积极的反馈与建议。可以发送邮件至lingen.liu@gmail.com