BoatHouse采用微服务架构进行开发,通过领域驱动设计(Domain-Driven Design) 的方式来划分业务(目前已有:统计服务、商品服务、账户服务、订单服务、支付服务),每一个业务领域均可以进行独立开发和部署。关于微服务架构选型,选择Sping Cloud+K8s/Istio的方式进行开发和部署。

    套件版本:Spring Cloud Hoxton,对应Spring Boot 2.2.x

    Spring Cloud组建:

    问题领域 SpringCloud Kubernetes && ISTIO
    配置管理 Spring Config Server ConfigMap & Secret
    服务注册发现 Consul Kubenetes Service
    负载均衡 Spring Cloud LoadBalancer、Ribbon Service/Ingress实现NLB,云厂商NLB​
    API网关 Spring Cloud Gateway Istio Gateway​
    安全性 Spring Cloud Security Ambassador支持多种基于Token的认证
    方式 以及第三方认证代理,如:Auth0和Keychoak​
    故障熔断 resilience4j、Hystrix Istio
    分布式链路追踪 Spring Cloud Sleuth Kiali
    日志分析 ELK Stack Fluentd+ ELK​
    集群监控 Micrometer、Turbine Heapster+ InfluxDB + Grafana
    消息总线 Spring Cloud Bus + Kafka
    服务监控 Spring Admin

    总体技术选型原则:

    • 选择了Spring社区活跃度高的项目
    • 放弃了已进入维护模式的Spring项目(例如Ribbon、Zuul、Hystrix、Turbine)进行开发,尽量选择社区维护性好的组件进行可持续开发

    相关资料: