混合模式SaaS
SAAS模式一直感觉只是在数据模型设计上有些门道,在实际开发中需要对用户的数据进行特殊过滤
我的理解为两种模式,一种为统一应用服务、统一数据库部署,一种为一个企业一个应用服务、一个企业一个数据空间部署。前一种对整体数据控制较好,但不利于业务扩展,若某个企业想有独特业务,则开发维护相当麻烦;后一种对业务扩展方便,但更不利于版本管理,最坏的情况可能一个企业一个项目版本,在管理上就是一种灾难。
目前开发的是第一种模式,多产品、多租户的统一部署。开发时使用功能池概念,将所有功能或可出现功能形成一个资源池,每一个产品或企业若需要对业务扩展,则在功能池中增加独立功能。每一个产品或租户使用独立的菜单,将功能与菜单组合成业务。
在实际使用中,第一种模式会出现用户量大、并发大、数据量大等问题,目前经过简单调优后基本能够稳定运行,但随着产品及租户增加,将会引入分布式处理,将service层及dao层中,消耗资源较大的分离出去。