写点什么

微服务设计介绍

  • 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:042189
用户头像

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

关注

评论

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

面试总结-Java-2年

U2647

Java 面试 4月日更

架构实战营 - 模块 02 作业

架构实战营

数据仓库为什么要分层

五分钟学大数据

数据仓库 4月日更

模块二 分析微信朋友圈的高性能复杂度

ifc177

智能小车系列-NODE版SBUS飞控协议解析历程

波叽波叽啵😮一口盐汽水喷死你

SBUS 飞控协议 SBUSReceiver S.BUS SBUSUART

【AI全栈SOTA综述 】这些你都不知道,怎么敢说会AI?【语音识别原理+实战】

cv君

AI 算法 音视频 引航计划

架构师实战营 模块二作业 微信朋友圈高性能架构分析

好吃不贵

PHP异常处理

Sakura

4月日更

最新、最全、最详细的 MySQL 数据库学习笔记总结(2021最新版)

民工哥

MySQL 数据库 Linux 后端 运维工程师

写作平台一周年 | 我曾陪伴走过四季春秋

架构精进之路

个人总结 4月日更 1 周年盛典 我和写作平台的故事 InfoQ 写作平台 1 周年

Prometheus counter 四大 query 函数详解

Grafana 爱好者

云原生 Prometheus 可观察性 PromQL

架构实战训练营 - 模块二课后作业

Johnny

架构实战营

架构实战营——作业二: 朋友圈架构分析

开拓纪

微信朋友圈 #架构实战营

Toolkit 大更新:UI 更美观,用起来更方便!

程序员小航

Java IDEA idea插件 IntelliJ IDEA JSON格式化

让孩子爱上阅读(三)

箭上有毒

读书笔记 4月日更

模块二作业:微信朋友圈高性能复杂度分析

@oo?金樱子

联想小新潮7000安装CentOS后重装Windows10

笑春风

最详细的 K8S 学习笔记总结(2021最新版)!建议收藏

民工哥

Kubernetes 容器 运维 后端

模块二作业

Chris Cheng

架构实战营

爬虫IP代理池代码记录

空城机

Python 爬虫 代理IP 4月日更

架构实战营 模块二 课后作业

Lingjun

架构训练营

架构实战营模块2作业

竹林七贤

架构实战营

volatile 关键字需要知道的几点

lich0079

Java volatile Disruptor unsafe false sharing

架构师实战营-模块二作业

大可

架构实战营模块2作业

阿体

Sqlserver2008参数化踩的坑

风翱

SqlServer 4月日更

听说你们写毕业设计没有动态数据?Python教你一步完成!

大数据老哥

工作中的设计模式 —— 建造者模式

程序员小航

Java 设计模式 建造者模式

Oozie平台调度

大数据技术指南

oozie 4月日更

架构训练营模块 2 作业 - 张动动

张大彪

架构训练营

python 异常处理

若尘

异常 异常处理 Python编程

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