一、热部署-----------------p11
1.添加依赖到子项目的pom文件
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
2.添加build到父项目的pom文件
<build>
<finalName>cloud2020</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.2.2.RELEASE</version>
<configuration>
<fork>true</fork>
<addResources>true</addResources>
</configuration>
</plugin>
</plugins>
</build>
3.开启自动编译
4.ctrl+Alt+shift+/ 打开rejistry
二、客户端消费者-------------p12
1.新建:
1.)建立module
2.)修改POM文件
3.)yml文件新建
4.)主启动类
5.)主业务类
2.业务逻辑-------p13:
这里跟服务端有些区别(客户端不应该具备service 和 dao等,它只需要controller)
通过RestTemplate来实现服务。
此时的 order表示客户端 ,调取服务端的服务,按照之前惯例走的是 httpClient 但是当前更新的技术是 restTemplate
使用restTemplate首先需要配置文件,将其注入到容器中
1)新建config配置文件
2)controller里面利用restTemplate来实现数据的增删改查
3.测试
查询功能直接浏览器内测试通过
写功能,浏览器通过,但是实际上数据并没有进到数据库。
需要在服务端,参数那个加一个 RequestBody
4.开启run dashboard方便启动观察多个模块。
5.代码的重构---------p14
1. )新建一个公共的模块,存储所有模块共用的部分
cloud-api-commons
2.)改pom文件
3.)在该模块下新建entities,以及复制相应的实体类
4.)maven命令 clean install
5.)订单80和支付8001分别改造
删除原本的entities,引入自己定义的api调用包。(我本地代码重构未成功)
<dependency>
<groupId>com.atguigu.springcloud</groupId>
<artifactId>cloud-api-commons</artifactId>
<version>${project.version}</version>
</dependency>
-------------------------------------------------------------------------------------------------------------
补充CPA理论:https://www.cnblogs.com/mingorun/p/11025538.html
CAP理论作为分布式系统的基础理论,它描述的是一个分布式系统在以下三个特性中:
- 一致性(Consistency)
- 可用性(Availability)
- 分区容错性(Partition tolerance)
最多满足其中的两个特性。也就是下图所描述的。分布式系统要么满足CA,要么CP,要么AP。无法同时满足CAP。
对于分布式的结构,P永远需要满足。
一、三个注册中心的异同点
二:负载均衡两种。(本地负载均衡和服务端负载均衡)
三:服务降级Hystrix学习--P52(按顺序学习到52)