BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

微服务设计介绍

| 作者 Jan Stenberg 关注 34 他的粉丝 ,译者 张龙 关注 14 他的粉丝 发布于 2014年6月18日. 估计阅读时间: 2 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

长久以来,我们一直在构建着一体化的软件,后来转向了SOA,不过依然存在问题,现在我们又遇到了微服务。近日,Russ Miles在使用Java平台设计与构建抗脆弱的微服务介绍中谈到了软件开发的现状。

Russ比较了大圆石、岩石与鹅卵石,其中像大圆石这样的大块石料是很难变化或是移动的。SOA则类似于岩石,依然难以移动,无法满足我们的期望。微服务类似于鹅卵石,是很容易移动的。

Russ认为抗脆弱意味着我们需要对系统进行分解;我们不仅要拥抱变化,还要依靠变化而成长,这才才会变得越来越好。若想达成这一点,首要的就是简单性,通过很多小东西来完成一件事,实现一个目标。在向微服务转变时,设计简单的组件与系统是关键所在。我们要聚焦在组件的演化上,以及如何构建系统才能支持演化与改变。

Russ将微服务定义为单一目的的服务,它只做一件事,并且粒度划分良好,支持系统的演化以及你认为在运行期与设计期重要的东西。主要的焦点在于要能构建适应性良好的软件,只有粒度足够细,能够支持架构变化的差异性才能做到。

微服务是以正确的方式做SOA的事情么?Russ认为SOA的一个问题在于相对于UNIX管道来说这个术语包含了太多的内容。他认为管道是非常重要的,是驱动微服务创建的主要动力。在SOA中,特别是按照层次组织的服务,我们丧失了数据流,因为这是在服务内部编排的。

Russ听到的一个很大的抱怨就是将一个系统划分为多个小服务时遇到的管理与监控问题。他给出的建议是无论成功抑或失败都不要构建发送消息的服务,而是让其发送“可执行的信息”,服务不仅应该告知自身的问题,还要提供解决方案。

查看英文原文:An Introduction to Microservices Design

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

还不能很好领会作者的意思 by 李 新

"Russ听到的一个很大的抱怨就是将一个系统划分为多个小服务时遇到的管理与监控问题。...还要提供解决方案。"
这段到底指的是什么呢? 不是很明白

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT