写点什么

微服务设计介绍

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

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

关注

评论

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

从AI生成视频看人工智能未来发展趋势​

felix

人工智能 AI 图片生成

【web 开发基础】PHP 自定义函数之函数的调用 -PHP 快速入门 (25)

迷彩

函数调用 函数 10月月更 web开发基础 PHP基础

图解 | 聊聊「秒杀」

小小怪下士

Java 程序员 高并发 秒杀

Vue实现日期选择器

游坦之

10月月更

【JavaWeb】一篇承载Ajax、Axios、Json的学习笔记~

游坦之

10月月更

SQL注入的题目

w010w

网络安全 SQL注入 SQL语句 10月月更

ubuntu16.04安装deb软件包教程

DS小龙哥

10月月更

电脑安装Ubuntu桌面系统(部署开发环境、直接U盘安装,针对I386工控板)

DS小龙哥

10月月更

Vue复刻华为官网 (一)

游坦之

10月月更

Java | DateFormat和SimpleDateFormat类

陌上

Java 编程 10月月更

统计匹配检索规则的物品数量

掘金安东尼

算法 10月月更

JVM是什么?Java程序为啥需要运行在JVM中?

wljslmz

Java JVM 虚拟机 10月月更

在熬夜中成长

暮春零贰

熬夜 10月月更

【JavaWeb】过滤器和监听器,就这?

游坦之

10月月更

Storm概念与架构

穿过生命散发芬芳

Storm 10月月更

SQL注入

w010w

网络安全 WEB安全 SQL注入 10月月更

VM虚拟机下Ubuntu系统扩展磁盘大小方法

DS小龙哥

10月月更

2022-10-29:go语言中的defer能非常方便地处理资源释放问题,rust语言里如何实现defer功能呢?

福大大架构师每日一题

rust defer 福大大 RAII

Vagrant定制个性化CentOS7模板

程序员欣宸

vagrant 虚拟机 10月月更

整合Mybatis、Servlet、Mysql、Axios、Filter、Session写一个入门级项目:非常适合初接触JavaWeb的小白白来进阶

游坦之

10月月更

【分布式技术专题】「架构实践于案例分析」总结和盘点目前常用分布式技术特别及问题分析

码界西柚

分布式 微服务 10月月更 微服务化

3分钟了解CDN的工作原理

阿泽🧸

CDN 10月月更

记一次网络安全应急响应流程

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

设计模式之禅01单一职责原则

okokabcd

设计模式

面试官:说说你平时都用过哪些分布式ID生成方案?

程序员小毕

Java 程序员 分布式 后端 分布式ID

数据库&基本SQL语法

w010w

数据库 sql 10月月更

Java | Date类

陌上

Java 编程 10月月更

Java | StringBuilder类/StringBuffer类

陌上

Java 编程 10月月更

【运维】Centos 7 一键 搭建 Java开发者环境

石臻臻的杂货铺

Java 运维 10月月更

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