Memo是多版本的概念验证微服务应用程序,简单记录个人Todo备忘录应用。介绍各个版本的技术栈。
V1~V2版本:基于SpringCloud、Kubernetes、Docker、Eureka注册中心、Apollo配置中心、Zuul网关、Fegin微服务调用、Prometheus监控、Cat调用链监控、Hystrix熔断限流、xxl任务调度中心、ELK日志查询等
V3版本:基于CNCF云原生平台,Service Mesh实现Istio架构
中间件 | 中间件介绍 | 产品 |
---|---|---|
注册中心 | ||
网关 | ||
配置中心 | ||
调用链监控 | ||
服务调用 | ||
授权认证 | ||
容错限流 | ||
Metries监控 | ||
ELK | ||
docker+K8S |
- 实现语言层无关,cncf组件微服务治理方案。
- 语言Java、go、X
- 客户端:B端(暂定)
- TodolistApplication背景下在proof-of-concept application。
- CAP:CP
serviceMesh(SideCar)或者Istio,解决服务发现和负载均衡方式,是模式三:主机独立进程代理的变种版本。
Istio各个组件的介绍
Istio is an open platform for providing a uniform way to integrate microservices, manage traffic flow across microservices, enforce policies and aggregate telemetry data. Istio's control plane provides an abstraction layer over the underlying cluster management platform, such as Kubernetes.
Istio is composed of these components:
Envoy - Sidecar proxies per microservice to handle ingress/egress traffic between services in the cluster and from a service to external services. The proxies form a secure microservice mesh providing a rich set of functions like discovery, rich layer-7 routing, circuit breakers, policy enforcement and telemetry recording/reporting functions.
Note: The service mesh is not an overlay network. It simplifies and enhances how microservices in an application talk to each other over the network provided by the underlying platform.
Mixer - Central component that is leveraged by the proxies and microservices to enforce policies such as authorization, rate limits, quotas, authentication, request tracing and telemetry collection.
Pilot - A component responsible for configuring the proxies at runtime.
Citadel - A centralized component responsible for certificate issuance and rotation.
Citadel Agent - A per-node component responsible for certificate issuance and rotation.
Galley- Central component for validating, ingesting, aggregating, transforming and distributing config within Istio.
Istio currently supports Kubernetes and Consul-based environments. We plan support for additional platforms such as Cloud Foundry, and Mesos in the near future.
todo
微服务架构的根本问题:服务发现和负载均衡。解决方案:代理。
模式一:传统集中式代理
模式二:服务注册中心+客户端嵌入式处理
模式三:主机独立进程代理