微服务的前世今生

译者:周元昊

与许多人认为的不同,微服务的概念已有相当长的历史,SOA(面向服务的体系架构)也不是90年代才被提出的。在最近举办的伦敦微服务大会上,Greg Young就微服务核心概念的前世今生进行了演讲。其中他表示,在过去的50年间,我们一直在使用服务这一概念背后的核心思想。

Young引用了Martin Fowler微服务主要特性的描述,最重要的是其独立替换系统中单个服务的能力、对业务能力的组织以及智能端点(smart endpoint)与哑管道(dumb pipes)的使用,Young提到的这些特性SOA也同样具备。

Young提及,在1970年代最初提出的面向对象模型中,可以将一个对象理解为一个小型的计算机,用户通过向它发送信息使其工作。同时期的参与者(Actor)模式也是基于相似的概念,将参与者作为一个小计算机,用户向参与者的邮箱发送信息。它们都是微服务核心概念的前身,虽然使用的工具或消息传递方式不尽相同,但是内在的思想并没有改变。如今我们认为SOA已经失败了,而微服务将会成功,但Young表示SOA的基础概念并没有任何错误,微服务的优点在SOA架构中也早已存在。

回顾近50年的经验教训,Young引用了分布式计算第一定律来概括:如果不是真正需要就不要让系统分布式。将应用分成多个服务,再将它们部署在同一台服务器上,甚至在同一个进程上,这样做并没有不对。Young表示,大部分系统,尤其是小型业务系统,并不需要分布式来提供可伸缩性,但是可以通过分布式来提升可用性。

我们真正需要的是服务间的隔离。当各个服务在同一服务器的各自进程中运行时,我们可以确保服务间遵循相互的协议。进一步隔离的方式是将各个服务运行在独立的Docker容器中。这样减少了各服务间内容的共享,从而达到更好的隔离性。再进一步可以将每个服务运行在独立的节点上。

选择一定层级隔离的原因之一是为了处理相关的错误。当在同一个进程中运行所有的微服务时,如果进程重启,所有的服务会被停止。而将服务运行在各自的进程中的话,单个进程重启只会影响一个服务。当然重启服务器会停止所有服务,所以将各个服务部署在独立的服务器上或双服务器双实例,会大大减少重启给服务可用性带来的影响。

当然每一种隔离层级都伴随着相应的成本。使用一台服务器多个进程相对于每个服务一个节点更容易实现。这其中并没有谁对谁错,有的只是各因素间的权衡。在提升系统的隔离级别的同时,你也会相应增加系统的成本和复杂度。Young同时引用Simon Brown的话:

如果你无法在单进程的独立应用上实现构建,那你如何确信在引入网络通信后问题可以得到解决?

Young认为,使用不同的隔离策略的一个优势是我们不需要提前做出一些决定,我们也不需要保持生产环境和开发环境使用一样的隔离级别。他表示这也是使用微服务架构的一个主要好处。

明年的伦敦微服务大会将与2017年11月6-7日举办。


细说云计算

ID:CloudNote


▲长按二维码识别关注

探讨云计算的一切,

有干货,也有闲聊。



内容转载自公众号

细说云计算
细说云计算
了解更多

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

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

相关文章

在idea 中添加和删除模块Module

在idea 中添加和删除模块Module ThinkPet 2018-12-22 10:12:50 4125 收藏 1 分类专栏: idea 版权 1.添加模块 2.删除模块 ———————————————— 版权声明:本文为CSDN博主「ThinkPet」的原创文章,遵循CC 4.0 BY-SA版权协议&am…

ASP.NET Core File Providers

ASP.NET Core通过对File Providers的使用实现了对文件系统访问的抽象。 查看或下载示例代码 File Provider 抽象 File Providers是文件系统之上的一层抽象。它的主要接口是IFileProvider。IFileProvider公开了相应方法用来获取文件信息(IFileInfo)&#…

IJ实现侧边栏单独搜索

第一步任意点击一个 第二步输入要搜索的单词

关于全局ID,雪花(snowflake)算法的说明

C#版本的国外朋友已经封装了,大家可以去看看:https://github.com/ccollie/snowflake-net 强大的网友出来个简化版本:http://blog.csdn.net/***/article/details/*** (地址我就不贴了,对前辈需要最起码的尊敬&#xff0…

SecureCRT的下载、安装( 过程非常详细!!值得查看)

我自己百度联通主号有存储了 可以下下来 有视频加这个文档 就可以了 https://blog.csdn.net/qq_39052513/article/details/100272502 SecureCRT的下载、安装( 过程非常详细!!值得查看) 置顶 超Ren专属 2020-06-02 21:29:33 1…

整合Druid---SpringBoot

整合Druid(数据源) Druid简介 Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池。 Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志…

理想的互联网服务后台框架的九个要点

理想的互联网服务后台框架的九个要点对于互联网服务后台团队,开发框架的选择是非常关键的一个问题,多年的海量服务经验和教训使得我们团队深刻的认识到: 要尽早规范团队的开发服务框架,避免到了后期,各种开发语言混杂、…

虚拟机安装centeros7 无法连接网络 virsh命令找不到 删除多余的vir0 不然dubbo会有问题

进入linux ping www.baidu.com 无法访问 cd /etc/sysconfig/network-scripts vi ifcfg-ens33 修改这个文件 onbootyes 原来是on shutdown -h now 关机 然后重启虚拟机 再次ping ping www.baidu.com 就通了 https://www.zhihu.com/question/53708440 virsh命令找…

Azure 部署 Asp.NET Core Web App

在云计算大行其道的时代,当你在部署一个网站时,第一选择肯定是各式各样的云端服务。那么究竟使用什么样的云端服务才能够以最快捷的方式部署一个 ASP.NET Core 的网站呢?Azure 的 Web App 服务是个很好的选择。 下面我们会通过 Visual Studio…

联想linux笔记本评测,联想(lenovo)G460AL-ITH Linux笔记本电脑CPU测试评测-ZOL中关村在线...

这颗英特尔最新的Core i5 430M双核心处理器基于32nm工艺,核心代号为Arrandate,主频为2.27GHz,共享的三级缓存为3MB。在开启睿频加速时,单核心的主频最高为2.53GHz,并且支持同步超线程技术。同时除了支持上一代处理器所…

SecureCRT连接Linux的操作步骤

https://www.cnblogs.com/Koma-vv/p/11100565.html SecureCRT连接Linux的操作步骤 虚拟机待机:Ctrlg进入 ipconfig是Windows里面的操作 ifconfig是Linux里面的操作 解决方法:右键: 打开终端是:在桌面上,鼠标右键才可…

聊聊并发(四)深入分析ConcurrentHashMap

转载自 聊聊并发(四)深入分析ConcurrentHashMap 术语定义 术语英文解释哈希算法hash algorithm是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值。 哈希表hash table根据设定的哈希函数H(key)和处理冲突方法将一组…

IDEA 底部工具栏没有 Version Control 解决办法

IDEA 底部工具栏没有 Version Control 解决办法 百度了半天 都说VCS配置不对 但是默认IDEA是配置好的 根本不需要修改 忽然看到 工具栏的快捷键 于是 Alt 9 就出现了 完美

一个基于Microsoft Azure、ASP.NET Core和Docker的博客系统

2008年11月,我在博客园开通了个人帐号,并在博客园发表了自己的第一篇博客。当然,我写博客也不是从2008年才开始的,在更早时候,也在CSDN和系统分析员协会(之后名为“希赛网”)个人空间发布过一些…

聊聊并发-Java中的Copy-On-Write容器

转载自 聊聊并发-Java中的Copy-On-Write容器 Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后…

集成SpringSecurity---SpringBoot

集成SpringSecurity 安全简介 在 Web 开发中,安全一直是非常重要的一个方面。安全虽然属于应用的非功能性需求,但是应该在应用开发的初期就考虑进来。如果在应用开发的后期才考虑安全的问题,就可能陷入一个两难的境地:一方面&am…

大新闻!Magic Leap造假,HoloLens即将入华商用

昨天微软搞了大新闻,Terry和Alexi到了深圳,在WinHEC大会上宣布了2017上半年HoloLens正式入华商用。 而唯一竞争对手Magic Leap今天也被曝光其设备造假,各大科技媒体纷纷报道,部分相关报道如下: 【新浪科技】Magic Lea…

集成Swagger(API)---SpringBoot

集成Swagger(API) 学习目标: 了解Swagger的概念及作用掌握在项目中集成Swagger自动生成API文档Swagger简介 前后端分离 前端 -> 前端控制层、视图层后端 -> 后端控制层、服务层、数据访问层前后端通过API进行交互前后端相对独立且松耦合产生的问题 前后端集成,前端或者…

win10硬盘修复工具使用教程

DiskGenius 下载地址https://www.diskgenius.cn/download.php https://baijiahao.baidu.com/s?id1651410139210648102&wfrspider&forpc win10硬盘修复工具使用教程 小白一键重装系统 发布时间:19-11-2810:17惠州市早点科技官方帐号,优质创作者…

.NET Core Tools转向使用MSBuild项目格式

微软之前为了让.NET Core和ASP.NET Core能够支持Windows Visual Studio之外的开发平台,创建了基于project.json格式的项目系统。不过可惜,这种格式与之前的.csproj/MSBuild无法兼容。来自微软的Rich Lander近期宣布,.NET Core Tools将在最新的…