《SpringCloud与Docker微服务架构实战》和《SpringCloud微服务架构开发实战》一二章节读书笔记

写在前面:

读书笔记加深印象,手写一遍,字不好看还请见谅
【正在练字啦_(:з」∠)_】
抽空会改为电子版上传的!!!

《SpringCloud微服务架构开发实战》一二章节

第一章 常见分布式系统架构

提炼:

1、分布式:不要把鸡蛋放到一个篮子里。安全,可扩展。
2、分布式对象体系:DCOM、CORBA、RMI
①DCOM
OLE->COM->DCOM
OLE:允许
一个程序
动态链接到其他库来支持其他功能
COM:同一台机器上不同程序之间通信
DCOM:支持不同的两台机器组件间通信
将远程计算机的名称固定在注册表上(DCOM类存储)与ID相关联
缺点:防火墙不好。
②CORBA:解决传统远程过程调用机制缺陷,提供一组全面服务来管理在异构环境中的对象
③RMI:允许程序员创建分布式应用程序,可以把JVM调用远程对象
优势:自带垃圾回收机制
3、SOA面向服务架构基于服务组件模型
将应用程序的不同功能、服务通过接口契约起来,接口(中立独立)
模型特点:可重用、松耦合、接口定义明确,基于开放标准,无状态服务设计。
SOA是一种设计模式
4、SOA中角色
①请求者②提供者③管理中心④服务注册⑤寻址⑥交互
5、RESTFul风格架构
REST:表述性状态转移,一组架构约束条件和原则
RESTWeb使用REST更简单轻量,开发速度更快
6、MSA微服务架构及容器技术
领域驱动设计:分级模型化复杂业务
敏捷方法论:快速发布 有效反馈
持续支付:更快、可靠、频繁
虚拟化、自动化:Docker容器
DevOps:全功能化小团队,开发、运维、测试快速结合

第二章 微服务的基石——SpringBoot

1、开箱即用
2、零配置.yml代替.xml (约定大于配置)
3、有组件
4、运行方式简单
@SpringBootApplication,springApplication.run()
@SpringBootApplication=@Configuration+@ComponantScan+@EnableAutoConfiguration
@RestController=@Controller+@ResponseBody


《SpringCloud与Docker微服务架构实战》

第一章 微服务架构概述

本章知识点:单体架构存在的问题、单体应用存在的问题、微服务特性、微服务架构特点、微服务架构的挑战和微服务设计原则。


1、单体架构存在的问题:
UI和若干业务模块最终都被打包在同一个war包中,该war包含了整个系统的所有业务功能
2、单体应用存在的问题:
复杂性高,技术债务,部署频率低,可靠性差,扩展力受限,阻碍技术创新。
3、微服务特性
每个微服务在自己的进程里,一系列独立运行的微服务共同构建整个系统,每个微服务都为独立的业务开发(只关心某个特定功能),微服务之间使用RESTFul轻量级交流,可使用不同语言和存储技术全自动部署
4、微服务架构特点
易于开发维护,单个服务启动快,局部修改易部署,技术栈不受限,按需伸缩。
5、微服务架构的挑战
接口和运维成本高,分布式固有复杂性,重复劳动。
6、微服务设计原则
单一职责原则,服务自制,轻量级通信,微服务粒度。


第二章 微服务开发框架——SpringCloud

1、SpringCloud特点:
约定大于配置、声明式xml配置、使用各种环境、隐藏组件复杂、开箱即用
组件丰富齐全,选型中立丰富(Eureka,ZooKeeper和Consul)
2、版本:稳定版本4.3.5RELEASE 里程碑版本5.0.0.M4等


第三章 开始使用SpringCloud实战微服务

1、组件
2、Controller层中
@GetMapping是Spring4.3提供的新注解

@GetMapping
=@RequestMapping(method=RequestMethod.GET)

3、

@SpringBootApplication
=@Configuration+@ComponentScan+@EnableAutoConfiguration

4、@Bean实例化一个Bean并使用该方法的名称命名
《SpringCloud与Docker微服务架构实战》和《SpringCloud微服务架构开发实战》一二章节读书笔记_第1张图片

第四章 微服务的注册与发现

1、服务提供者、服务消费者、服务发现组件

  • 各个微服务启动,将自己网络地址等信息注册服务发现组件
  • 服务消费者服务发现组件查询****提供的网址,并使用该网址****调用服务提供者提供的接口
  • 各个微服务与发现组件使用心跳机制长时间无法通信会注销实例
  • 微服务网络地址发生变更,会重新注册服务发现

2、服务发现组件具备功能

  • 服务注册表:微服务名称、IP、端口号
  • 服务注册于发现:同1
  • 服务检查:定期检测已经注册的服务(心跳机制),长期未访问移除实例

3、SpringCloud支持Eureka、ZooKeeper、Consul
4、Eureka原理:
Netflix开源服务发现组件,本身基于REST包含server和client两部分。Netflix将Eureka集成在子项目SpringCloudNetflix中,实现注册与发现
5、Eureka两组件EurekaServer和EurekaClient

  • EurekaServer提供服务发现的能力,各个服务器启动时,会向EurekaServer注册自己的服务名称ip端口号。EurekaServer会存储这些信息。
  • EurekaClient是java客户端,与server交互
  • 微服务启动后,会周期30s向EurekaServer发送心跳机制租约
  • 如果EurekaServer在一定时间内没有接受到某个微服务实例的心跳,那么将注销该实例(90s)
  • 默认情况下EurekaServer也是EurekaClient,通过实例之间复制来实现服务注册表中数据同步
  • EurekaClient会缓存注册表降低EurekaServer的压力。若EurekaServer所有节点都宕掉,服务消费者可以根据缓存去访问服务提供者
  • Eureka通过心跳机制检查客户端缓存机制,提高了系统灵活性、可伸缩性可用性

《SpringCloud与Docker微服务架构实战》和《SpringCloud微服务架构开发实战》一二章节读书笔记_第2张图片
《SpringCloud与Docker微服务架构实战》和《SpringCloud微服务架构开发实战》一二章节读书笔记_第3张图片
《SpringCloud与Docker微服务架构实战》和《SpringCloud微服务架构开发实战》一二章节读书笔记_第4张图片
《SpringCloud与Docker微服务架构实战》和《SpringCloud微服务架构开发实战》一二章节读书笔记_第5张图片
《SpringCloud与Docker微服务架构实战》和《SpringCloud微服务架构开发实战》一二章节读书笔记_第6张图片
《SpringCloud与Docker微服务架构实战》和《SpringCloud微服务架构开发实战》一二章节读书笔记_第7张图片
《SpringCloud与Docker微服务架构实战》和《SpringCloud微服务架构开发实战》一二章节读书笔记_第8张图片

你可能感兴趣的:(微服务)