aop的使用 : 日志
统计 tpc、qps (开始时间qps,结束时间tps)
提前预估系统的用户量,针对服务进行压测(限流)
灰度发布
项目经验:
描述:
1 个人职责:负责灰度发布的架构方案设计和落地,并且负责核心代码的编写,实现了网关和服务,服务和服务之间的灰度发布。
(解决办法 – 2类: 1、io.jmanrxxxxx 2、自定义的filter和rule)
面试官: 怎么做的
答:
1、解决的问题是什么?为什么要用灰度发布(实验新功能,小改动的服务不用熬夜(尽量减少用户使用的时延)“便于小步快跑”)我们遇到的问题
2、怎么解决的?
3、为什么这么解决(蓝绿发布、滚动发布、蓝绿发布)
4、给公司带来的好处。(节省了服务器、节省了时延、节省了试错成本)
架构师具备的素质。
解决办法 – 2类:
1、io.jmanrxxxxx
2、自定义的filter和rule
========================================================
如何验证? prod prd online
zuul用法
zuul生产中的问题:
1、token不向后传
2、老项目改造中 路由问题
3、动态路由
什么都不写网关的配置
网关基础用法:
1、http://(网关ip+port)localhost:9100/(目标服务名)api-driver/(目标服务的路\径)test/hello
2、前缀:api/ rest/ v1/
15-网关配置,自己实践
网关的功能
最小知道原则
什么能放到网关
网关 要做的事情。
- 分发服务
- 身份认证(鉴权) ------=========鉴权服务
– “当你有拷贝欲望的时候,就该考虑设计的合理性了
– 后面重复组的事情,可以放到网关来做” - 过滤请求
- 监控
- 路由(动态)
- 限流
nginx服务端 zuul客户端
项目中的一个坑,敏感信息不后传
1、token不向后传 “zuul.sensitive-headers” (单体项目 -> 微服务)
调用方 --------------token(cookie)-------------------> 被调用方
改造为下:
调用方 ----cookie----------网关--------cookie-------> 被调用方 service-sms
zuul:
老项目改造中 路由问题
2、老项目改造中 路由问题
zuul.
route.
随便写自定义名
path = /account/**
service=account
/account/a
没有 /a
问题:原来的url不动
而:服务没有提供相应的接口
需求:
app: /url/xxx/xxx
将 url中的test31转成服务提供的test3
1、 Filter改写url
Filter做好老url与新url的对应关系
2、 nginx方法映射
3、 zuul自定义filter
zuul 一系列过滤器 过滤器的种类 4种
pre 。(route)
route
post
error
4种执行顺序写filter步骤。
1、继承zuulfilter
2、public boolean shouldFilter():true:执行此过滤器,false:不执行
3、run:过滤器的业务逻辑
4、filterType:pre,route,post,error
5、order:数字越小,越先执行
路由:为…安排线路
公司内部网关:也是做和zuul类似的事,
路由都是配置文件配的
route:(源码)
RibbonXXXFilter:路由到服务
SimpleHostRoutingFilter:路由到url地址
SendForwardFilter:转发(转向zuul自己)