Spring Boot+Neo4j+Docker+Kubernetes实现CQRS+ES演示

18-12-09 banq
         

该项目是一个实用的微服务参考示例,用于演示使用Spring Boot和Spring Cloud的CQRS和事件源的基础知识。本教程将引导您使用Docker Stacks在Kubernetes上运行此示例。如果您对Kubernetes不熟悉 - 不用担心! - 本教程中包含了您需要开始使用的所有内容。

该参考示例具有两个微服务,以及一个领域域数据的只读副本,它们从流入Apache Kafka的事件中拼接在一起。这意味着我们可以使用来自多个不同微服务的每个事件来为不同的数据库技术提供混合。

通过按顺序运行这些事件,我们可以创建一个存储在单独记录系统中的领域数据的最终一致的只读投影!

通过这种方法,我们可以充分利用这两个领域的优势 : 利用大型共享数据库更易于实现整体查询,但是也不会牺牲构建微服务的诸多好处。

域名服务

  • 用户服务

    • 框架:Spring Boot 2.0.7
    • 数据库:H2 / MySQL
    • 消息:生产方
    • 经纪人:Apache Kafka
    • 实现:CQRS
  • 朋友服务

    • 框架:Spring Boot 2.0.7
    • 数据库:H2 / MySQL
    • 消息:生产方
    • 经纪人:Apache Kafka
    • 实现:CQRS

聚合服务

  • 推荐服务

    • 框架:Spring Boot 2.0.7
    • 数据库:Neo4j
    • 消息:消费者
    • 经纪人:Apache Kafka
    • 实现:Event Sourcing

使用Docker堆栈部署到Kubernetes

Docker Desktop Community v2.0最近发布了一项实验性功能,允许您使用Docker Compose文件在任何Kubernetes集群(本地或远程)上部署和运行分布式系统。我认为这对于希望尽快启动和运行Kubernetes和微服务的开发人员来说是一项重大进步。在此功能之前(过去五年),基于Windows的开发环境的开发人员发现使用Docker运行我的示例很困难。我很自豪地说那些日子已经结束了。

Docker Stacks是一项功能,现在允许您将实际复杂的微服务示例部署到任何远程或本地Kubernetes集群。

具体查看Github

         

1