公司安全给了一个基础服务前端 api 接口都要走一边安全服务(串行的),需要控制在 100 毫秒内如果安全服务没有响应完就直接跳过它。 本来我的解决方案是每次调用前开始计时去监听这个计时器再调用安全服务如果超过 100 毫秒就跳出。但是这样对 cpu 开销太大各位有什么好点的解决方案吗
公司安全给了一个基础服务前端 api 接口都要走一边安全服务(串行的),需要控制在 100 毫秒内如果安全服务没有响应完就直接跳过它。 本来我的解决方案是每次调用前开始计时去监听这个计时器再调用安全服务如果超过 100 毫秒就跳出。但是这样对 cpu 开销太大各位有什么好点的解决方案吗
|
spLiteAug 30, 2018
1
如果调用安全服务是前端发起的,跟 java 没直接关系? js 设置 http 请求超时时间 100ms。如果前端调后台,后台执行业务前(拦截器中?)调用安全服务,同理也可以设置超时时间
|
|
wdlthAug 30, 2018
2
这类似于服务熔断吧
|
|
3
@spLite 后端和安全交互
|
|
4
语无伦次,程序员的语文水平这么差吗?平时需求得急死吧?
|
|
5
@wdlth 性质有点像 触发超时
|
|
6
@metrxqin 你在这阴阳怪气什么?
|
|
Rush9999Aug 30, 2018
7
AwaitTermination
|
|
8
@Rush9999 谢谢
|
|
sagaxuAug 30, 2018 via Android
9
计时器是不太占用 cpu 的
|
|
miceanAug 30, 2018
10
“跳出的 CUP 开销大”如果是指的抛出异常的话,请看 exception 的 4 参构造函数,不搞 track 的话,开销很小的
|
|
DeadLionAug 30, 2018
11
为什么一定要串行
按照你这说法完全可以并行吧 业务正常走,安全校验也走着 并发包下面有可用的工具类啊 countdownlaunch 之类的 |
|
CODEWEAAug 30, 2018 via iPhone
12
请求设置超时
|
|
ginuxAug 30, 2018
13
futuretask 了解下
|
|
vjnjcAug 30, 2018 via Android
14
是 javaee 调用 HTTP API 么,请求时的 client 可以设 timeout 啊🤓
|
|
yanyuechuixueAug 30, 2018 via Android
15
@livid #4
|
|
nullenAug 30, 2018
16
触发超时就行了。
|
|
skyleftAug 30, 2018
17
future.get(timeout=xxx)
|
|
zhchyu999Aug 30, 2018
18
根据以往经验,http 接口,并行并不一定有串行快
|
|
19
谢谢大伙,我实现测试下 之后把解决方案发出来
|
|
D3EPAug 30, 2018 via iPhone
20
你这也太……
|
|
sampengAug 30, 2018
21
需要控制在 100 毫秒内如果安全服务没有响应完就直接跳过它..
请问。。。这个安全服务还有毛线用。。。 |
|
sampengAug 30, 2018
22
刚是皮了一下。。。
Hystrix 了解一下。其实你就是要一个快速失败的能力 |