表白网站制作器,永康高端网站设计,做快消品看那些网站好,廊坊手机网站团队典型的微服务架构图 下图展示了一个典型的微服务架构。
负载均衡器#xff1a;它将传入流量分配到多个后端服务。CDN#xff08;内容交付网络#xff09;#xff1a;CDN 是一组地理上分布的服务器#xff0c;用于保存静态内容以实现更快的交付。客户端首先在 CDN 中查找内…典型的微服务架构图 下图展示了一个典型的微服务架构。
负载均衡器它将传入流量分配到多个后端服务。CDN内容交付网络CDN 是一组地理上分布的服务器用于保存静态内容以实现更快的交付。客户端首先在 CDN 中查找内容然后再进行后端服务。API 网关处理传入请求并将它们路由到相关服务。它与身份提供者和服务发现进行对话。身份提供者负责处理用户的身份验证和授权。服务注册和发现微服务注册和发现发生在该组件中API网关在此组件中查找相关服务进行通信。管理该组件负责监控服务。微服务微服务是在不同的领域中设计和部署的。每个域都有自己的数据库。API网关通过REST API或其他协议与微服务通信同一域内的微服务使用RPC远程过程调用相互通信。
微服务的好处
它们可以快速设计、部署和水平扩展。每个域都可以由专门的团队独立维护。业务需求可以在每个领域进行定制从而得到更好的支持。 微服务最佳实践 当我们开发微服务时需要遵循以下最佳实践
为每个微服务使用单独的数据存储使代码保持相似的成熟度为每个微服务单独构建为每个微服务分配单一职责部署到容器中设计无状态服务采用领域驱动设计设计微前端编排微服务
微服务通常使用哪些技术堆栈
下面您将看到一张显示微服务技术堆栈的图表包括开发阶段和生产阶段。 -
定义 API - 这在前端和后端之间建立了契约。为此我们可以使用 Postman 或 OpenAPI。开发 - Node.js 或 React 在前端开发中很流行而 java/python/go 在后端开发中很流行。另外我们需要根据API定义更改API网关中的配置。持续集成 - JUnit 和 Jenkins 用于自动化测试。代码打包成 Docker 镜像并部署为微服务。 NGinx 是负载均衡器的常见选择。Cloudflare 提供 CDN内容分发网络。API网关-我们可以使用spring boot作为网关并使用Eureka/Zookeeper进行服务发现。微服务部署在云上。我们可以选择 AWS、Microsoft Azure 或 Google GCP。缓存和全文搜索 - Redis 是缓存键值对的常见选择。Elasticsearch 用于全文搜索。通信 - 为了使服务能够相互通信我们可以使用 Kafka 或 RPC 基础设施中的消息传递。持久性 - 我们可以使用 MySQL 或 PostgreSQL 作为关系数据库使用 Amazon S3 作为对象存储。如有必要我们还可以使用 Cassandra 进行宽列存储。管理和监控 - 为了管理如此多的微服务常见的运维工具包括 Prometheus、Elastic Stack 和 Kubernetes。