写点什么

微服务设计介绍

  • 2014-06-16
  • 本文字数:682 字

    阅读完需:约 2 分钟

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

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

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

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

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

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

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

2014-06-16 23:042197
用户头像

发布了 88 篇内容, 共 269.0 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

JAVA编程规范之集合处理

源字节1号

软件开发 后端开发

DBPack 读写分离功能发布公告

峨嵋闲散人

分布式事务 分库分表 读写分离 dbmesh Database Mesh

蛋糕可以一刀切,研发需求可以吗? | 敏捷实践

LigaAI

程序员 敏捷 产品经理 需求分析 敏捷管理

【LeetCode】最长的斐波那契子序列的长度Java题解

Albert

LeetCode 7月月更

Room:又要写业务代码了?看看我吧,给你飞一般的感觉!

编程的平行世界

数据库 Android; android jetpack

软件研发效能需求价值流分析专题

思码逸研发效能

研发效能 软件研发

许式伟:Go+ 演进之路

七牛云

golang 编程语言 go+

【福利活动】给你的代码叠个 Buff!点击“茶”收好礼

亚马逊云科技 (Amazon Web Services)

Lambda Code

QT | VS2017 + Qt5.14.2环境搭建

YOLO.

环境搭建 vs Qt Creator 7月月更

激情的开头,大意的结局,Python反爬加更,好友求助米哈游的API,给他安排上

梦想橡皮擦

Python 爬虫 7月月更

微信内H5页面唤起小程序&App

南城FE

前端 微信开发 7月月更

CRMEB Pro v1.4,让用户体验更出彩!

CRMEB

龙蜥社区招募推广大使&体验官啦!| 人人都可以参与开源

OpenAnolis小助手

开源 龙蜥社区 社区建设 官网 体验官

Android/Unity大乱斗-完整双方集成交互指南

芝麻粒儿

android Unity 7月月更

浅谈 Slack Channel 支持的一些提高工作效率的特性

汪子熙

远程办公 即时通讯 SAP Slack 7月月更

对接企业微信,客户关系管理也可以很简单!

CRMEB

web前端培训如何使用CSS自定义属性实现骨架屏

@零度

CSS 前端开发

python 中Mixin混入类的用法

杨彦星

Python

手机怎样控制led显示屏发视频?

Dylan

ipad 手机 wifi LED LED显示屏

Python 入门指南之交互式输入行编辑历史回溯

海拥(haiyong.site)

Python 7月月更

LeetCode-111. 二叉树的最小深度(java)

bug菌

Leet Code 7月月更

有证书有目录!|海泰密码服务平台

电子信息发烧客

RocketMQ系列一:入门级使用演示

hum建应用专家

云计算 RocketMQ

服务网格中 sidecar 流量治理与多协议嗅探

博文视点Broadview

技术分享| HTTP 代理

anyRTC开发者

https 音视频 网络协议 HTTP

泛云桌面关键技术分析

A池伟

云桌面 算力网络

SpringBoot自动装配原理

急需上岸的小谢

7月月更

爱奇艺加入龙蜥社区,携手打造多元化视频生态底座

OpenAnolis小助手

开源 爱奇艺 龙蜥社区 CLA 社区建设

java零基础入门-综合案例(File类+递归)

喵手

7月月更

【C语言】进阶指针night

謓泽

7月月更

微服务设计介绍_SOA_Jan Stenberg_InfoQ精选文章