背景:公司都追求系统的高可用性,这里不可用时间就是其中很重要的一个指标,为此在做系统功能升级迭代的过程中如何快速处理异常恢复正常功能极为重要。现在对新增模块的要求是都增加开关,方便快速关闭异常模块,但是如果开关只是一个配置需要人为手动干预才能达到关闭异常模块的作用,其中远程连接服务器,修改配置文件,重启网站等动作不免要浪费好多的系统不可用时间,因此这里提出一个自动服务降级的想法,在程序出现异常时自动修改功能模块开关关闭异常模块,这样就可以将不可用时间降到最低。

实例:这里以渲染接口日志记录功能异常自动禁用功能本身的做法为例,介绍这种思路,这个功能开关是一个web.config配置文件的键值对,由于IIS是每个请求对应一个进程的,所以每次进来都会初始化静态变量,重新读取配置文件,因此必须修改配置文件才能关闭此功能,不能单单只修改静态变量的值,而修改文件又要防止冲突这里是多进程间的冲突,而对于进程间互斥的方法这里采用Mutex来处理,具体代码如下:

最新文章

  1. Ubuntu 14.04 LTS中怎样安装fcitx中文输入法
  2. 脚手架搭建的vue项目里引入jquery和bootstrap
  3. KindEditor上传本地图片在ASP.NET MVC的配置
  4. Oracle常用SQL语句
  5. 搭建高性能计算环境(二)、远程登录Linux服务器
  6. Matrix对bitmap的一些操作
  7. 全栈一路坑之使用django创建博客
  8. 为iOS7重新设计你的App
  9. Android 不能勾选 Project Build Target
  10. android开发之记录ListView滚动位置
  11. PhotoShop常用快捷键(1)
  12. BAK文件怎么恢复到数据库中
  13. requests爬取网页的通用框架
  14. LeetCode21—合并两个有序链表
  15. ajax json struts JSP传递消息到action返回数据到JSP
  16. 洗礼灵魂,修炼python(43)--巩固篇—经典类/新式类
  17. mybatis的批量更新实例
  18. 聊一聊docker存储驱动
  19. EntityFramework CodeFirst反向工程工具
  20. 线程安全的"懒汉"单例模式

热门文章

  1. sql 数据库中只靠一个数据,查询到所在表和列名
  2. HIVE 2.1.0 安装教程。(数据源mysql)
  3. Proxy动态代理
  4. HDU 5925 离散化
  5. Linux 解压压缩命令
  6. scheduler configuration options
  7. Hbase- Hbase客户端读写数据时的路由流程
  8. SQL Server 中WITH (NOLOCK)浅析(转)
  9. Xcode Developer Tools
  10. AI探索(四)NumPy库的使用