写点什么

微服务设计介绍

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

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

关注

评论

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

Surpass Day——Java this关键字

胖虎不秃头

Java 10月月更 se

Sentinel Go-毫秒级统计数据结构揭秘

柠檬汁Code(binbin0325)

数据结构 源码分析 限流 Sentine 10月月更

LinkedList源码分析(一)

知识浅谈

linkedlist 10月月更

SpringCloud版本升级后bootstrap.yml配置不生效

共饮一杯无

Java SpringCloud spring-boot 10月月更

Arduino ESP32-C3 入门初探

矜辰所致

Arduino ESP32-C3 10月月更 Ard

Web3流支付迎来新质变,Zebec开放Zepoch节点申请

小哈区块

【一Go到底】第八天---用户输入

指剑

Go golang 10月月更

拿到字节跳动offer后,又收到了阿里的面试邀请,二面迎来了P9"盘问"

Geek_0c76c3

Java 开源 程序员 架构 开发

Windows开发工具安装

青柚1943

dapr

Surpass Day——Java 多态、final关键字、常量、package、import、访问控制权限修饰符

胖虎不秃头

Java 10月月更 se

.NET现代化应用开发 - CQRS&类目管理代码剖析

MASA技术团队

.net CQRS MASA Framewrok MASA

思特奇加入openGauss开源社区,共同推动数据库产业生态发展

openGauss

数据库 开源社区

要求必须使用强密码

源字节1号

Qt | 按钮控件的使用 QCheckBox

YOLO.

qt 10月月更 C++

Web3流支付迎来新质变,Zebec开放Zepoch节点申请

西柚子

Surpass Day——Java static关键字、继承、方法覆盖

胖虎不秃头

Java 10月月更 se

七天杀上GitHub榜首!Java并发编程深度解析实战,JUC底层原理揭秘

Geek_0c76c3

Java 数据库 开源 程序员 架构

版本控制 | 一文了解VR内容创作的步骤与关键技术

龙智—DevSecOps解决方案

vr VR/AR

openGauss社区理事长江大勇:openGauss联合产业界创新,共建开源数据库根社区

openGauss

开源数据库

直呼内行!阿里大佬离职带出内网专属“Redis设计应用实践”学习笔记

Geek_0c76c3

Java 数据库 开源 程序员 架构

Qt | 实现网页历史记录和查找功能 QWebEngineView

YOLO.

qt 10月月更 C++

代码质量与安全 | 清洁代码(Clean Code)比您认为的更重要

龙智—DevSecOps解决方案

clean code 清洁代码

线下活动 | 龙智Atlassian ITSM 解决方案即将亮相2022全球运维大会上海站

龙智—DevSecOps解决方案

gops GOPS全球运维大会

议题征集|Flink Forward Asia 2022 正式启动

Apache Flink

大数据 flink 流计算 实时计算

攻击面分析及应对实践

vivo互联网技术

安全 风险管理 互联网安全

关于 Angular view Query 的 id 选择器问题的单步调试

汪子熙

typescript 前端开发 angular web开发 10月月更

静态代码分析 | 数字驾驶舱时代,如何确保车载信息娱乐系统的网络安全?

龙智—DevSecOps解决方案

网络安全 车载信息娱乐系统 IVI

数据库基础

说故事的五公子

MySQL 数据库 sql

即时通讯技术周刊(第1期):懒人网络编程系列 [共14篇]

JackJiang

网络编程 即时通讯 IM

Web3流支付迎来新质变,Zebec开放Zepoch节点申请

鳄鱼视界

文盘Rust -- struct 中的生命周期

京东科技开发者

redis rust 生命周期 Trait Trait Objects

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