redis 简单解决程序的依赖问题
2016-08-19 17:56
211 查看
同事让我帮忙给他做个功能,义无反顾的接受了。
功能大致这样的,用户登录的时候需要依赖服务A,服务A不稳定,而且服务A需要用户登录的信息,不能去掉服务A的业务逻辑。
可以模拟这样的场景,人家登录你的网站,输了用户名和密码,后台逻辑走到了服务A,此时A服务挂了,而你设置的超时时间为10S,太残忍了,第一个用户等待10S,第二个用户等待10S,100个用户全部等待10S,这样的网站绝对是不友好的。
解决方案1:不推荐
在java类中设置全局变量,服务A发生超时异常设置全局变量为false,根据这个状态判断是否使用服务A。
解决方案2:推荐
if(jedis.exists("key")){
服务A逻辑
}
服务A逻辑异常设置:
jedis.setex("key",5*60, "value");
解决方案3:待定
使用ZK模式
解决问题的思想最重要,以后慢慢积累。
功能大致这样的,用户登录的时候需要依赖服务A,服务A不稳定,而且服务A需要用户登录的信息,不能去掉服务A的业务逻辑。
可以模拟这样的场景,人家登录你的网站,输了用户名和密码,后台逻辑走到了服务A,此时A服务挂了,而你设置的超时时间为10S,太残忍了,第一个用户等待10S,第二个用户等待10S,100个用户全部等待10S,这样的网站绝对是不友好的。
解决方案1:不推荐
在java类中设置全局变量,服务A发生超时异常设置全局变量为false,根据这个状态判断是否使用服务A。
解决方案2:推荐
if(jedis.exists("key")){
服务A逻辑
}
服务A逻辑异常设置:
jedis.setex("key",5*60, "value");
解决方案3:待定
使用ZK模式
解决问题的思想最重要,以后慢慢积累。
相关文章推荐
- 解决Ubuntu64位执行32位程序的依赖包问题
- spark程序对hadoop环境的依赖,导致checkpoint失败问题的解决
- ubuntu解决程序编译运行的依赖问题方法论
- Qt程序聊天弹屏问题简单解决方法(类似QQ聊天聊天窗口弹屏)
- 小程序弹出层---史上最简单写法,已解决滚动穿透问题
- 简单收集微信小程序formId,解决发送模板消息不够用的问题
- 编写简单的连接MongoDB数据库C++程序 && 解决编译C++程序时链接MongoDB动态库失败的问题
- 使用Redis模拟简单分布式锁,解决单点故障的问题
- java命令行执行程序解决依赖外部jar包的问题
- 解决使用快捷方式执行的程序需要依赖特定环境变量的问题
- 编写简单的连接MongoDB数据库C++程序 && 解决编译C++程序时链接MongoDB动态库失败的问题
- fuse程序挂载时nonempty问题的简单理解和解决
- 解决opencv程序在linux环境中发布时的的依赖问题
- redis简单使用及用JSON字符串的方式解决对象存储问题
- 编写简单的连接MongoDB数据库C++程序 && 解决编译C++程序时链接MongoDB动态库失败的问题
- 重写kinect2_viewer,编译高博kinect2在orbslam2上跑的程序(解决cmakefile中库依赖和头文件的问题)
- 简单粗暴解决”依赖服务或组件无法启动“,电脑无法上网的问题!
- 解决linux中zookeeper,tomcat等依赖jdk的程序自启动失败问题
- vs2013—未解决问题—编写简单的图片下载程序
- 最简单方法解决RCP程序UTF-8编码问题