《Spring Cloud 微服务实战》读书笔记
第1章 基础知识
什么是微服务:微服务是系统架构的一种设计风格,它的主旨是将一个独立的系统拆分拆分成多个小型服务,这些小型服务在独立的进程中运行,它们之间通过 HTTP的RESTful API进行通信。被拆分成的多个小型服务都围绕着一个或一些耦合度较高的业务进行构建,每个服务维护着自身的数据存储,业务开发,自动化测试案例与独立部署机制。由于有了轻量级的通信协议做基础,所以各个服务可以使用不同的语言来编写。
微服务带来的问题:运维的新挑战、接口的一致性(接口版本控制)、分布式的复杂性(网络延迟、分布式事务)
微服务九大特性:
- 服务组件化
- 按业务组织团队
- 做“产品”的态度
- 智能终点与哑通道:通信
- 去中心化治理:各个服务不要求技术相同
- 去中心化管理数据:数据不再统一保存。数据一致性是挑战
- 基础设计自动化:自动化测试、部署
- 容错设计:单点故障、监控系统
- 渐进化设计
Spring Cloud是个全家桶,针对微服务的特点,都有解决方案。同一问题的解决方案可以有多种,可以替代。
涉及如下功能:配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理。
第2章 微服务构建:Spring Boot
Spring Boot是构建微服务的基础框架,Spring Cloud的构建基础Spring Boot实现。
Spring Boot特点:自动化配置、快速开发、轻松部署。
- 通过自动化配置简化Spring原有模板化配置
- 通过Starter POMs,可以不用维护Maven中复杂的POM文件
- 内嵌tomcat,启动测试方便
项目初始化地址:https://start.spring.io/
当然IDEA,也能直接创建Spring Boot项目
Spring Boot默认将Web应用打包为jar的形式,而不是war的形式
启动Spring Boot方式
- 直接运行main函数
- 执行mvn spring-boot:run
- mvn install,打包成jar包,再通过java -jar XXX.jar来启动