/dmine.js

declarative resource manager(mine) , support many dbs

Primary LanguageJavaScriptMIT LicenseMIT

dmine.js

declarative resource manager(mine) , support many dbs

哲学

  1. 万物均资源
  2. 任何行为都能理解为对资源的操作
  3. 而对资源的操作又包含了对其子资源的操作
  4. 单次效率最高的应用,应该是一体化应用(单体应用)
  5. 随着并发量上去,一体化应用的问题在于其逻辑的复杂性,和单体处理资源的不足
  6. 逻辑的复杂性要求将系统分割为多个组成部分,那就是模块化,其目的是缩小人的认知成本
  7. 处理资源的不足核心体现在性能瓶颈上
  8. 如何解决瓶颈和规避产生瓶颈即是分布式核心的关注问题
  9. 以下情况为通常的性能瓶颈点
    • 大批次处理,内存和cpu成为瓶颈
    • 大数据传输,网络成为瓶颈
    • 大量慢资源调用(如api、文件、数据操作等) io或者网络成为瓶颈
    • 递归等 内存成为瓶颈
  10. 必须澄清一种误解,就是模块化与部署分离的关系,模块化并不是说需要分开部署,只需要逻辑上形成壁垒就可以,部署分离的核心目的在于如何解决瓶颈提高可用性
  11. dmine的设计中以资源为模块,天然形成模块化,而如何配发应用的部署,以性能瓶颈为核心分割