前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Boot 微服务上容器平台的最佳实践 - 2

Spring Boot 微服务上容器平台的最佳实践 - 2

作者头像
东风微鸣
发布2022-04-21 13:59:39
3180
发布2022-04-21 13:59:39
举报
文章被收录于专栏:东风微鸣技术博客

前言

今天开始第二篇, 主要介绍下 Demo 应用的架构.

另外, 我要吃掉我之前写的第一篇了, 纠正如下:

📓 第一篇修订: 这一次,相关的场景是这样的: Spring Cloud 微服务系统已经提前搞好了,并没有运行在容器平台上,而是直接运行在虚机上。这次就是结合Spring Boot的组件和K8S (OpenShift)的相关概念和优势,将其迁移部署到容器平台上。

Demo 架构

这个Demo 架构演示了在微服务体系结构风格中构建的机票搜索系统。每个单独的微服务都是作为REST服务实现的,它位于Spring Boot之上,带有一个嵌入式Tomcat服务器,部署在OpenShift镜像上,并支持OpenJDK。典型微服务的软件栈如下:

每个微服务实例在一个容器实例中运行,每个OpenShift pod有一个容器,每个Service 有一个容器。在其核心,用微服务体系结构风格构建的应用程序由许多相互调用的复制容器组成.

应用程序的核心功能是由微服务提供的,每个微服务承担一个单一的职责。有一个服务充当API网关,调用单个微服务并聚合响应,以便更容易地使用它。

该架构还实现并扩展了Spring Sleuth和OpenZipkin的分布式跟踪(distributed tracing)功能。OpenZipkin作为一个单独的服务运行,使用一个MySQL数据库来持久化它的数据,应用程序中的每个服务都会调用Zipkin。

最后,Demo 应用使用Zuul作为边缘服务来提供静态和动态路由。结果是,所有服务调用实际上都被定向到Zuul,并由它适当地代理请求。这个Demo也会演示A/B测试 , 通过提供销售服务的另一个版本并在运行时决定将其用于哪一类客户。

小结

应用架构:

用户通过前端程序(presentation的页面进行访问, 访问的请求会调用API Gateway, 通过Zuul 作为代理路由到各个微服务: Flights, Airports, Sales. 同时请求的tracing信息会发送给zipkin.

用到的组件:

结合上一篇文章来看, 具体如下: (表格可以向右滑动)

Spring Boot 全家桶

Spring Boot 全家桶

K8S (OpenShift)

客户端库

Ribbon

服务注册

Service

负载均衡

Ribbon

Service

断路器

Hystrix

外部化配置

ConfigMap

分布式 Tracing

Sleuth/Zipkin

代理/路由

Zuul

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 东风微鸣技术博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • Demo 架构
  • 小结
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档