170923_Spring Cloud 微服务实战(翟永超著) 读书笔记(一)_什么是Spring Cloud?

来源:互联网 发布:sql server 认证 编辑:程序博客网 时间:2024/06/05 01:17

Spring Cloud是一个微服务架构实施的综合性解决框架。

什么是微服务架构?

微服务架构本质上还是SOA(面向服务架构)的一种实现。它的主旨在于将一个独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于HTTP(HyperText Transfer Protocol,超文本传输协议)的RESTful API(Application Programming Interface,应用程序编程接口)进行协作。每一个小型服务都具有独立的业务功能,并且每个服务都有完善的维护、测试以及部署机制。由于有了轻量级的通信协议作为基础,所以这些微服务可以使用不同的语言来进行编写

什么是RESTful API?

REST的全称为(Representation State Transfer,表现层状态转换)

这里写图片描述

实施微服务会遇到哪些问题?

1)运维:需要维护的进程增加,运维过程需要更多的自动化。
2)业务上的逻辑依赖并不会消除,我们需要更加完善接口和版本管理,或是严格的遵循开闭原则。
3)分布式的复杂性

如何设计微服务架构?

1)服务组件化,不同于传统组件那样以嵌入的方式协同工作,服务是一种进程外的组件,它通过HTTP等通信协议进行协作。
2)按业务组织团队,以前按照技术层面将团队划分为DBA团队,运维团队,测试团队,后端、前端团队等等,若继续使用这种团队组织方式来实施对微服务架构的开发,当一个服务出现问题时,会引起团队的时间耗费和预算审批。所有在进行微服务架构的开发时,更建议按业务线的方式进行拆分。
3)以做“产品”的态度来对待每一个微服务。
4)智能端点和哑管道,在极度强调性能的情况下,有些团队会使用二进制的消息发送协议,例如:protobuf。即使是这样,这些系统仍然会呈现出“智能端点和哑管道”的特点,为了在易读性与高效性之间取得平衡。当然大多数Web应用或企业系统并不需要作出在这两者间做出选择,能够获得易读性就已经是一个极大的胜利了。
5)不是每一个问题都是钉子,不是每一个解决方案都是锤子。
6)根据结构或业务特性将不同的数据存储到不同的数据库之中,如把日志信息存储到MongoDB中或把用户登录信息存储到Redis之中。
7)基础设施自动化。
8)设计和考虑快速检测出故障源并尽可能地自动恢复服务。
9)演进式设计,初期以单体系统的方式设计和实施,后续逐渐将原来在单体系统中多变的模块逐步拆分出来。

什么是SOA?

这里写图片描述

Spring Cloud不同于其它Spring项目,它不再是一个基础框架项目,而是一个更高层次的、架构视角的综合性大型项目,其目标旨在构建一套标准化的微服务解决方案,让使用者在使用微服务理念构建系统时,在各个环节遇到的问题都能找到相应的组件来进行处理。Spring Cloud为微服务架构提供了一个“全家桶”套餐,这样有效的减少了我们在组件的选型和整合上花费的时间

阅读全文
0 0
原创粉丝点击