Spring Boot+Neo4j+Docker+Kubernetes實現CQRS+ES演示

該項目是一個實用的微服務參考示例,用於演示使用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

Spring Boot+Neo4j+Docker+Kubernetes實現CQRS+ES演示


分享到:


相關文章: