架构就是为了 解耦
实际采用的是分布式系统开发

遇到的4个问题

1这么多服务 客户端怎么访问
API网关
2这么多服务 服务与服务之间如何通信
对外REST ,对内RPC
同步 http 跨防火墙 ,但是慢一点
rpc(传输效率高,会压缩,序列化,反序列化)
异步 消息队列
3这么多服务 服务如何治理
服务注册与发现
4这么多服务 服务挂了怎么办
重试机制
限流
熔断机制
负载均衡
降级

云应用

Spring-Boot

为了简化 配置文件的 ,为了 把大量配置省略 出现的
POJO
原生java类 。就是 不包括注解的,没有逻辑的
Bean 相反

image.png

用maven 构建一个项目,构建完成就可以直接使用 ,

基本配置

在resources文件夹下创建一个 banner.txt 就会自动改掉 命令行里生成的 spring图片 ,
网上有专门图片转换成 文字的 网页。上传图片生成 ,txt文本 ,放入 即可

全程异步化

http无状态
session 就是 cookie

想做到服务器主动给前端返回消息
1ajax 轮询 ,一会往服务器发送一个请求
2建立长链接,WebSocket

webFlux
基于netty 实现异步响应编程
观察者模式

Thymeleaf

模版引擎
.html 动静分离
.jsp 动态技术
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<artifactId>nekohtml</artifactId>

thymeleaf:
cache: false
mode: HTML
encoding: UTF-8
servlet: content-type: text/html

HiKariCP

image.png
代码量少,连接速度快

jar
<artifactId>mysql-connector-java</artifactId>
<artifactId>spring-boot-starter-jdbc</artifactId>
去除 <groupId>tomcat-jdbc</groupId>
<artifactId>HiKariCP</artifactId>

TKMyBatis

假话 mybatis操作
image.png
image.png

image.png

代码生成插件

image.png
image.png

image.png
image.png
image.png

实体类叫 领域模型(domin)

idea 数据库生成domin
image.png
自己选择生成什么东西
image.png

image.png

image.png

然后在主类上 ,加上 测试 和 事务,以及回滚,避免造成脏数据
image.png