当前位置: 首页 > news >正文

关于SOA和微服务

面向服务的架构(SOA)

想象一下,你正在经营一家大型超市,超市里有各种各样的商品和服务。SOA 就像是超市的各个部门,比如生鲜区、家电区、收银台等等,每个部门提供特定的服务。这些服务(部门)通过一定的规则(如通信协议)相互协作,共同为顾客(即应用程序或用户)提供服务。在 SOA 中,服务的粒度可能比较大,一个服务可能包含多个功能,比如生鲜区可能同时提供蔬菜、水果和肉类的服务。

微服务

现在,让我们把这个超市变成一个市场,市场里有许多小摊位,每个摊位只卖一种东西,比如一个摊位只卖苹果,另一个只卖香蕉。这就是微服务的理念——每个服务都非常小,只负责一项具体的任务,而且这些服务是独立的,可以单独部署、扩展和升级。这就像市场里的摊位,你可以随时调整某个摊位的商品而不影响其他摊位。

微服务与 SOA 的关系

微服务可以看作是 SOA 的一个子集或一种进化,它继承了 SOA 的面向服务的原则,但是将服务的粒度细化到了极致。在微服务架构中,服务的边界更加清晰,每个服务只做一件事,这使得系统更加灵活、易于扩展和维护。

总结

  • SOA 是一个更广泛的概念,涵盖了多种服务架构的风格,服务的粒度可以从较大到较小。
  • 微服务 是 SOA 的一个特例,它强调极小的服务粒度,每个服务只关注单一职责,独立部署和扩展。

所以,微服务确实是面向服务架构的一种,但它通过进一步细化服务的粒度,实现了更高的灵活性和可维护性。

区别概要

思想上:微服务的目的是解耦而SOA的目的是实现数据的互通和共享性。

协议:微服务会使用一些轻量级的通信协议(Restful API)

基础设施要求,微服务更加强调开发运维的持续交付。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • docker swarm如何让两个副本分别跑在两台不同的主机上
  • ubuntu 24.04 软件源配置,替换为国内源
  • 【GitLab】使用 Docker 安装 GitLab:配置 SSH 端口
  • 数据守护者:SQL一致性检查的艺术与实践
  • dev c++中,在C++11模式下编译带M_PI宏的文件报错的解决办法
  • es查看与删除索引
  • LVGL在方形屏幕上的参考案例
  • Python爬虫——爬取某网站的视频
  • 【python学习】如何利用threading 库提升性能:深入解析与实战应用 模拟温格高的环法冠军之路
  • 数据维度的魔法:SQL多维数据模型的构建与操作
  • CI/CD 自动化:最大限度地提高极狐GitLab 群组的“部署冻结”影响
  • JAVA打车小程序APP打车顺风车滴滴车跑腿源码微信小程序打车系统源码
  • AOP实战
  • 【学习日记】【第五十一章 Linux中断实验】【流程图】——正点原子I.MX6U嵌入式Linux驱动开发
  • centos系统配置转发和iptables使之成为网关
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • ES6 学习笔记(一)let,const和解构赋值
  • flask接收请求并推入栈
  • javascript数组去重/查找/插入/删除
  • LintCode 31. partitionArray 数组划分
  • markdown编辑器简评
  • SQLServer之索引简介
  • Webpack 4x 之路 ( 四 )
  • 观察者模式实现非直接耦合
  • 警报:线上事故之CountDownLatch的威力
  • 温故知新之javascript面向对象
  • 新书推荐|Windows黑客编程技术详解
  • Semaphore
  • 函数计算新功能-----支持C#函数
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • # Redis 入门到精通(一)数据类型(4)
  • #### golang中【堆】的使用及底层 ####
  • #define与typedef区别
  • $.each()与$(selector).each()
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (160)时序收敛--->(10)时序收敛十
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (实战篇)如何缓存数据
  • (一)、python程序--模拟电脑鼠走迷宫
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • (自用)网络编程
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .describe() python_Python-Win32com-Excel
  • .net core 依赖注入的基本用发
  • .net 按比例显示图片的缩略图