zoukankan      html  css  js  c++  java
  • 单机事件处理系统设计

    目前正在考虑一个单机事件处理系统的架构设计,来完成一个基于事件驱动的系统。

    为什么要单独设计一个事件处理系统?

    1 ) 容错

          考虑一个场景,你添加了一个物理机器,想要上报给一个master,但是因为什么原因,无法上报,但是物理机确实已经创建了,你现在怎么办。为了保持一致性,最好的方式是缓存这个事件,然后隔一段事件继续上报。这个就是单独的事件处理系统可以帮你做的事情。

    2) 容易审计

          所有事件都被集中处理了,特别方便进行安全以及统计处理。

    3)   容易扩展

          方便的事件注册/处理。新增事件特别容易。

    目前有两个架构在考虑中:

    1) 有event dispatcher 类

        每种事件,你运行之前需要注册一种事件类型的处理函数,dispatcher类会维护一个map,对应着事件种类和其对应处理函数。

    2) 没有一个event  dispathcer 类

        直接用继承树,在相应事件里面直接定义处理函数。

     第一种来说相对实现起来复杂一点点,用起来稍微麻烦。但是有一个第二种架构无法比拟的,就是添加新事件以及处理函数时,不用重新编译整个系统,甚至可以在原系统运行的时候动态的加入,你只要运行一个实现了新事件的定义和其实现,然后注册它即可,dispatcher会在内存中map中存储这个新的事件以及其对应的处理函数。

    我现在做的系统暂时没有这个如此灵活的需求,暂时就用第二种架构吧。

  • 相关阅读:
    乔布斯《遗失的访谈》全文:尘封16年的预见
    Java开发超级工具集
    android root权限破解分析
    android linux 命令
    Dom加载让图片加载完再执行
    关于chrome dev tools一些技巧
    1 MySQL基础知识笔记
    教我SQL的老师
    SQL limit和offset的使用
    一次批量复制多个不同结果到剪贴板不用在粘贴文本与被粘贴文本之间反复横跳啦,
  • 原文地址:https://www.cnblogs.com/zhangzhang/p/2866340.html
Copyright © 2011-2022 走看看