前端一个服务器,后端一个服务器,ip就会不同
先找“”手机“”的模板id(1),然后找对应的(多)规格
FastDFS
SpringGateWay
ip拦截
网关限流
微服务鉴权(用jwt令牌实现)
JwtUtils
用户先进入网关过滤器,不是登录请求,校验token成功,放行;登录请求,放行,认证通过的同时生成token一起返回。其他请求,都会被过滤器的校验token逻辑拦截实现鉴权
nginx+lua
一个tomcat只能承受500个并发用户访问,搭建tomcat集群>5性能会不升反降,所以使用nginx承载作为http反向代理服务器进行服务承载5000个并发
缓存预热
另一种限流实现
数据监控服务——canal
图例的流程代码实现
SpringBoot整合ES实战
这里springboot封装了ES的API到了ESTemplate
thymeleaf
模板+数据+跳转——模板引擎生成静态页面二进制流——返回浏览器
对象和map的遍历
对规格数据格式化
分页查询(Thymeleaf渲染)
静态页生成实战
Thymeleaf生成静态页面
这里还是按ID生成html页面名称
(nginx实战) 静态资源放在nginx中
登录与认证
单体一般放在redis
这里需要把一般私钥转成RSA加密的私钥——RSA私钥
必须要以正确的公钥解析以对应私钥为签名的JWT令牌才能正确解析
请求获取授权码需要访问oauth服务接口,通过后台表校验,登录成功后会跳转至认证同意界面
获取认证服务实例,得到uri,拼接获取令牌的请求url,封装request请求,得到令牌
业务层Oauth
这里发送请求其实内部还调用了认证服务
client_id校验的是配置文件与数据库的匹配,而不是用户带过来的参数
前台请求网关
因为jwt令牌可以包含内容
微服务依赖oauth解析jwt
feign拦截器就实现了远程调用时没办法携带token的难题,谁调用谁肯定有令牌,就交给他声明
thymeleaf的list遍历以及与Vue结合渲染页面
这样一进去就有默认收件人显示出来了。这里是order的Vue先获取后台默认值(避免下面的收件人不显示),随后下面的方法,当我们点击新的收件人会更新原先的默认值
分布式事务技术
AT模式实现
谁调用谁上面加
微信支付
页面自动跳转实现(websocket/ajax循环定时器)![在这里插入图片描述](https://img-blog.csdnimg.cn/0cce65d656a34f51b67ccb36d4c9be1b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATXIgSmFja1poYW5n,size_20,color_FFFFFF,t_70,g_se,x_16)
说错了,应该是以前是浏览器和后端服务器通信,现在中间加了一层队列,浏览器和消息中间件通信,后台负责发给中间件,浏览器负责从中间件取消息
超时订单处理(延迟队列实战)
秒杀
这部分逻辑是定时扫描秒杀商品表比对时间区间得到一个集合返回给redis存入秒杀商品数据,同时清除redis过期的商品信息,获取秒杀商品信息只能从redis获取
点击切换样式,包括if标签使用和遍历数组
方法的调用需要触发器,钩子触发器,事件触发器,定时器触发器
redis保证原子性操作
消息不丢失实战
除了服务限流,还有接口限流