架构就是为了 解耦
实际采用的是分布式系统开发
遇到的4个问题
1这么多服务 客户端怎么访问
API网关
2这么多服务 服务与服务之间如何通信
对外REST ,对内RPC
同步 http 跨防火墙 ,但是慢一点
rpc(传输效率高,会压缩,序列化,反序列化)
异步 消息队列
3这么多服务 服务如何治理
服务注册与发现
4这么多服务 服务挂了怎么办
重试机制
限流
熔断机制
负载均衡
降级
云应用
Spring-Boot
为了简化 配置文件的 ,为了 把大量配置省略 出现的
POJO
原生java类 。就是 不包括注解的,没有逻辑的
Bean 相反
用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
代码量少,连接速度快
jar
<artifactId>mysql-connector-java</artifactId>
<artifactId>spring-boot-starter-jdbc</artifactId>
去除 <groupId>tomcat-jdbc</groupId>
<artifactId>HiKariCP</artifactId>
TKMyBatis
假话 mybatis操作
代码生成插件
实体类叫 领域模型(domin)
idea 数据库生成domin
自己选择生成什么东西
然后在主类上 ,加上 测试 和 事务,以及回滚,避免造成脏数据