Atitit.架构设计趋势 设计模式 ---微服务架构  soa

什么是微服务架构?1

、微服务与SOA的关系 :微服务架架构师面向服务架构(SOA)的一种特定实现1

微服务与康威定律2

微服务的一些设计 断路器 幂等2

《微服务设计》([英] 纽曼(Sam Newman))3

微服务架构与实践4

什么是微服务架构?

Martin Fowler认为,微服务架构是一种独立部署的软件应用设计方式。这种架构方式没有准确的定义,但是在业务能力、自动部署、端对端的整合、对语言及数据的分散控制上有着共性。Martin Fowler曾在文章中详细阐述了微服务的特征,资深架构师顾伟在分享中总结了其中最重要的三点:轻量可复用、安全可伸缩、失败设计。很多企业在发展中遇到了瓶颈,CIO们纠结如何让企业的架构更有弹性、并节约成本的增加弹性、如何开放服务数据、并规避开放之后的安全问题。而微服务架构正能够满足这些需求。但是,微服务架构也为企业带来一些挑战:微服务的粒度更细,导致了更多的进程;微服务架构整合了多种服务形态,却需要提供统一的接口;开放服务之后,业务量不稳定,增加了CPU和内存的负担。

微服务架构就能够很好地解决这个问题。微服务架构自 2010年开始逐渐被大家熟知,通过对传统单块应用进行服务化切分,把一个大而复杂的问题化解为多个小而简单的问题,服务之间通过契约来约定依赖,做到服务独立发布和演进。今天,微服务架构已经被广泛运用在像 Google、 Facebook这样的大型互联网公司,为他们的快速交付和持续创新提供软件架构支撑。本书中有大量微服务架构实战经验的总结,不仅仅有应用架构设计的内容,还涵盖了微服务大背景下应用测试、发布、日志、监控等方面,让读者可以全面应对微服务架构需求。

、微服务与SOA的关系 :微服务架架构师面向服务架构(SOA)的一种特定实现

微服务与康威定律

Melvin Conway于1968年发表的论文《 How Do Committees Invent 》指出:系统设计的结构必定复制设计该系统的组织的沟通结构。这一论断被称为“康威定律”。在《Exploring the Duality Between Product and Organizational Architectures %201309%E2%80%93%201324_c5c2350e-013c-4065-a2f9-d95eb32177d5.pdf)》一文中,作者发现紧密耦合的组织(例如典型的商业产品公司,所有员工在同一地点工作,具有高度一致的愿景与目标)开发的软件倾向于较少模块化,而松散耦合的组织(例如分布式的开源社区)开发的软件则倾向于更加模块化、耦合较少。

微服务的一些设计 断路器 幂等

2)断路器
使用断路器,当请求下游服务发生一定数量的失败后,短路器打开,接下来的请求快速失败。一断时间后,查看下游服务是否已服务,重置断路器。
3)舱壁
未每个下游服务建立单独的连接池。超时和断路器资源受限时释放资源,舱壁第一时间确保它不成为限制。还有一个拒绝请求的舱壁,用以避免资源饱和,称之为减载。
4)隔离
当下游服务离线,上游服务不受影响。设置成为服务间隔离。

5、幂等

幂等操作,多次执行所产生的影响,均与一次执行影响相同。可以把某些特定业务操作设计成幂等的,比如客户下单送积分。

4、版本管理

1)尽可能推迟破坏性修改
宽进严出的原则
 3)不同的接口版本共存
最好共存两个版本

《微服务设计》([英] 纽曼(Sam Newman)) 

Line 301: 第1 章 微服务 1

Line 319: 第2 章 演化式架构师 11

Line 341: 第3 章 如何建模服务 24

Line 355: 第4 章 集成 32

Line 396: 4.15 与第三方软件集成 61

Line 403: 第5 章 分解单块系统 66

Line 434: 第6 章 部署 86

Line 458: 第7 章 测试 110

Line 487: 第8 章 监控 131

Line 501: 第9 章 安全 143

Line 533: 第10 章 康威定律和系统设计 161

Line 555: 第11 章 规模化微服务 171

Line 606: 第12 章 总结 204

微服务架构与实践

第 1部分 基础篇

第 1章 单块架构及其面临的挑战 ............................................. 3

第 2章 微服务架构综述 .................... 13

第 2部分 实践篇

第 3章 构建**个服务 .................... 41

第 4章 Hello World API .................... 45

第 5章 构建 Docker映像 ................. 61

第 6章 部署 Docker映像 ................. 71

第 7章 持续交付流水线 .................... 85

第 8章 日志聚合 .............................. 97

第 9章 监控与告警 ......................... 105

第 10章 功能迭代 .......................... 115

第 3部分 进阶篇

第 11章 微服务与持续交付 ............ 131

第 12章 微

微服务实战(一):微服务架构的优势与不足_知识库_博客园.html

微服务设计-读书笔记 - 简书.html

微服务与康威定律 - 推酷.html

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )

汉字名:艾提拉(艾龙),   EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

Atiend

Atitit.架构设计趋势 设计模式 ---微服务架构  soa的更多相关文章

  1. 基于Golang设计一套微服务架构[转]

      article- @嘟嘟噜- May/26/2018 18:35:30 如何基于Golang设计一套微服务架构 微服务(Microservices),这个近几年我们经常听到.那么现在市面上的的微服 ...

  2. 中小型研发团队架构实践三:微服务架构(MSA)

    一.MSA 简介 1.1.MSA 是什么 微服务架构 MSA 是 Microservice Architect 的简称,它是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相通讯.互相 ...

  3. Re:从 0 开始的微服务架构--(四)如何保障微服务架构下的数据一致性--转

    原文地址:http://mp.weixin.qq.com/s/eXvoJew3bjFKzLLJpS0Otg 随着微服务架构的推广,越来越多的公司采用微服务架构来构建自己的业务平台.就像前边的文章说的, ...

  4. 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)

    一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...

  5. MicroService 微服务架构模式简述

    开源地址: https://github.com/TheCodeCleaner/MicroService4Net 本文内容 微服务 微服务风格的特性 组件化(Componentization )与服务 ...

  6. Net分布式系统之五:微服务架构

    因工作较忙,抽时间将框架遇到的问题和框架升级设计进行记录. 一.背景&问题 之前框架是一个基于SOA思想设计的分布式框架.各应用通过服务方式提供使用,服务之间通信是RPC方式调用,具体实现基于 ...

  7. SOA和微服务架构

    微服务架构强调的第一个重点就是业务系统需要彻底的组件化和服务化,原有的单个业务系统会拆分为多个可以独立开发,设计,运行和运维的小应用.这些小应用之间通过服务完成交互和集成.每个小应用从前端web ui ...

  8. 如何在Python中使用ZeroMQ和Docker构建微服务架构

    @Container容器技术大会将于6月4日在上海光大会展中心国际大酒店举办,来自携程.PPTV.蚂蚁金服.京东.浙江移动.海尔电器.唯品会.eBay.道富银行.麻袋理财等公司的技术负责人将带来实践经 ...

  9. SOA和微服务架构的区别

    微服务架构强调的第一个重点就是业务系统需要彻底的组件化和服务化,原有的单个业务系统会拆分为多个可以独立开发,设计,运行和运维的小应用.这些小应用之间通过服务完成交互和集成.每个小应用从前端web ui ...

随机推荐

  1. 《uml大战需求分析》阅读笔记05

    <uml大战需求分析>阅读笔记05 这次我主要阅读了这本书的第九十章,通过看这章的知识了解了不少的知识开发某系统的重要前提是:这个系统有谁在用?这些人通过这个系统能做什么事? 一般搞清楚这 ...

  2. Caring for our seniors

    We all have our own journeys to make. And I have been thought that our journeys define us. Some jour ...

  3. MIMO下的MES均方误差详细推导过程

  4. X86上搭建交叉工具链,来给龙芯笔记本编译本地工具链(未完待续)

    故事的背景是,我买了一台龙芯2F的笔记本来装B. 为什么说是装B呢?因为不但操作系统是Linux,而且CPU还是龙芯的. 一般人有这么酷的装备吗?简直是装B大圣啊. 这里一定要申明一点,本人不是IT技 ...

  5. android5.0 aosp编译记录(由于机器硬件原因,改为4.4.2编译通过)

    编译环境必须是64位系统啊,妥妥的又装了64位的ubuntu,虚拟机推荐server版本,不带x省性能…… 接着要装openjdk 1.7,记得更新一下系统的源,下面这个不错 deb http://m ...

  6. 远程连接oracle服务器

    用户名 / 密码@172.16.16.203:1521/orcl

  7. Java学习笔记七——数组工具类Arrays

    数组工具类Arrays Java提供的Arrays类里包含的一些static修饰的方法可以直接操作数组.若将里面的方法用熟的话,那开发效率会大大提高.下面介绍其中的方法. List<T> ...

  8. Await, and UI, and deadlocks! Oh my!

    It’s been awesome seeing the level of interest developers have had for the Async CTP and how much us ...

  9. yii2 mpdf

    安装 php composer.phar require kartik-v/yii2-mpdf "*" 或者把 "kartik-v/yii2-mpdf": &q ...

  10. 【整理】--【KERNEL】内核定时器

    一.LINUX内核定时器是内核用来控制在未来某个时间点(基于jiffies)调度执行某个函数的一种机制,其实现位于 <linux/timer.h> 和 kernel/timer.c 文件中 ...