web系统架构基于springCloud的各技术栈

博主目前开发的web系统架构是基于springCloud的一套微服务架构。

使用的技术栈:springboot+mysql+clickhouse+postgresql+redis+rocketMq+oss+eureka+base-gateway+apollo+docker+nginx+vue的一套web架构。

一、springboot3.0

  1. 特性:Spring Boot 3.0提供了许多新特性和改进,以进一步简化Spring应用程序的开发和部署。其中一些重要的特性包括:更好的性能和扩展性、更强大的自动配置、改进的安全性、与新技术的集成等。
  2. 性能和扩展性:Spring Boot 3.0在性能和扩展性方面做了许多优化。通过使用新技术和优化代码结构,Spring Boot 3.0可以更快地启动应用程序,提供更好的性能和响应速度。此外,Spring Boot 3.0还提供了更好的水平扩展和垂直扩展能力,以满足不同规模应用程序的需求。
  3. 自动配置:Spring Boot 3.0进一步增强了自动配置功能。它提供了更多的自动配置类和注解,可以帮助开发人员快速配置应用程序。同时,Spring Boot 3.0还提供了条件注解和自定义配置类,以支持更灵活的配置管理。
  4. 安全性:Spring Boot 3.0在安全性方面也做了许多改进。它提供了更强大的身份验证和授权功能,支持多种身份验证协议和授权机制。此外,Spring Boot 3.0还提供了更安全的默认配置,以保护应用程序免受常见安全漏洞的攻击。
  5. 新技术集成:Spring Boot 3.0与许多新技术进行了集成,以提供更好的开发体验和功能支持。其中一些重要的新技术包括:Java 17、Spring Framework 6.0、GraalVM原生镜像等。这些新技术的集成可以帮助开发人员更快地构建现代化、高性能的应用程序。

二、docker

Docker是一种容器化技术,它使用Linux内核的cgroup和namespace等特性,将应用程序及其依赖项打包到一个独立的、可移植的容器中,并确保这些依赖项在任何Docker环境中都能正常运行。以下是Docker的使用详解:

  1. 安装Docker:首先需要在支持Docker的操作系统上安装Docker。Docker可以在多个操作系统上运行,包括Linux、Windows和macOS等。
  2. 创建Docker镜像:Docker镜像是用于创建容器的模板,类似于虚拟机的镜像。可以使用Dockerfile来定义镜像的构建过程,也可以从Docker Hub等仓库中下载已有的镜像。
  3. 运行Docker容器:使用docker run命令可以创建并运行一个容器。容器是从镜像创建的实例,类似于虚拟机。可以通过-d、-it等参数来指定容器的运行方式。
  4. 管理Docker容器:可以使用docker ps、docker stop、docker start等命令来管理正在运行的容器。也可以使用docker exec命令进入容器内部执行命令。
  5. 推送Docker镜像:如果想要将本地构建的镜像分享给其他人或团队,可以使用docker push命令将镜像推送到Docker Hub或其他仓库中。
  6. 构建Docker镜像:可以使用Dockerfile来定义镜像的构建过程,包括安装软件、设置环境变量等。构建完成后,可以使用docker run命令来运行该镜像。
  7. 删除Docker容器和镜像:使用docker rm命令可以删除不再需要的容器,使用docker rmi命令可以删除不再需要的镜像。

 三、apollo

Apollo是一种配置中心,主要用于集中管理和维护微服务中的配置信息。以下是Apollo配置中心的详细解释:

  1. 简介:Apollo配置中心是一个简单、可靠、功能丰富的平台,用于构建云原生应用。它能够集中管理应用的所有配置信息,包括敏感信息,并提供灵活的权限控制和强大的数据治理功能。
  2. 架构:Apollo的架构包括三个主要组件:Portal(管理门户)、Config Service(配置服务)和 Admin Service(管理服务)。Portal是用户界面,用于对配置进行修改;Config Service负责定期从数据库中拉取配置信息,并在发生变化时推送给客户端;Admin Service则负责接收Portal发送过来的配置信息,对配置信息进行修改。
  3. 特点:Apollo具有以下特点:支持多种语言和框架、开放式集成自定义监控和报警功能、动态刷新、快速同步、丰富的数据展示等。同时,Apollo还提供了一个强大的界面,使得配置的管理和修改变得非常方便。
  4. 集成:Apollo可以与Spring Boot等微服务框架集成,使得配置的修改和更新能够实时地反映到微服务中。
  5. 使用:要使用Apollo配置中心,首先需要在Apollo Portal中创建一个新的应用,并为其指定唯一的App ID。然后,在代码中通过Apollo客户端提供的API来读取和更新配置信息。同时,需要确保Apollo Config Service和Admin Service在运行时能够访问到Apollo Portal。

 四、eureka

Eureka是Netflix开发的服务发现框架,集成在其子项目spring-cloud-netflix中,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。Eureka是一个服务治理组件,主要包括服务注册和服务发现,用于搭建服务注册中心。

Eureka包含两个组件:Eureka Server和Eureka Client。Eureka Server提供服务注册服务,各个微服务节点通过配置启动后,会在EurekaServer中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息。EurekaClient通过注册中心进行访问,是一个Java客户端,用于简化Eureka Server的交互,客户端同时也具备一个内置的、使用轮询(round-robin)负载算法的负载均衡器。在应用启动后,将会向Eureka Server发送心跳(默认周期为30秒)。如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,EurekaServer将会从服务注册表中把这个服务节点移除(默认90秒)。

Eureka属于CAP中AP(Availability和Partition tolerance)架构。当网络分区出现后,为了保证可用性,系统B可以返回旧值,保证系统的可用性。结论是:违背了一致性C的要求,只满足可用性和分区容错,即AP。

 五、gateway

Spring Gateway是Spring Cloud中的一部分,用于构建微服务架构的API网关。以下是关于Spring Gateway的详细解释:

  1. 网关的概念:网关是外部网络进入内部网络的入口,对内部网络服务起到保护作用。在微服务架构中,网关是所有外部请求进入微服务群的入口。
  2. 网关的作用:
  • 反向代理:为了保护内部网络服务的安全,通常不会直接暴露内部网络服务的IP地址,而是通过暴露网关IP地址,通过网关IP代理内部网络服务的IP地址。
  • 流量控制:当系统处于高峰期时,为了防止系统因访问量过大而崩溃,网关可以限制访问数量。
  • 熔断:当系统中的某个服务出现故障时,网关可以将该服务降级。有请求访问时,直接访问事先准备好的降级方法,等到服务修复后,用户即可继续访问。
  • 负载均衡:当路由的目标服务有多个时,网关可以实现负载均衡,将请求分发到不同的服务上。
  1. 网关的架构:网关的架构通常包括路由、过滤器等核心组件。路由是构建网关的基本模块,由ID、目标URL、一系列断言和过滤器组成。如果断言为真,则可以匹配该路由。过滤器可以在请求被路由前或之后对请求进行修改。
  2. Spring Gateway的特点:
  • 易于集成:Spring Gateway可以与Spring Boot集成为一体,简化开发和部署过程。
  • 动态路由:通过简单的配置,可以实现动态路由,根据不同的条件将请求路由到不同的服务。
  • 过滤器链:可以通过配置过滤器来实现请求和响应的处理,例如限流、权限校验等。
  1. 使用Spring Gateway的好处:
  • 统一入口:通过网关统一管理所有外部请求的入口,便于管理和维护。
  • 安全性:通过网关可以对所有进入微服务群的请求进行安全校验,例如权限校验、身份认证等。
  • 流量控制和熔断:通过网关可以实现对流量的控制和熔断功能,防止系统过载或某个服务故障导致整个系统崩溃。
  • 负载均衡:通过网关可以实现负载均衡,将请求分发到不同的服务上,提高系统的可扩展性和可靠性。
  1. Spring Gateway的快速入门:要使用Spring Gateway,需要创建一个Maven项目,然后添加Spring Boot和Spring Cloud的依赖。配置路由信息,并编写过滤器来实现所需的请求和响应处理逻辑。

总之,Spring Gateway是一个功能强大的API网关组件,适用于构建微服务架构的应用程序。通过使用Spring Gateway,可以简化开发过程、提高系统的可扩展性和可靠性、并增强系统的安全性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/644040.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络安全---防御保护--子接口小实验

子接口小实验: 环境准备: 防火墙区域配置为trust: PC设置其ip为同一个网段: 此时尝试ping无法ping通的原因是没有打开防火墙允许ping,我们在图形化界面允许ping即可 最终结果: .com域名服务器: …

​比特币大跌的 2 个原因

撰文:秦晋 原文来自Techub News:​比特币大跌的 2 个原因 比特币迎来大跌!1 月 23 日凌晨,比特币跌破 40000 美元,为去年 12 月 4 日以来首次,日内跌超 3%。这是自 1 月 10 日美国证监会审批通过 11 只比…

中仕教育:“三不限”事业编的含义

所谓“三不限”,是指在报考事业单位时,对考生的户籍、年龄、学历不作任何限制。所以全国各地的考生只要符合招聘条件,都可以报考。所以每一年的三不限岗位竞争压力都比较大,报考人数都有很多。 ‘三不限’岗位招考信息在哪里看?…

制作Forms表单收集信息

Forms表单收集信息 背景表单制作New FormForms添加元素分享链接 测试查看结果数据结果可视化结果 背景 今天公司老板计划团建旅游,然后呢想让我们投一下票,说让我做一个表单来统计一下公司员工的信息,(前半句不要信啊&#xff09…

基于Apache httpd为windows11搭建代理服务器

文章目录 一.概述二.检查电脑系统类型三.下载安装Apache Httpd四.代理服务配置五.代理服务安装六.报错解决方法七.测试是否运行成功7.1 本机测试7.2 局域网代理测试 八.设置特定ip可访问(阻止其他ip访问)九.参考文档 一.概述 出于某些原因,我…

架构篇22:CAP理论-布鲁尔定理(Brewer‘s theorem)

文章目录 CAP 理论CAP 应用小结 CAP 定理(CAP theorem)又被称作布鲁尔定理(Brewer’s theorem),是加州大学伯克利分校的计算机科学家埃里克布鲁尔(Eric Brewer)在 2000 年的 ACM PODC 上提出的一…

如何在飞书创建企业ChatGPT智能问答助手应用并实现公网远程访问(1)

文章目录 前言环境列表1.飞书设置2.克隆feishu-chatgpt项目3.配置config.yaml文件4.运行feishu-chatgpt项目5.安装cpolar内网穿透6.固定公网地址7.机器人权限配置8.创建版本9.创建测试企业10. 机器人测试 前言 在飞书中创建chatGPT机器人并且对话,在下面操作步骤中…

10个常考的前端手写题,你全都会吗?(下)

前言 📫 大家好,我是南木元元,热爱技术和分享,欢迎大家交流,一起学习进步! 🍅 个人主页:南木元元 今天接着上篇再来分享一下10个常见的JavaScript手写功能。 目录 1.实现继承 ES5继…

11.前端--CSS-背景属性

1.背景颜色 样式名称: background-color 定义元素的背景颜色 使用方式: background-color:颜色值; 其他说明: 元素背景颜色默认值是 transparent(透明)      background-color:transparent; 代码演示: 背景色…

Leetcode—39.组合总和【中等】

2023每日刷题&#xff08;七十六&#xff09; Leetcode—39.组合总和 算法思想 实现代码 class Solution { public:vector<vector<int>> combinationSum(vector<int>& candidates, int target) {vector<vector<int>> ans;vector<int>…

Docker 魔法解密:探索 UnionFS 与 OverlayFS

本文主要介绍了 Docker 的另一个核心技术&#xff1a;Union File System。主要包括对 overlayfs 的演示&#xff0c;以及分析 docker 是如何借助 ufs 实现容器 rootfs 的。 1. 概述 Union File System Union File System &#xff0c;简称 UnionFS 是一种为 Linux FreeBSD NetB…

2024年美赛数学建模思路 - 案例:退火算法

文章目录 1 退火算法原理1.1 物理背景1.2 背后的数学模型 2 退火算法实现2.1 算法流程2.2算法实现 建模资料 ## 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 退火算法原理 1.1 物理背景 在热力学上&a…

Vue+OpenLayers7:html原生网页如何使用OpenLayers7地图

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7 前言 尽管现在大部分网页都是使用Vue或者React开发了,但是还是有不少开发者使用的是网页原生html进行开发,或者是老项目维护的需要,所以为了照顾使用html原生网页的同学们,本章简单讲解一下如何使用原始html网页情况下…

关于网络协议的笔记

简介&#xff1a; 协议&#xff0c; 网络协议的简称&#xff0c;网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连 接、怎么样互相识别等。只有遵守这个约定&#xff0c;计算机之间才能相互通信交流。它的 三要素是&#xff1a;语 法、语义、时序。 为了使数…

外网ssh远程连接服务器

文章目录 外网ssh远程连接服务器一、前言二、配置流程1. 在服务器上安装[cpolar](https://www.cpolar.com/)客户端2. 查看版本号&#xff0c;有正常显示版本号即为安装成功3. token认证4. 简单穿透测试5. 向系统添加服务6. 启动cpolar服务7. 查看服务状态8. 登录后台&#xff0…

常用shell脚本命令总结

可以将shell脚本 当做终端命令的集合&#xff0c;终端可以运行shell就可以 shell 脚本 声明(第一行加) #!/bin/bash 设置变量 FILE_PATH_BASE/home/gitlab-runner/apk_download/ 使用变量 "$FILE_PATH_BASE" 1、mv命令 文件移动 mv ./build/web/ ${FILE_PATH_BASE} …

innodb底层原理和MySQL日志机制

server层 1. 连接器 客户端连接数据库需要输入账号、密码。连接器进行校验账号密码以及权限。 2. 查询缓存 连接器连接以后&#xff0c;比如输入一个select语句&#xff0c;这时候第一步就会先根据sql语句作为key给查询缓存中查看这条sql有没有已经被查询过&#xff0c;如果…

k8s图形化管理工具之rancher

前言 在前面的k8s基础学习中&#xff0c;我们学习了各种资源的搭配运用&#xff0c;以及命令行&#xff0c;声明式文件创建。这些都是为了k8s管理员体会k8s的框架&#xff0c;内容基础。在真正的生产环境中&#xff0c;大部分的公司还是会选用图形化管理工具来管理k8s集群&…

Mybatis 全局配置文件(三)

文章目录 第一章&#xff1a;概述第二章&#xff1a;properties (了解)第三章&#xff1a;settings第四章&#xff1a;typeAliases (别名处理器)第五章&#xff1a;typeHandlers (类型处理器)第六章&#xff1a;plugins(插件)第七章&#xff1a;environments (环境)第八章&…

顺序表和链表【数据结构】【基于C语言实现】【一站式速通】

目录 顺序表 顺序表的优点 顺序表的实现 1.结构体的定义 2.初始化数组 3.插入数据 4.其余接口函数的实现 5.释放内存 顺序表的缺陷 单向链表 单向链表的优点 单向链表的实现 1.链表的定义 2.链表的初始化 3.其余接口函数的实现 5.释放内存 单向链表的缺陷 双…