Atitit.架构设计趋势 设计模式 ---微服务架构 soa
Atitit.架构设计趋势 设计模式 ---微服务架构 soa
、微服务与SOA的关系 :微服务架架构师面向服务架构(SOA)的一种特定实现1
什么是微服务架构?
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的更多相关文章
- 基于Golang设计一套微服务架构[转]
article- @嘟嘟噜- May/26/2018 18:35:30 如何基于Golang设计一套微服务架构 微服务(Microservices),这个近几年我们经常听到.那么现在市面上的的微服 ...
- 中小型研发团队架构实践三:微服务架构(MSA)
一.MSA 简介 1.1.MSA 是什么 微服务架构 MSA 是 Microservice Architect 的简称,它是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相通讯.互相 ...
- Re:从 0 开始的微服务架构--(四)如何保障微服务架构下的数据一致性--转
原文地址:http://mp.weixin.qq.com/s/eXvoJew3bjFKzLLJpS0Otg 随着微服务架构的推广,越来越多的公司采用微服务架构来构建自己的业务平台.就像前边的文章说的, ...
- 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)
一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...
- MicroService 微服务架构模式简述
开源地址: https://github.com/TheCodeCleaner/MicroService4Net 本文内容 微服务 微服务风格的特性 组件化(Componentization )与服务 ...
- Net分布式系统之五:微服务架构
因工作较忙,抽时间将框架遇到的问题和框架升级设计进行记录. 一.背景&问题 之前框架是一个基于SOA思想设计的分布式框架.各应用通过服务方式提供使用,服务之间通信是RPC方式调用,具体实现基于 ...
- SOA和微服务架构
微服务架构强调的第一个重点就是业务系统需要彻底的组件化和服务化,原有的单个业务系统会拆分为多个可以独立开发,设计,运行和运维的小应用.这些小应用之间通过服务完成交互和集成.每个小应用从前端web ui ...
- 如何在Python中使用ZeroMQ和Docker构建微服务架构
@Container容器技术大会将于6月4日在上海光大会展中心国际大酒店举办,来自携程.PPTV.蚂蚁金服.京东.浙江移动.海尔电器.唯品会.eBay.道富银行.麻袋理财等公司的技术负责人将带来实践经 ...
- SOA和微服务架构的区别
微服务架构强调的第一个重点就是业务系统需要彻底的组件化和服务化,原有的单个业务系统会拆分为多个可以独立开发,设计,运行和运维的小应用.这些小应用之间通过服务完成交互和集成.每个小应用从前端web ui ...
随机推荐
- 一个豆瓣API的使用——拒绝思维定式
好久没写博客了,最近一直在用豆瓣API爬数据,不知道以前的是什么样,毕竟刚开始用没多久,就用最新的V2版本,以前的不更新了,可以参照https://developers.douban.com/wiki ...
- Picard 法求方程根
要点: 首先对于任何方程 :f(x)=0 ,可以转换成 f(x)+x-x => f(x)+x=x; 取g(x)=f(x)+x; 那么 新方程g(x)=x 的解即是 f(x)=0的解,即g(x) ...
- Android最大可运行内存
int maxMemory = (int) Runtime.getRuntime().maxMemory();
- windows 录音程序(二)
(二)录音流程 Waveform APIs,流程如下: a.打开录音设备waveInOpen; b.准备wave数据头waveInPrepareHeader; c.准备数据块waveInAddBuff ...
- linux sort,uniq,cut,wc命令详解
linux sort,uniq,cut,wc命令详解 sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些 ...
- Eclipse不能自动编译 java文件
在网上的解决方法 方法参考如下: (1) Window-->Preferences-->General-->Workspace 有个"Build automatica ...
- java的值传递和引用传递
昨天博主在对于值传递和引用传递这里栽了一个大坑啊,导致一下午时间都浪费在这里,我们先说下值传递和引用传递java官方解释: 值传递:(形式参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对 ...
- 以 Composer 的方式在 PhpStorm 中添加代码审查工具 Code Sniffer
一.前提条件 Windows 操作系统 可以在本地运行的 PHP 环境,个人用的是 laragon PhpStorm Composer 二.设置步骤 (一)下载 Code Sniffer 主要使用 P ...
- bootstrap-sidebar,后台边栏折叠功能
http://www.solutiisoft.com/bootstrap-sidebar/index.php
- Linux 学习笔记(一) 入门
Shell 显示Shell类型 $ps 切换Shell $[Shell 名称] ex. $tcsh 快捷键 Ctrl + Z:挂起,可用jobs查看到,fg恢复运行 Ctrl + W:删除单词 Ct ...