微服务架构 面向服务型架构

我不了解面向服务的体系结构。 我认为这只是那些高度理论化和非常不切实际的软件体系结构模式之一。

换句话说,我认为这是建筑狂热者的梦想。

然后,我读了Martin Fowler的标题为Microservices的文章,面向服务的体系结构突然开始对我有意义。

是什么改变了我的思想?

Martin Fowler 将微服务架构指定如下:

简而言之,微服务架构风格是一种将单个应用程序开发为一组小服务的方法,每个小服务都在自己的进程中运行并与轻量级机制(通常是HTTP资源API)进行通信。 这些服务围绕业务功能构建,并且可以通过全自动部署机制独立部署。 这些服务的集中管理几乎没有,可以用不同的编程语言编写并使用不同的数据存储技术。

读完这些后,我的脑海里有些响亮的声音。 我意识到微服务架构听起来很像面向服务的架构 ,其指定如下:

面向服务的体系结构(SOA)是一种基于离散软件的软件设计和软件体系结构设计模式,这些离散软件将应用程序功能作为服务提供给其他应用程序。 这称为面向服务。 它独立于任何供应商,产品或技术。

服务是功能齐全的单元,例如检索在线银行对帐单。 服务可以被其他软件应用程序组合以提供大型软件应用程序的完整功能。

我为什么不早点得到这个? 我认为有两个原因:

  1. 我不是非常喜欢精美的体系结构图和技术失误,而这些都是经常用来解释面向服务的体系结构的工具。 我猜你可以说我看不见树木上的森林。
  2. 我在职业生涯中创建的大多数应用程序都是“常规” Web应用程序。 换句话说,向用户显示的用户界面是在后端呈现的。 在这些应用程序中使用面向服务的体系结构对我来说没有任何意义,因为将所有内容添加到相同的二进制文件中比较简单。

单页Web应用程序的兴起对我的思想产生了重大影响。 当后端向前端提供REST API来决定应如何呈现所接收的信息时,面向服务的体系结构将变得有意义,因为它具有以下优点:

  • 我们可以将应用程序分为几个部分。 每件作品都满足特定的需求,并具有自己的领域特定语言。
  • 我们只能扩展应用程序中需要更多资源的那些部分。
  • 我们可以部署单个服务,而不是部署整个应用程序。
  • 不同的服务不必使用相同的编程语言。 换句话说,我们可以使用最好的工具来完成这项工作。
  • 不同的团队可以创建(和维护)不同的服务。

面向服务的体系结构不是灵丹妙药,但是它提供了解决由整体体系结构引起的问题的解决方案。

有两个最让我困扰的问题:

  • 很难将代码组织到与应用程序其他模块没有依赖关系的模块中。 尽管我认为这不是单片式架构的错,但仍然是从大多数单片式应用程序中发现的一个问题( 如果使用Spring,则还有其他问题 )。
  • 整体语言常常充满折衷。 我承认,我对领域驱动的设计有些痴迷,我很乐意在工作中使用它的全部功能。 但是,当所有代码都属于同一个整体且必须满足具有不同词汇的不同业务需求时,很难做到这一点。 也许这是企业应用程序经常使用非常通用且令人困惑的语言的原因之一。

也许我对此有点太热情了,但是可以肯定地说,面向服务的/微服务架构终于进入了我的工具箱。

这个名字并不重要

面向服务的体系结构可能声誉不好,因为它听起来像是企业精神,而且每个人都知道企业精神是一件坏事(至少在时髦圈子中如此)。 也许这就是为什么有人开始称其为微服务架构的原因。

或者也许我不太了解面向服务的体系结构,这就是为什么我看不到它与微服务体系结构之间的任何区别的原因(这可能是事实)。

因为我不是体系结构顾问,所以我并不在乎这种体系结构样式的名称是什么。 我所关心的是,我找到了一种解决由整体式架构引起的问题的新方法。

翻译自: https://www.javacodegeeks.com/2014/03/the-microservice-architecture-sounds-like-service-oriented-architecture.html

微服务架构 面向服务型架构

微服务架构 面向服务型架构_微服务架构听起来像面向服务的架构相关推荐

  1. 微服务跨数据库联合查询_微服务架构下,解决数据库跨库查询的一些思路

    加关注,不迷路! 前言 在服务做微服务改造后,原先单库join查询已经不能满足要求,每个拆分的微服务对应一个数据库实例,而且部署在不同的服务器上,那么解决"跨库查询"就势在必行了. ...

  2. blog微服务架构代码_DDD+微服务大型案例:Uber如何从复杂的RPC微服务转向面向业务领域的微服务架构DOMA? -优步工程博客...

    最近,围绕面向服务的体系结构,尤其是微服务体系结构的弊端进行了大量讨论.仅仅几年前,由于许多人宣传微服务架构的好处,例如独立部署形式的灵活性,明确的所有权,系统稳定性的改进以及更好的关注点分离,很多人 ...

  3. 单片机 架构 程序 经验总结_收藏!牛人总结的单片机应用程序架构

    工作中经过摸索实验,总结出单片机大致应用程序的架构有三种: 1. 简单的前后台顺序执行程序,这类写法是大多数人使用的方法,不需用思考程序的具体架构,直接通过执行顺序编写应用程序即可. 2. 时间片轮询 ...

  4. c3p0 服务启动获取连接超时_微服务架构中的熔断、降级

    微服务架构中熔断和降级是保证服务高可用的一项重要功能点,微服务区别于一体化项目的最大区别也再于熔断和降级,很多微服务项目的开发人员对熔断的理解就是当服务不可用的时候,为了让整体服务可以正常运行,需要让 ...

  5. 微服务 注册中心的作用_微服务架构Dubbo之注册中心(Zookeeper)

    注册中心简介 在微服务架构中,注册中心是核心的基础服务之一.在微服务架构流行之前,注册中心就已经开始出现在分布式架构的系统中.Dubbo是一个在国内比较流行的分布式框架,被大量的中小型互联网公司所采用 ...

  6. 微服务跨数据库联合查询_微服务架构中如何解决连表查询的问题?

    谢邀. 首先我说一个很实际的问题,不是任何公司都需要微服务,或者说,不要上来就搞微服务,我看过北京不少创业公司的项目,这么说吧,估值在2亿美金以下的创业公司,基本上没必要搞什么微服务,总共就二十几口程 ...

  7. 民科微服务照片怎么上传_微服务 (为微信公众号提供服务)

    微服务 面向中小企业的微服务产品提供自动应答菜单.微网站生成与管理.微信CRM系统服务.微信公众平台客服服务等综合性的运营管理标准化服务,是多功能的微信运营管理平台. 微信管家是将企业微信公众账号通过 ...

  8. mysql架构设计书籍推荐_最近很火的MySQL:抛开复杂的架构设计,MySQL优化思想基本都在这...

    摘要: 冲区才用缓冲区,即SQL_CACHE:sort_buffer_size:排序缓冲区.3)分库分表因为数据库压力过大,首先一个问题就是高峰期系统性能可能会降低,因为数据库负载过高对性能会有影响. ...

  9. 微专业数据分析师 数据资料_微数据:元数据的内容

    微专业数据分析师 数据资料 In HTML most tags are semantic: that is, they carry meaning, but there is no way to pr ...

最新文章

  1. 抛出一个nullpointerexception_Java 14 发布了,再也不怕 NullPointerException 了!
  2. 伦敦大学学院、UC伯克利联手,撰文综述深度强化学习泛化研究
  3. 数据中心使用dtu远程连接oracel 9i数据库问题
  4. 【转】Linux系统安装Redis详细过程
  5. 阿里云 mysql 超时_mysql数据库超时
  6. Verilog经验总结
  7. 荣耀Magic4 Pro延迟上市:全新一代LTPO超级四曲面屏加持
  8. springcloud项目的启动顺序_spring boot/cloud 启动方式说明
  9. java servlet是单例吗_Servlet是单例的吗?
  10. python各个模块
  11. C#使用Socket简单异步通讯
  12. win10录屏_99%的人都忽略Windows自带的录屏软件,超好用!
  13. smartdns 部署最佳实践
  14. Unity小游戏教程系列 | 创建小型太空射击游戏(一)
  15. 关于C语言中的int - float 计算的问题
  16. 《动手学深度学习》(PyTorch版)代码注释 - 32 【RNN_with_zero】
  17. 上传大文件报错413问题处理
  18. zc706开发板的linux开发,第一篇:zc706 开箱及开发环境搭建
  19. Android10有sdcard读写权限,仍无法读写sdcard中文件问题解决
  20. 史玉柱10大广告法则

热门文章

  1. SIM卡及PIN码PUK码知识
  2. 计算机网络技术对教学的作用,浅谈计算机网络技术在教学应用中的作用和发展趋势.docx...
  3. 小明用 Python 开发一个 【暴力破解压缩文件 zip 密码】,省了 250 块钱
  4. 【VScode】使用VScode内置的调试控制台来调试JS
  5. 解决OutLook Express错误代码0x800C0133
  6. 古剑奇谭2服务器1月20维护,《古剑奇谭二》10月25日例行维护更新公告
  7. word删除多余换行_批量删除Word中多余回车
  8. Kernel启动流程源码解析 2 head.S
  9. 便利店神器 --- 收银台系统
  10. uni-app实现一个循环卡片效果