【微服】单体、SOA、微服务

article/2025/10/4 19:28:50

单体架构

将所有的功能都集中在一个模块中(WAR包)开发、部署、迭代,牵一发而动全身,局部低效率拖垮整个服务。

SOA

按服务对项目拆分,通过对外提供接口的方式提供服务,缓解了单体的单服务低效率拖垮整个服务的问题,但往往通过数据库进行数据共享,服务之间会基于数据库耦合。

微服务

独立开发、部署,技术栈独立,数据库独立。服务之间通过统一的HTTP接口调用,或采用Kafka、RabbitMQ等消息队列的方式进行通信,耦合性大大降低。

SpringCloud微服务组件

组件功能
Spring Cloud Config 分布式配置中心,负责把配置放到远程服务器上,集中化管理集群配置。
Eureka服务注册发现中心,基于 REST 服务的分布式中间件,主要用于服务管理。
Hystrix熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点 , 从而对延迟和故障提供更强大的容错能力。
Ribbon云端负载均衡器。支持多种负载均衡策略,可配合服务发现和熔断器使用,在客户端实现负载均衡。
Feign一个 REST 客户端,基于 Ribbon 和 Hystrix 的声明式服务调用组件。
Zuul服务网关,为微服务架构集群提供代理、过滤、路由等功能。
Spring Cloud Bus 事件、消息总线,用于在集群(例如配置变化事件)中传播状态变化,可与 Spring Cloud Config 联合实现热部署。
Spring Cloud Stream数据流操作开发包,可与 Redis、RabbitMQ、Kafka 等架构进行消息发送与接收。
Spring Cloud Sleuth 服务追踪框架,可以与 Zipkin、Apache Htrace 和 ELK 等数据分析、服务跟踪系统进行整合,为跟踪服务、解决问题提供了便利。

SpringCloud架构

 SpringCloud与SpringBoot版本兼容

SpringCloudSpringBoot
Greenwich兼容 Spring Boot 2.1.x
Finchley兼容 Spring Boot 2.0.x
Dalston 和 Edgware 兼容 Spring Boot 1.5.x
Camden兼容 Spring Boot 1.4.x
Brixton兼容 Spring Boot 1.3.x
Angel兼容 Spring Boot 1.2.x

IaaS && PaaS && SaaS && FaaS && CaaS

IaaS(Infrastructure as a Service)基础设施即服务——只卖服务器

PaaS(Platform as a Service) 平台即服务——服务器+基础操作系统+简单运维

Saas(Software as a Service)软件即服务——包装好服务,提供OA、CRM、MIS、ERP、HRM、CM、Office 365、iCloud、G Suite等现成的解决方案

FaaS(Function as a Service)函数即服务——提供函数定义的自由度,依赖指定的API定制化功能实现,如云函数

CaaS(Container as a Service)容器即服务——提供容器化部署环境(Docker,K8S)

服务发现与服务路由

服务发现:新接入的服务为其他服务提供服务前,自动注册到集群中。 消费方通过服务发现,获取服务方的ip和端口。同时及时移除不可用的节点。

服务路由:提供统一的入口,不再需要关注服务调用的路由问题

服务熔断与客户端负载均衡 

客户端负载均衡:客户端自己实现轮训服务的不同节点,解决负载均衡中心化问题。

服务熔断:服务可用性下降时,快速响应,避免连锁反应,不影响整体服务的可用性。

身份认证与鉴权

身份验证:对用户的身份验证,基于用户名+密码完成基础验证。

鉴权:用户是否有权执行当前操作,增删改查细粒度管理。 

日志追踪与聚合

日志关联:通过分布式Id,将不同服务的日志关联起来。

日志聚合:从服务实例中收集所有日志。

事务追踪:通过分布式追踪日志,查询调用链等信息。

微服务运维的四个原则

1. 独立部署原则。同一份产出,可以到任意服务器上进行部署。

2. 配置自动化统一管理。通过配置中心或环境变量进行配置,无需人为干预。

3. 服务对客户端透明。客户端无需关注服务真实部署地址,通过服务注册与服务发现中间层代理实现解耦,无需关注服务部署的相关信息。

4. 健康报告。健康监控是微服务运维的重要一点,实时监测服务可用性,剥离不健康节点。

微服务构建最佳实践

1. 代码库。每个微服务都有自己独立的代码库进行版本控制

2. 依赖管理。使用标准的版本管理工具Maven完成依赖管理,保证每次依赖的使用是明确的,一致的。

3. 配置。配置与代码分离管理,特别是不同环境(开发、测试、生产)分别管理。

4. 后端服务。确保基于数据库、网络、消息的服务调用关系能够随时平滑切换。

5. 构建、发布、运行的分离。统一的流水线化完成构建、发布、运行操作,不可逆地执行上述步骤。

6. 进程。微服务始终是无状态的,某个实例的新增和移除不影响数据。

7. 端口绑定。不再需要web容器进一步完成服务的部署,例如内置Tomcat

8. 并发。通过横向扩展实现服务扩容而不是依赖单体的线程数。

9. 可任意处置。微服务实例应当随时可以启动和停止,在可见时间范围内完成服务的重启,在收到kill信号时,及时得以停止。

10. 各部署环境的无差性。开发、测试、生产环境代码部署的无差性。

11. 日志。日志是一个事件流,通过相关工具实现日志的收集和统一化展示,开发人员不应花费过多时间关注此类问题。

12. 进程管理。通用的脚本管理实现服务的统一部署、重启、终止等操作。


http://chatgpt.dhexx.cn/article/TiPrBZ5H.shtml

相关文章

微服架构基础设施环境平台搭建 -(三)Docker+Kubernetes集群搭建

微服架构基础设施环境平台搭建 -(三)DockerKubernetes集群搭建 通过采用微服相关架构构建一套以KubernetesDocker为自动化运维基础平台,以微服务为服务中心,在此基础之上构建业务中台,并通过Jekins自动构建、编译、测试…

微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建

微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建 通过采用微服相关架构构建一套以KubernetesDocker为自动化运维基础平台,以微服务为服务中心,在此基础之上构建业务中台,并通过Jekins自动构建、编译、…

SpringCloud微服架构

微服务架构 1)单体应用架构 高效开发:项目前期开发节奏快,团队成员少的时候能够快替代 架构简单:mvc架构,只需要借助Ide开发,调试即可 易于测试:只要通过单元测试或者浏览器完成 易于部署&…

微服架构

首先我们看看为什么要考虑使用微服务。 开发单体式应用 假设你正准备开发一款与Uber和Hailo竞争的出租车调度软件,经过初步会议和需求分析,你可能会手动或者使用基于Rails、Spring Boot、Play或者Maven的生成器开始这个新项目,它的六边形架构…

微服架构基础设施环境平台搭建 -(一)基础环境准备

微服架构基础设施环境平台搭建 -(一)基础环境准备 通过采用微服相关架构构建一套以KubernetesDocker为自动化运维基础平台,以微服务为服务中心,在此基础之上构建业务中台,并通过Jekins自动构建、编译、测试、发布的自动…

微服架构基础设施环境平台搭建 -(四)在Kubernetes集群基础上搭建Kubesphere平台

微服架构基础设施环境平台搭建 -(四)在Kubernetes集群基础上搭建Kubesphere平台 通过采用微服相关架构构建一套以KubernetesDocker为自动化运维基础平台,以微服务为服务中心,在此基础之上构建业务中台,并通过Jekins自动…

微服架构简介

什么是微服务? 专业解释: 微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的…

微服架构基础设施环境平台搭建 -(五)Docker常用命令

微服架构基础设施环境平台搭建 -(五)Docker常用命令 本文主要列出了Docker常用的命令 微服架构基础设施环境平台搭建 系列文章 微服架构基础设施环境平台搭建 -(一)基础环境准备 微服架构基础设施环境平台搭建 -(二&am…

微服务简介

文章目录 微服务(micro services)简介一 什么是微服务?二 微服务这个概念的由来三 微服务和单体式架构区别3.1 单体式架构缺点3.2 微服务架构的解决方案3.3 微服务缺点3.4 微服务优点3.5 单体式和微服务对比 微服务(micro service…

微服务什么是以及微服务框架

微服务(microservice) 微服务是分布式架构的一种,分布式架构其实就是要把服务做一个拆分,而springcloud只是解决了拆分过程中的服务治理问题。 在单体架构中,我们把所有的服务都写在一起,随着业务的复杂代…

微服篇01——微服务的发展

01——微服务的发展 1:Monolith(整体架构) 服务所对应的代码由多个项目所组成,最终合并在一起形成一个WAR包,再部署到Web容器。 负载与扩容: 2:微服务(Microservice)架构模式 Microservic…

配置不同网段的dhcp服务器

dhcp中继设置 试题4:DHCP实验 背景: 某公司新建了局域网,要求网内地址采用DHCP分配,DHCP服务器地址为172.16.1.5/24,请建立172.16.1.128/25的域为局域网用户分配置IP地址,域中DNS地址为:202.97.…

Linux服务器配置(详细版)

本来就很麻烦,如果错了一个很有可能从新再来,非常麻烦所以要细心 请省略这段部分 --------------------------------------------------------------------------------------------------------------------------------------------- Linux命令 1.进…

银河麒麟服务器修改ip,银河麒麟配置DNS服务器

银河麒麟配置DNS服务器 内容精选 换一换 MindInsight为MindSpore提供了简单易用的调优调试能力。在训练过程中,可以将标量、张量、图像、计算图、模型超参、训练耗时等数据记录到文件中,通过MindInsight可视化页面进行查看及分析。MindInsight组件为MindStudio的独立组件,请…

查看服务器sftp用户信息,linux查看sftp服务器配置

linux查看sftp服务器配置 内容精选 换一换 为加强对系统数据的容灾管理,云堡垒机支持配置日志备份,提高审计数据安全性和系统可扩展性。本小节主要介绍如何在系统配置FTP/SFTP服务器参数,将日志远程备份至FTP/SFTP服务器。开启远程备份后,系统默认在每天零点备份前一天的系…

访问量100万的网站服务器,100万访问量 服务器配置

100万访问量 服务器配置 内容精选 换一换 弹性负载均衡有不同的负载均衡,分别是共享型负载均衡和独享型负载均衡,便于用户根据不同的应用场景和功能需求选择合适的负载均衡器类型。共享型负载均衡:适用于访问量较大的web业务,提供基于域名和URL的路由均衡能力,实现更加灵活…

思科模拟器企业网站服务器配置,cisco模拟器配置域名web服务器

cisco模拟器配置域名web服务器 内容精选 换一换 防护域名开启WEB基础防护之后,访问网站如果出现500,502,504等报错,并且显示Web应用防火墙和网站连接失败,如图1所示。可能的原因比较多,如防火墙拦截、源站配置错误、HTTPS/WebSockets采用不安全的协议版本、后端服务器性能…

hpe服务器稳定性,hpe服务器安装与配置

hpe服务器安装与配置 内容精选 换一换 Ceph集群可采用TaiShan服务器和x86服务器混合部署的方式和全TaiShan服务器的非混合部署方式。在混合部署场景下,三个Ceph节点中,两台为TaiShan 200服务器(型号2280),一台为Fusion Server服务器(型号2288…

曙光服务器Raid配置

前言 这几天一直在某单位做信息化项目,这几天接触的国产化服务器,当然服务器型号是定制的,官网是没有这个型号的,并且系统也是国产化的。下面附上几幅工作照片! 一、曙光服务器Raid配置说明 1.1、Raid配置途径 适用…

家用 NAS 服务器(1)| 配置选择及准备

家用 NAS 服务器(1)| 事前准备及配置选择 原文地址:CSDN 博文 后文链接:家用 NAS 服务器(2)| Hyper-V的Winserver 2022和Ubuntu 22.04双系统 文章目录 家用 NAS 服务器(1)| 事前准…