后端服务架构的不同与区别

Serverless无服务架构:用服务代替服务器 Serverless无服务架构:用服务代替服务器 Serverless架构于2014年进入大众视线,如今,阿里云、AWS、谷歌云、微软Azure和IBM Bluemix等云厂商都有了这个服务。项目Serverless化可大幅降低IT成本,将云的费用减少10%-90%。可口可乐架构师Patrick Brandt曾向外媒披露,向Serverless架构转移是主要出于降低IT运维费用并且提高服务部署效率... 阅读详情

单体架构

所有的代码操作,都集成在一个服务里,并且只使用这个服务进行维护开发,只需要部署在一台服务器即可,也就是共同使用同一个WEB服务器运行。 图片示例:

优点:

  1. 容易部署与维护
  2. 小型服务容易开发与上线

缺点:

  1. 耦合度极大,如果后期需要扩展,基本扩展不了。
  2. 一个地方出问题,其他地方一样受到牵连。

垂直架构

将单体架构中的每个模块分成多个模块运行在多个服务器,一个单体项目就是一个模块。例如:当前有两个模块分别是首页和评论,如果是单体架构,那么他们都是在同一个服务下。垂直架构就是把他们拆成两个,分别放置不同的单体服务下,运行在两个不同的web服务器上。

示例图;和单体架构的图基本一样,只是垂直变成了多个而已。

优点:

  1. 拆分后每个模块独立运行,扩展和优化都方便。
  2. 并发的能力得到提升。
  3. 出现故障后不影响其他服务

缺点:

  1. 某些业务代码会有重叠,增加了耦合度。
  2. 他们之间不能互相调用,除非开放接口通过HTTP调用
  3. 如果端口发生改变,后续每个服务也要修改端口号。

分布式架构

在垂直架构的基础上,使用了分层概念。例如:前台controller和后台service。

  1. 前台负责对外部的发送消息,接收消息,对后台发送消息和接收消息,前台就是一个中转站。
  2. 后台负责处理逻辑,在把逻辑传给前台。每个服务模块重复的代码也会统一封装,供别的服务调用。

示例图:分布式和垂直架构类似,比垂直架构多了公共模块的抽离,和分层概念。

优点:

  1. 把公共类抽离,去除每个服务上的冗余代码。
  2. 每个服务可以单独优化和扩展
  3. 分层让入口统一发送到一个模块,不需要每个模块都设置接口。
  4. 分层以后架构更多清晰,每个模块功能单一,扩展性更强

缺点:

  1. 耦合度集中在公共模块,分布式还是以传统的http进行交互。
  2. 调用类的关系变得复杂,维护成本变高。

SOA架构

在分布式的基础上,增加服务注册中心,相当于增加一个nacos,对比分布式,可以丢弃老的http发送机制,通过nacos统一调用和获取每个服务的资源。

示例图:和分布式的类似。

优点:

  1. 服务注册中心,可以解决每个服务自动发现,注册,调度问题。
  2. 就算某个服务的地址更改也不影响其他服务对他的请求。

缺点:

  1. 每个服务高度依赖注册中心,如果注册中心宕机,会引起每个服务调用资源失败。
  2. 调用链路变长,如果下游服务发送错误,会导致上游服务调用失败。

微服务架构

是SOA架构的一种扩展,微服务会创建一个大的管理服务,然后在这个服务下创建每个小型服务,每个服务对应一个模块,打包,部署等都是自己完成,不与其他模块耦合。 与以前不同的是,SOA以前的架构都是一个包一个模块,微服务则是,一个包多个模块,每个模块又是一个包。

示例图:

优点:

  1. 服务独立拆分,单独打包,部署,连接不同DB,方便升级。
  2. 服务之间可以通过注册中心,RPC,REST调用。
  3. 每个服务可单独放在不同电脑上,理论上可以无限扩展。

缺点:

  1. 数据一致性问题。
  2. 分布式事务问题。
  3. 各服务调用的时候,因网络可能会抖动,不清楚具体要设置多少时间等待调用。
后端开发面试题9(附答案) 在SOA中,为什么长期存活的事务(Long-lived transation)不被看好,而Saga却被看好? 微服务不能做得太"微",你认为什么时候微服务太"微"了? 什么是双因素认证(Two Factor Authentication)?在一个已有的Web应用中,你如何实现这种机制? 如果你把一面镜子放在扫描仪上,会发生什么? 我想要重构一个系统,而你想要从头重写。我们来争论一下该怎么弄吧。然后我们反转角色,再争论一下。 老板要你对公司撒谎,你的反应是什么? 阅读详情

相关推荐

Gemini API调用指南:拆解服务架构与生产级配置

Gemini并非单一AI应用,而是由网页端、API接口和集成生态构成的三层服务网络。其核心原理在于模型能力与账户权限、计费项目、服务入口三者严格绑定,而非传统意义上的‘订阅升级’。技术价值体现在免运维沙盒调试、精细化配额控制及多模态生产就绪能力。典型应用场景包括客服对话引擎、长文档智能分析、代码辅助插件等需稳定API集成的工程实践。本文聚焦Generative AI SDK与Vertex AI双路径落地,结合gemini-1.5-pro和gemini-1.5-flash模型选型策略,提供可验证的权限配置闭环

weixin_30861459的博客 434

项目框架与如何识别项目使用的框架

如何甄别项目使用的框架

outsiderg的博客 5419

架构师必知必会系列:无服务架构与函数计算

无服务架构(Serverless Architecture)已经逐渐成为一种主流架构设计方法,与传统的基于云服务器的架构相比,无服务架构能够实现更加经济高效、弹性伸缩及自动扩容等特性。但是对于开发者而言,如何将无服务架构引入到实际的业务系统中是一个问题。在本文中,笔者将结合自身工作经验,对无服务架构以及函数计算(FaaS)进行全面的讲解。无服务架构是一种利用事件驱动或者基于消息队列的方式,快速部署和扩展应用程序的新型应用架构模式;而函数计算则是在无服务架构上构建的,可以按需动态执行代码的服务。

AI天才研究院 2148

如何识别项目使用的框架

原玉辉。

weixin_61153659的博客 2940

软件架构设计与模式之:无服务架构与函数计算

作者:禅与计算机程序设计艺术 1.背景介绍 云原生技术逐渐成为主流,越来越多的企业开始关注基于云平台部署应用,并使用微服务架构等技术架构方式。但是,应用部署到云上后,会存在一些问题。比如,服务数量增多、运维复杂度提升、开发效率下降、性能瓶颈突出等。为了解决这些问题,许多公司都开始转向无服务器架构(S

AI天才研究院 141

11、面向服务架构的现代视角与实践

本文探讨了面向服务架构(SOA)在现代技术环境下的演进与实践,分析了服务编排、公共服务与私有服务、服务模型与规范数据模型等核心概念,并指出了传统SOA与企业数据仓库架构面临的共性问题。文章强调通过去中心化责任模型、API网关、RESTful API和资源导向架构(ROA)实现更灵活、高效的系统设计。同时,提出了服务合同的重要性,结合案例分析展示了SOA转型的实际成效,并展望了人工智能、区块链和边缘计算对SOA未来发展的潜在影响。

mm9012的博客 52

三分钟了解服务架构演进及优缺点

单一应用架构 一般用于定制系统,需求明确,不会迭代,开发快 优点:项目易于管理,部署简单 缺点:测试成本高、可伸缩性差、可靠性差、迭代困难、跨语言程度差、团队协作难 解释:ABC代表三个模块,A->B->C代表调用关系 测试成本高:每个模块都需要测试,所有关联模块有需要测试 我们要测试除了A、B、C三个模块外,还需要测试A->B、B->C、A->B->C 可伸缩性差:我们在AB直接插一个D,那么我们需要改动A和B代码,才能变成A->B-&gt

qq_53344479的博客 3070

CMOS的宽/长比、传输门与三态门、锁存器与触发器、简单版图、竞争与冒险

目录 1.CMOS的宽长比 2.传输门与三态门 传输门 三态门 3.锁存器与触发器 3.1RS锁存器[3] 3.2D锁存器 3.3D触发器 4.简单CMOS器件的版图 5.竞争与冒险 1.CMOS的宽长比 关于COMS原理及结构图可以参考[1]COMS原理及门电路设计. 栅在源漏方向的长度称作栅的长L,垂直方向称为栅的宽W,如图1中NMOS的版图。 图1 以MOS管...

king阿金 1万+

Java 后端程序员必须要懂的几种框架分享

MVC 框架 MVC 模式是软件工程中的一种软件架构模式,可以把软件系统分为三个基本部分: 模型(Model),编写程序应有的功能(实现算法等等)、进行数据管理和数据库设计,。 视图(View),界面设计人员进行图形界面设计。 控制器(Controller),负责转发请求,对请求进行处理。 比较知名的 MVC 框架有 SpringMVC,是一种基于请求驱动类型的轻量级 Web 框架,目的是帮助我们后端程序员简化开发。 我个人喜欢的还有一个更轻量级的 JFinal,国人开发的,基于 Java 语言的极速

m0_70565884的博客 818

ubuntu20.04运行VINS-Mono(跑EuRoC数据集)

在VINS-Mono主工程目录下的config子目录中找到euroc文件夹,并打开其中的euroc_config.yaml文件,将其中结果输出保存路径修改为本地的绝对路径或相对路径。应该是这个功能包路径没有成功得到,直接注释了这一行,改成你电脑中安装的vins_mono的pose_graph这个功能包路径,备注:直接下可能因为包太大下不下来,我是下载的zip,再解压,将VINS-Mono-master重命名为VINS-Mono。,当时参考了几篇不同的文章,感觉我的这个配置应该也可以编译,就先尝试了一下。

2301_80311277的博客 2980

DataGridView添加新行时在单元格绑定下拉列表DataGridViewComboBoxCell

效果图如下 先在界面上添加DataGridView,添加字段no、type、param 在lord事件中新建一行 dataGridView1.Rows.Add(); 在RowsAdded事件中操作新建的行 private void dataGridView1_RowsAdded_1(object sender, DataGridViewRowsAddedEventArgs...

wuqinglaohao的博客 1986

后端Web开发框架(Java)

为什么使用Spring Boot 简化配置,无需编写太多的 xml 配置文件,效率很高; Spring 可以整合很多各式各样的框架,并能很好的集成; 基于 Spring 构建,使开发者快速入门,门槛很低; Spring Boot 可以创建独立运行的应用而不需要依赖外部组件或工具; 内置 Tomcat 服务器,无需打成 war 包,可以直接在内置 Tomcat 中运行; 提供 Maven 极简配置,以及可视化的相关监控功能,如性能监控,应用健康程度等; 为微服务

hogwarts_2022的博客 2519

STM32F030F4P6 ADC多通道定时器触发DMA搬运

主函数中等待转换完成的标志位,然后打印出来。ADC回调函数中将数值赋值给变量。配置定时器1s读一次。

qq_24426625的博客 1356

无服务架构--Serverless

云计算是大势所趋,今天信息系统建设的概念和观念,在较长尺度的“明天”都是会转变成适应云端的。Serverless+API 的这种设计方式,随着云计算的持续发展,将会成为一种主流的软件架构形式,无服务到时候也应该会有更广阔的应用空间。如果说微服务架构是分布式系统这条路当前所能做到的极致,那无服务架构,也许就是“不分布式”的云端系统这条路的起点。今天,我们已经能初步看见一些使用无服务的云函数去实现微服务架构的苗头了,所以把无服务作为技术层面的架构,把微服务视为应用层面的架构,这样的组合使用也是完全合理可行的。

FLGB 1656

STM32H750_QSPI_Flash_Configuration_With_CubeMX

本文详细介绍了如何使用STM32CubeMX配置STM32H750的QSPI Flash接口,包括硬件连接、CubeMX参数设置、代码生成与初始化流程优化。通过实战示例展示了Flash ID读取、页编程与数据读取等常用操作,并提供了调试技巧与性能优化建议,帮助开发者高效实现高速外部存储扩展。

weixin_29176179的博客 274

《FreeRTOS 入门与实战》第2章:开发环境搭建(实战)

STM32CubeIDE工程创建与FreeRTOS移植J-Link调试环境搭建SystemView可视化跟踪配置。

2301_79143213的博客 1733

【插件式微服务架构系统分享】之 解耦至上:gateway 网关与APISIX 网关的不同分工

作者:朱元禄。

jacky_zhuyuanlu的博客 1359

Asterisk中MixMonitor之支持接通后录音

一、概述 当我们使用开源的IPPBX(比如Elastix-2.5/4.0或者ISSABEL-4.0/FreePBX)的时候Outbound和Inbound路由(RingGroup/FollowMe)中有一个Call Recording选项,其值包括:Allow、Record immediately、Record On Answer和Nerver。当选择为Record On Answer,其实就是MixMonitor自带一个b选项。 尽管Asterisk自带的MixMoni...

宽简厚重—博约 1156

Web 服务架构与技术组件概述

本文简要介绍了 Web 服务的核心流程及技术组成,包括静态与动态资源的处理、Web 服务器与应用服务器的协作。通过对 Web 服务器、容器和中间件的对比,揭示了它们各自的作用和优势,帮助你更好地理解现代 Web 架构的运作方式。

这里记录我的学习轨迹、漏洞分析、CTF复盘和一些偏门技巧。 偶尔翻翻协议,常常调调漏洞,目标是在0和1之间找到属于自己的战斗力。 3421

【WorkBuddy专栏68】HY3绕路部署vsDS4直击根因——一次真实踩坑揭露两个AI模型的推理差距

【WorkBuddy专栏68】HY3绕路部署vsDS4直击根因——一次真实踩坑揭露两个AI模型的推理差距

AI人人懂 560

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

汇总:7. 后端服务架构

SOA和微服务架构的区别? https://www.zhihu.com/question/37808426 windows下 zookeeper dubbo 安装+配置+demo 详细图文教程 http://blog.youkuaiyun.com/qq_22859871/article/details/50266597 zookeeper下载地址 http://www.apache.org/dist/...

北京Java青年 3052

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Nginx与Tomcat的区别

Nginx 和 Tomcat 在Web服务器领域各有所长,它们通常不是直接的竞争者,而是互补的工具。而Tomcat 则是一个强大的Java Servlet容器,专注于执行Java Web应用程序。在现代Web开发中,选择合适的服务器软件对于构建高性能、可靠的应用程序至关重要。Nginx 和 Tomcat 是两种常见的服务器软件,尽管它们都可以被归类为Web服务器,但它们的设计目标和应用场景有着本质的不同。本文旨在探讨Nginx 和 Tomcat 的主要区别,以及它们如何协同工作来提供高效的服务。

qq_45831414的博客 1581

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

微服务和传统服务架构 介绍与区别

单块架构应用:功能集中,代码和数据中心化,一个发布包部署后运行在同一个进程中的应用程序 单块架构的优势: 1)易于开发 2)易于测试 3)易于部署 4)易于水平伸缩(所有的功能都会打成一个包,在集群中新建一个节点,配置好节点的运行环境,复制软件包到响应的位置,保证负载均衡的分发策略有效分发到当前节点即可) 面临的挑战: 1)维护成本增加,代码量过大,不利于快速定位问题 2)持续交付周期长:构建 部...

Ymh_Sirius的博客 6196

后端面试必备:Nginx upstream 中的 ip_hash 与 url_hash 作用与区别详解

在构建高可用、高性能的Web服务架构时,负载均衡是不可或缺的关键组件。Nginx作为一款强大的反向代理服务器,提供了多种负载均衡算法,其中ip_hash和url_hash是两种常用的会话保持机制。本文将深入探讨这两种算法的原理、应用场景及区别,并通过流程图帮助读者更好地理解其工作机制。

qq_58299462的博客 1274
上一篇: Java 解析线程的几种状态详解
下一篇: 常用类学习(String类和StringBuffer类详解)
Java技术那些事儿
博客等级 码龄5年 2306粉丝 2584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值