记录springcloud应用在阿里云架构部署

csy2019 csy2019     2022-12-12     796

关键词:

常用的Spring Cloud体系架构

系统部署采用阿里云平台,采用的技术架构为SpringCloud.

采用在线阿里云架构制图工具: Freedgo Design 地址:https://www.freedgo.com, 具体架构如下:

技术图片

整体架构

主要居于Spring Cloud的分布式微服务架构。主要功能包括:

服务注册发现中心(Eureka server)

通过服务发现可以抽象出部署服务的物理位置如IP,服务调用通过了逻辑名称而不是实际的物理位置,同时服务发现也处理了注册和注销。

服务配置中心(config server)

通过集中式的服务来处理应用程序配置数据。做到无论启动多少个微服务实例,这些实例始终使用相同的配置,同时服务的配置可以和微服务系统分离

服务网关(ZUUL)

通过ZUUL网关,可以强制执行一些功能如内容过滤,路由转发,过滤器等等

Spring Sleuth & ZIPKIN(分布式服务跟踪)

通过Sleuth 相关ID进行全链路跟踪,可以分析服务调用的性能

事件驱动及异步消息

用于处理异步事件如短消息推送,邮件发送等。

用户认证中心(auth2)

ZUUL网关

ZUUL网关主要的功能

路由及过滤器设置

通常在ZUUL网关设置过滤器包括前置过滤器、后置过滤器、路由过滤器,可以自定义一些逻辑,在大多数情况下,这种自定义逻辑用于强制执行一组一致的应用程序策略,如安全性、日志记录和对所有服务的跟踪等等。

路由的设置可以指定路由地址URL对应的微服务如下图:

技术图片

服务注册与发现:

ZUUL网关服务器通过注册到Eureka服务器,实现了Eureka上注册的微服务的发现从而转发用户的请求到各应用模块,网关服务器中Ribbon同时会缓存微服务相关信息以减少对EureKa访问。

微服务应用

Oauth2授权访问

ZUUL网关负责请求的路由转发,Request请求不仅仅来在用户浏览器,有可能是微服务之间的相互调用。

登录用户请求或服务之前调用会在request请求头中携带Authorization 头信息来表示当前用户的身份信息,

Http Restful Api

微服务应用采用 Spring RestController 对外发布 Http Restful Api服务,

微服务之间的调用

微服务之间相互调用而不必知道被调用者所在位置是通过Eureka服务发现实现,当微服务启动时会注册自己到Eureka服务中心,服务消费者可以使 Ribbon 来进行交互。有三种方式的调用:

  • Spring DiscoveryClient
  • 启用了 RestTemplate 的 Spring DiscoveryClient
  • 通过 Netflix Feign 客户端方式

部署方案(docker)

采用Docker通过spotify 的docker-maven-plugin工具进行docker image进行打包镜像

灰度测试

通过ZUUL的过滤对新上线的服务做路由的权重算法,做到限流,A/B测试。

平台开发

  • 开发语言:java,Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。
  • 开发工具:eclipse,Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
  • 主要使用的开源软件
软件功能版本
JDK JAVA开发SDK包 1.8 以上
Ubuntu Linux服务器操作系统 14
MySQL 数据库 5.7+
Maven java 项目构建工具 4.0
Spring Framework 系统架构 5.0以上
Spring cloud 分布式微服务 2.0+
kafka 消息订阅发布框架
Redis 高性能Key value存储
Docker

阿里云acm:云原生配置管理利器,让云上的springcloud应用配置管理舞动起来

...,但这类原生方案会存在依赖严重、发布延时高的问题。SpringCloud中的标准配置管理方法和存在的问题以SpringCloud为例,其提供了SpringCloud 查看详情

springcloud集成eureka服务部署阿里云服务器

参考技术A将SpringCloud集成Eureka服务部署在阿里云服务器。项目在上一篇博客讲过在本地测试SpringCloud集成Eureka服务,博客地址:https://www.jianshu.com/p/78e8797ea804,现在将3个项目部署在阿里云服务器,环境是CentOS7,Tomcat9。在pom.xml文件... 查看详情

springcloud微服务云架构代码结构

...集成、版本控制 从现在开始,我这边会将近期研发的springcloud微服务云架构的搭建过程和精髓记录下来,帮助更多有兴趣研发springcloud框架的朋友,希望可以帮助更多的好学者。大家来一起探讨springcloud架构的搭建过程及如何... 查看详情

分享springcloud微服务云架构代码结构

...持续集成、版本控制从现在开始,我这边会将近期研发的springcloud微服务云架构的搭建过程和精髓记录下来,帮助更多有兴趣研发springcloud框架的朋友,希望可以帮助更多的好学者。大家来一起探讨springcloud架构的搭建过程及如何... 查看详情

springcloud应用在kubernetes上的最佳实践—部署篇(工具部署)(代码片段)

...责EDAS的开发和用户体验优化工作。导读:上一篇文章《SpringCloud应用在Kubernetes上的最佳实践—部署篇(开发部署)》我们介绍了从IDE插件内介绍了如何进行应用部署的方式,除此之外,目前EDAS还支持了额外的工具对其他场景进行... 查看详情

springcloud:spirngcloud简介

一、简介SpringCloud是在SpringBoot基础上构建的,用于快速构建分布式系统的通用模式的工具集。使用SpringCloud开发的应用程序非常适合在Docker或者PaaS上部署,所以又叫作云原生应用。二、特点1、约定优于配置2、适用于各种环境。... 查看详情

分享springcloud微服务云架构代码结构图

...持续集成、版本控制从现在开始,我这边会将近期研发的springcloud微服务云架构的搭建过程和精髓记录下来,帮助更多有兴趣研发springcloud框架的朋友,希望可以帮助更多的好学者。大家来一起探讨springcloud架构的搭建过程及如何... 查看详情

整合springcloud云服务架构-commonservice-config配置服务搭

介绍SpringCloudConfig为分布式系统中的外部配置提供服务器和客户端支持。使用ConfigServer,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念映射与SpringEnvironment和PropertySource抽象相同,因此它们与Spring应用程... 查看详情

阿里云server部署架构

近期要上马一个项目,客户要求所有部署到阿里云的server,做了一个阿里云的部署方案.上图:跟传统的部署相比,用云盾替代了传统的防火墙,负载均衡设备也不用自己买了,购买一个LBS负载均衡服务能够加入10个负载均衡实例,内网免... 查看详情

springcloud构建全球多租户分布式微服务部署的方案

参考技术A最近在用springcloud分布式微服务云架构做一个全球多租户分布式部署的方案,我在这里只是简单的记录,当前的架构图只能是一个大概的方案,具体实施的方案和细节,IT老铁们可以自己去揣摩,因为业务链不同,细节... 查看详情

阿里云faas架构设计

...以让大家对阿里云FaaS有更深入的了解,并可以将FaaS应用到项目中,达到降本提效的目的。一、基于ECS的FaaS在阿里云传统架构,用户通过互联网进入到负载均衡系统中,再通过负载均衡把系统的请求调度到不同的... 查看详情

极致体验!基于阿里云serverless快速部署function

...更是在各个层面不断提升云服务的技术能力,它们将应用和环境中很多通用能力变成了一种服务。但无论这些技术应用在哪里,帮助企业“降本增效”是技术变革永恒的主题。Serverless架构的出现&# 查看详情

springcloud微服务分布式云架构-commonservice-config配置服务搭建

1.介绍SpringCloudConfig为分布式系统中的外部配置提供服务器和客户端支持。使用ConfigServer,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念映射与SpringEnvironment和PropertySource抽象相同,因此它们与Spring应用... 查看详情

微服务架构:基于微服务和docker容器技术的paas云平台架构设计

...们参考使用。目前业界比较成熟的微服务框架有Netflix、SpringCloud和阿里的Dubbo等。SpringCloud是基于SpringBoot的一整套实现微服务的框架,它提供了开发微服务所需的组件,跟SpringBoot一起使用的话开发微服务架构的云服务会变的很方... 查看详情

阿里巴巴servicemesh落地的架构与挑战

...erviceMesh作为云原生的关键技术之一,顺利完成在双11核心应用严苛而复杂场景下的落地验证。本文作者将与大家分享在完成这一目标过程中我们所面临和克服的挑战。部署架构切入主题前,需要交代一下在双11核心应用上落地的... 查看详情

docker集群部署springcloud应用

docker环境准备#linux下的安装,自行百度#windowsdockertoolbox下载地址https://download.docker.com/win/stable/DockerToolbox.exe#创建myvm3这个虚拟机内存尽量大,6g以上最好#https://0eenj1uv.mirror.aliyuncs.com这个是阿里云加速器的地址。docker-machinecreat 查看详情

基于阿里云serverless快速部署function的极致体验

...更是在各个层面不断提升云服务的技术能力,它们将应用和环境中很多通用能力变成了一种服务。但无论这些技术应用在哪里,帮助企业“降本增效”是技术变革永恒的主题。Serverless架构 查看详情

介绍springcloud分布式微服务云架构

SpringCloud是一系列框架的有序集合。利用SpringBoot的开发模式简化了分布式系统基础设施的开发,都可以用SpringBoot的开发风格做到一键启动和部署。SpringCloud将目前比较成熟、经得起实际考验的服务框架组合起来,通过SpringBoot风... 查看详情