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. 关于libsvm工具箱在64位matlab下的安装说明

    LIBSVM工具箱的安装 基本方法: 1.在网上下载LIBSVM工具箱. http://www.csie.ntu.edu.tw/~cjlin/libsvm/ 2.将LIBSVM工具箱所在目录添加到MA ...

  2. 广义Euler常数

    对于区间(a,b)内f''(x)>0 那么在该区间内函数的一阶导数对应切线在该区间内只与f(x)在切点相交 1. f''(x)>0那么可知 f'(x)在该区间内是单调增的 以下图为例,过( ...

  3. 友盟错误日志分析(转自:COCOACHINA shemy )

      在做的项目中,用到了友盟的组件,在没有禁用错误日志上传之前,收集了一些错误日志. 有一些朋友看到了错误日志,却不知道怎么定位到程序的的代码中,实际上,这一步是非常的简单.友盟没有集成.dSYM文件 ...

  4. php-redis扩展安装

    1 phpredis 在php中访问redis需要安装 https://github.com/phpredis/phpredis 基本上安装上面的readme既可以完成安装,需要注意的是在编译安装的时 ...

  5. bash和Bourne_shell的区别

    Linux 中的 shell 有很多类型,其中最常用的几种是: Bourne shell (sh).C shell (csh) 和 Korn shell (ksh), 各有优缺点.Bourne she ...

  6. SpringMVC入门配置和简单实现

    web.xml的配置 <!-- springmvc中央控制器 --> <servlet> <servlet-name>springmvc</servlet-n ...

  7. NFS挂载操作指南

    NFS 全称 network file system,其功能是实现将某台服务器的某个目录下资源共享给其他服务器.被共享的服务器作为nfs服务端,需要开启和配置nfs server服务.共享他人资源的服 ...

  8. LAMP自定义编译安装

    httpd 2.4.4 + mysql-5.5.28 + php-5.4.13编译安装过程: 一.编译安装apache 1.解决依赖关系 httpd-2.4.4需要较新版本的apr和apr-util, ...

  9. blender 2.6 快捷键

    右键单击 选中 A 取消选择/全选 中键拖动 旋转 中键滚动放大/缩小 Shift+中键拖动 平移 右上斜线三角区域拖动 产生新视窗 Shift+c准星复位 Num1前视图 Ctrl+Num1后视图 ...

  10. [SignalR]SignalR与WCF双工模式结合实现服务端数据直推浏览器端

    原文:[SignalR]SignalR与WCF双工模式结合实现服务端数据直推浏览器端 之前开发基于WinForm监控的软件,服务端基于Wcf实现,里面涉及双工模式,在客户端里面,采用心跳包机制保持与服 ...