网站首页 > 资源文章 正文
开发语言:.netcore2.2,前端layui
网关:ocelot
架构:前后端分离
现象描述:不同账号登录系统登录成功后偶尔成了同一个账号,包括系统的权限,用户名都成了同一个账户。多人多账户同时登录测试,发生频率更高,而且最终不固定成为同一个账户登录系统。
网关配置如下:
"ReRoutes": [ //业务服务
{
"DownstreamPathTemplate": "/{url}", //是下游服务配置 => 即我们刚刚创建的提供API服务的配置,我们会指定PathTemplate,Host和Port等信息(具体调哪一台服务器是由我说了算)
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": "5011"
}
],
"LoadBalancerOptions": { //配置负载均衡规则
"Type": "LeastConnection" //最小连接数
},
"FileCacheOptions": { //http 请求缓存
"TtlSeconds": 10,
"Region": "web"
},
"QoSOptions": {
"ExceptionsAllowedBeforeBreaking": 5, // 允许多少个异常请求
"DurationOfBreak": 10000, // 熔断的时间,单位为毫秒
"TimeoutValue": 30000 // 如果下游请求的处理时间超过多少则视如该请求超时
},
"UpstreamPathTemplate": "/{url}", //是上游服务配置 => 即服务消费方(eg.MVC Server, SPA App)的调用配置(你要怎么按照什么URL格式和什么HTTP类型调用我才能理解)
"UpstreamHttpMethod": [ "Get", "Post", "OPTIONS" ]
},
{
"DownstreamPathTemplate": "/{url}", //文件服务
"DownstreamScheme": "https",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": "5041"
}
],
"UpstreamPathTemplate": "/file/{url}",
"UpstreamHttpMethod": [ "Get", "Post", "OPTIONS" ]
}
]
遇到问题后首先想到的是代码排查,于是在网关中,服务接口中加断点,发现有时候进入不到接口的断点,但是系统菜单,用户信息都能加载到页面。
经过一番折腾,定位到了网关配置,于是看到有这样一个配置。 才发现本来注释的代码被同事取消注释并发布到了服务器上。
字面意思是,文档缓存设置,意思是,请求过来的url会被缓存10秒,10秒后ttl强制过期。
它的使用场景是什么呢?
对于公共的文件可以在服务中加上这个配置,这样,设置的时间内请求这些文件直接从缓存取,减少服务器压力。
问题复盘:
由此可以理解,因为在主服务中添加了这个设置,因为登录成功后系统会调获取菜单接口,调用用户信息接口,这些数据都被缓存下来,如果10秒内由其他账号登录系统,直接从缓存中取数据,这样就验证了在获取菜单接口中加断点,进不到断点但是页面有菜单数据这个现象。
经过这次事件,我们在使用任何服务,类库时,一定要搞清楚原理和使用场景,不然就会发生上边这样的事情。
我们下篇见!
- 上一篇: VMware中vCenter密码忘记后如何重置?
- 下一篇: 如何实现限流功能?(如何实现限流功能)
猜你喜欢
- 2024-10-27 信创技术分享银河麒麟V10服务器操作系统网卡不能自启动问题处理
- 2024-10-27 一定不要用默认的设置运行MongoDB数据库,我的一次被黑经历
- 2024-10-27 被讯搜虐得怀疑人生?这份笔记教你正确打开方式
- 2024-10-27 内穿软件推荐(设计内衣的软件)
- 2024-10-27 如何实现限流功能?(如何实现限流功能)
- 2024-10-27 浏览器跨域问题以及常用解决方案(浏览器跨域问题以及常用解决方案)
- 2024-10-27 VMware中vCenter密码忘记后如何重置?
- 2024-10-27 客户端navicat遇到问题怎么办?(navicat登录)
- 2024-10-27 小心,别被eureka坑了(eureka是干嘛的)
- 2024-10-27 mysql在查询丢失数据库”localhost”连接解决方案
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)