您的位置:首页 > 运维架构 > 网站架构

Atitit 微服务之道 attilax著 1. 什么是微服务架构? 1 1.1. 、微服务与SOA的关系 :微服务架架构师面向服务架构(SOA)的一种特定实现 2 1.2. 微服务与康威定律 2 1

2018-02-02 23:52 761 查看
Atitit 微服务之道 attilax著

1. 什么是微服务架构? 1

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

1.2. 微服务与康威定律 2

1.3. 微服务的一些设计
断路器 幂等  版本管理
3

1.4. 章 康威定律和系统设计 161 3

2. 架构的历史
微服务发展历史 Web》soa》msa 4

3. 微服务的优点 4

3.1. 微服务最大特点
独立部署 4

3.2. 性能负担 5

3.3. 增强稳定性,独立部署 5

3.4. 协调人力资源,使用不同的擅长的技术来实现不同的模块 5

3.5. 拆分,有利于开发人员项目规模的轻量化,提升开发速度 5

4. 微服务的接口 cli
与rest接口 5

5. 如何实施微服务 5

5.1. 章 分解单块系统 66 6

6. 其他 6

6.1. 第2 章 演化式架构师 11 7

6.2. 章 集成 32   与第三方软件集成 6 7

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

7. 参考资料 8

7.1. ATITIT
三种架构 集中,分布式,微服务架构.docx 9

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

7.3. 从源头入手,一分钟秒懂为什么要搞微服务架构? -
推酷.mhtml 9

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

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

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

7.7. Atitit
提示稳定性 ---------msa微服务部署计算页码服务
v1.1 .docx 9

7.8. 微服务架构与实践 9

 

 

1. 什么是微服务架构?

Martin Fowler认为,微服务架构是一种独立部署的软件应用设计方式。这种架构方式没有准确的定义,但是在业务能力、自动部署、端对端的整合、对语言及数据的分散控制上有着共性。Martin Fowler曾在文章中详细阐述了微服务的特征,资深架构师顾伟在分享中总结了其中最重要的三点:轻量可复用、安全可伸缩、失败设计。很多企业在发展中遇到了瓶颈,CIO们纠结如何让企业的架构更有弹性、并节约成本的增加弹性、如何开放服务数据、并规避开放之后的安全问题。而微服务架构正能够满足这些需求。但是,微服务架构也为企业带来一些挑战:微服务的粒度更细,导致了更多的进程;微服务架构整合了多种服务形态,却需要提供统一的接口;开放服务之后,业务量不稳定,增加了CPU和内存的负担。
微服务架构就能够很好地解决这个问题。微服务架构自 2010年开始逐渐被大家熟知,通过对传统单块应用进行服务化切分,把一个大而复杂的问题化解为多个小而简单的问题,服务之间通过契约来约定依赖,做到服务独立发布和演进。今天,微服务架构已经被广泛运用在像 Google、
Facebook这样的大型互联网公司,为他们的快速交付和持续创新提供软件架构支撑。本书中有大量微服务架构实战经验的总结,不仅仅有应用架构设计的内容,还涵盖了微服务大背景下应用测试、发布、日志、监控等方面,让读者可以全面应对微服务架构需求。
 

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

 

1.2. 微服务与康威定律

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)》一文中,作者发现紧密耦合的组织(例如典型的商业产品公司,所有员工在同一地点工作,具有高度一致的愿景与目标)开发的软件倾向于较少模块化,而松散耦合的组织(例如分布式的开源社区)开发的软件则倾向于更加模块化、耦合较少。

 

1.3. 微服务的一些设计
断路器 幂等  版本管理

 

 

2)断路器
使用断路器,当请求下游服务发生一定数量的失败后,短路器打开,接下来的请求快速失败。一断时间后,查看下游服务是否已服务,重置断路器。
3)舱壁
未每个下游服务建立单独的连接池。超时和断路器资源受限时释放资源,舱壁第一时间确保它不成为限制。还有一个拒绝请求的舱壁,用以避免资源饱和,称之为减载。
4)隔离
当下游服务离线,上游服务不受影响。设置成为服务间隔离。
5、幂等
幂等操作,多次执行所产生的影响,均与一次执行影响相同。可以把某些特定业务操作设计成幂等的,比如客户下单送积分。
 

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

1.4. 
康威定律和系统设计 161

 
 
 

2. 架构的历史
微服务发展历史 Web》soa》msa

 

Web》soa》msa

 

 

3. 微服务的优点

3.1. 微服务最大特点
独立部署

微服务特点的描述。
大概从以下四个方面来说:
· 根据业务模块划分服务种类。

· 每个服务可以独立部署并且互相隔离。

· 通过轻量的 API 调用服务。

· 服务需要保证良好的高可用性。

 

3.2. 性能负担

3.3. 增强稳定性,独立部署

3.4. 协调人力资源,使用不同的擅长的技术来实现不同的模块

3.5. 拆分,有利于开发人员项目规模的轻量化,提升开发速度

 

4. 微服务的接口 cli 与rest接口

关于轻量 API, 微服务本身是推荐使用轻量的通讯协议和简单的数据结构,实际上,实施环节通常采用的都是 http+json 的方式。

 

5. 如何实施微服务

要搞微服务了,有啥建议么?通过我们不断的摸索和总结,要做好微服务,就要做好一定的准备工作。
从五个具体的方面来谈:
业务拆分,体现在设计环节: 在设计的时候,要有足够的判断力来合理的规划服务之间的界限。
服务治理,底层技术的支持: 首先要选一款适合自己实际情况的分布式服务基础框架,对于服务的发现、治理、熔断、降级,都要做好相应的技术准备。
自动测试,一定要自动化。 微服务一个明显的表象就是随着服务的增多,如果继续沿用传统的测试模式就会遇到瓶颈,为了保证高效的迭代,尽量做到更多的环节实现自动化。
自动运维
: 微服务拆分之后,每个服务都可以独立部署,进而言之应该是随时随地可以升级。尤其当互联网发展到今天,业务要保持对市场变化的一个高效响应,自动化运维就是提升交付速度的一个重要环节。
监控: 包括硬件环境、服务状态、系统健康度、接口调用情况、异常的实时告警以及潜在问题的事先预警等等。监控在实施微服务过程中会重要到什么程度呢?一句话:没准备好监控,就不要搞微服务。
 

Line 301:
第1 章 微服务 1

5.1. 
分解单块系统 66

第4 
Line 434:
第6 章 部署 86
Line 458:
第7 章 测试 110
Line 487:
第8 章 监控 131
Line 501:
第9 章 安全 143
 

6. 其他

6.1.  第2 章 演化式架构师 11

 

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

6.2. 
集成 32  
 与第三方软件集成 6

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

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

 
第 12章 微
 
第10 
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部分 进阶篇
 
 

 

 

 

 

 

 

7. 参考资料

7.1. ATITIT
三种架构 集中,分布式,微服务架构.docx

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

7.3. 从源头入手,一分钟秒懂为什么要搞微服务架构? -
推酷.mhtml

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

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

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

7.7. Atitit
提示稳定性 ---------msa微服务部署计算页码服务
v1.1 .docx

7.8. 微服务架构与实践

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐