微信小程序制作
当前位置:网站首页 > 网站建设热文 > 多租户网站建设方法及构建研究分析 返回列表

多租户网站建设方法及构建研究分析

作者:admin 时间:2022-04-11 浏览量:249
现如今,网站建设大部分采取B/S架构以及信息发布,特别是相同行业当中的网站,如,在教育系统里面的中小学网站当中,不管是相关技术需求或业务流程等方面伴有相对比较多相同的地方,大致上均是利用静态网页、动态网页等相关组成,并且整个布局结构相似度相对较高,利用之前单个用户制定的模式,可以重复利用性相对较差,造成这一系统建设需要加大投资力度,造成成本相对较高等相关问题。如果想要将多租户共享网站架构给予妥善处理,本文笔者采取一种多租户的网站框架予以实现,其通过单一网站实例,利用简单的配置,可以及时部署和资源再利用等相关优势,最终有效节约社会资源。
1多租户网站结构
1.1系统架构
本文笔者所设计的是根据J2EE多层架构的Web开发框架,同时结合多租户SaaS原理以及元数据思想,构建的一个多租户网站架构。
1.2多租户网站工作原理
这一框架主要是按照J2EE模型当中的分层思想,其中包括三个层次,能够充分进行扩张。另外,应用服务器层一般为Web和EJB这两种容器,前者主要是能够返回到动态的页面,其中包括JSP以及Struts两个组件。后者可以将业务逻辑予以实现,并且利用Bean完成整个映射(O/R),对多租户当中的数据给予增加或者删减,并且由于其主要是根据相关对象的想法,需要在操作方面进行简单封装,所以,其接口予以简化,使这一系统具有灵活性以及扩展性。多租户组合网站管理系统为了保证能够有效区分不同类型组合的租户数据库就需要在多个数据库列表当中同时增添id等字段,就需要与常规单一用户网站有着较大的差异。除此之外,当租户在需要重新进行网站修改以及需要构建一个网站的时候,如查阅网站文章以及需要添加网站栏目等均必须在网站有关的语句当中一并增加了ID这个唯一性的标识,进而将不同时期租户当中的不同数据来源给予有效的隔离,以免发生泄漏。多媒体租户服务网站当中的可配置性数据是通过利用具有结合统一数据模型以及结合元数据结构模型技术予以结合实现,同时让整个系统当中的基本应用数据以及其他个性化的扩展应用数据分别对其进行整合存储,不但这样可以充分满足不同类型用户的数据个性化需求,并且不会对系统数据资料表当中的数据结构造成任何的破坏。另外,因为必须要面对功能需求个性化以及大量的租户。因此,系统需要可以支持租户具有更多选择性地自行定制自身所可能需要的网站功能。除此之外,本文当中的多租户管理网站当今所需要支持的都是个性化功能配置,其中主要包含租户页面定制内容、模板样式选择以及系统菜单等。
2关键技术
多租户网站技术构建与之前网站之当中有非常大的差别,其中包括有以下几点;(1)各个租户共享一个应用实例,数据当中不但可以共享,同时可以进行隔离。应该怎样的情况之下保证每一个租户当中的数据给予安全隔离;(2)个性化配置问题;(3)多源数据库访问。
2.1数据隔离与数据库访问接口设计
其架构设计的关键就是对每一个租户当中这些数据的安全隔离,为了我们能够真正的实现每一个人对租户当中的所有数据信息给予有效性的隔离,本文笔者主要利用在租户表当中添加字符id值,进而有效隔离区分各个租户当中的数据信息。除此之外,笔者利用这一种设计方法在租户表当中重新增添了对租户当中标识字段的隔离机制,进而将租户数据进行有效分离。多租户共享网站管理框架主要采取的关系型共享数据库,对每个租户当中的所有数据可以进行共享储存,从三种储存模式当中分别选取一种共享型的数据库基础架构,如表1所示。笔者主要考虑到也许我们会同时伴有多个不同的数据源,因此,需要设计一个不同数据源的访问管理组件,被我们称之为统一数据访问层,在当中封装以及抽象全部数据的增加和删减改查,采取JDBC,降低每一次连接所需要消耗的时间,本文笔者通过EJB所提供的连接池方式,进而获得这一效果,例如图1所示。
2.2可配置性分析
在网站当中需要管理的配置包括有表、页面以及原子功能等,目前暂时被定义为配置元。通过MDA对相关配置元给予抽象分析,进而将其分解成为常规数据以及元数据模型,其中前者显示不同用户之间相同的数据库字段,然而后者显示不同租户可以改变的字段集合。除此之外,为了能够真实体现这种可变性,本文笔者对当中的数据库表结构给予相对应的改变,如图2所示。元数据块的区表当中,租户对象信息能够分配一个id字段作为当中的唯一租户识别数据字段,通过这一识别系统,我们能够有效的区分不同租户之间的一些数据相关信息。除此之外,这一字段据信息不仅能够更改一个可变的元数据区的字段,同时能够利用这一id来准确标识这一字段当中的租户对象数据信息表。如,考虑存放同学信息的数据表—--student表,这个当中的表2所显示的核心字段以及自定义字段,分别被学校A以及学校B所应用。从表2当中能够看出学校Q自定义S-sex字段,然而学校B自定义为S-age字段,均能够在系统处在生产环境。本文笔者假设这里存放的元数据模型当中的对象信息表,全部表的入口均是从m-object表开始,程序均会从这一个表当中开始取出相对应student表记录自定义字段。元数据模型当中的租户对象关联表当中存放的数据为自定义分类,m-class表能够作为其之间的中间关系表。元数据模型当中的字段信息表里面存在的数据为实际的字段名,能够获得相对应的某一个租户当中均需要的自定义字段每一个自定义字段当中的值储存在m-data表当中,例如,当中的student表当中的101与102的两条数据。为了能够获得核心模型与元数据模型当中的数据集合,必须要利用共同查询模式,其结果是包含student表当中的schlool-id为101的记录。
3多租户网站的运行实例
租户必须按需要到系统后台,将系统前台所提供需要的元素对其进行组合构造。除此之外,现如今,平台当中所需要提供的包括文章内容管理、用户体验管理、前台模板网页设计模板以及后台栏目管理等,与此同时,不同的系统租户平台能够按照所提供需要的元素给予前台模板以及后台功能等多方面进行选择。选择成功以后,当中的租户可以连接到租户的网站服务后台,对网站前台进行管理,后天维护管理当中的租户不仅能够为网站前台栏目进行添加,例如,jave技术等网站相关栏目,同时租户能够为网站前台进行添加相对应的相关文章。网站后天在构建以后,租户便能够将前台予以开放,并且供浏览者应用,浏览人员采取租户所提供的浏览网址,在这里就能够看到网站后天当中添加的栏目和里面的文章等。
多租户系统技术就是属于一种软件架构设计技术,其目的是在通过探讨与设计实现系统应该如何进行应用,并在多用户的软件环境之下可以共享租户系统或者应用程序中的组件,同时仍然可以能够真正保证每个不同用户之间具有数据的完全隔离性。通过多租户系统技术不仅能够真正保证实现多个不同租户当中的个人共享系统应用实例,并且还可以真正保证实现每个租户的共享系统应用实例的完全个性化和可定制。另外,利用多租户系统技术后还能够保证整个租户系统具有共性的部分就是可以单独进行数据共享,个性化的部分则是需要被单独进行隔离。通过在多个不同租户当中的成本资源重复组合利用,可以将其中的成本资源给予有效节省,同时在每个不同租户当中可以共享应用程序的单个系统实例,一旦遇到需要系统升级的重要时候,多个租户都会在同一时间重新进行系统升级。除此之外,由于多个租户同时享有一个系统当中的核心系统代码,所以,一旦进行系统升级,仅需要将当中的一个核心系统代码重新进行系统升级处理即可。因为网站缺乏多租户协同运行系统架构和网站个性化资源配置管理能力等功能,以往用于面向承租租户的各种B/S大型网站管理框架系统开发技术并不完全适用。以往的技术主要采取ASP模式,每一个用户对应一个运行实例,这一方式开发相对较为简单,然而会导致多次开发,可重复使用性较差。然而通过利用j2ee以及saas多租户等多种相关信息技术可以构建多租户的网站架构,从而让广大用户更加方便于快捷应用系统中的功能。
联系方式:18066528545   029-89298792

阅读过此文章的读者,还阅读过下面的文章

  • 小程序与原生APP那个好?下面我们就来一起了解一下小程序与原生APP那个好。以下是所整理的小程序与原生App的内容,希望对你有所帮助。

    小程序的优点:

    基于微信平台开发,享受微信自带的流量,这个优点最大
    无需安装,只要打开微信就能用,不占手机内存,体验好
    开发周期段,一般最多一个月就可以上线完成
    开发所需的资金少,所需资金是开发原生APP的一半不到
    小程序名称是唯一的,在微信的搜索里权重很高
    容易上手,只要之前有HTML+CSS+JS基础知识,写小程序基本没有大问题
    基本不需要考虑兼容性问题,只要微信可以正常运行的机器,就可以运行小程序
    发布,审核高效,基本上午发布审核,下午就审核通过,升级简单,支持灰度发布
    开发文档完善,社区活跃
    支持插件式开发,一些基本功能可以开发成插件,供多个小程序使用
    小程序的缺点:
    局限性很强(比如页面大小不能超过1M,不能打开超过5个层级的页面,样式单一,小程序的部分组件已经是成型的- 了,样式不能修改,比如幻灯片,导航)只能依赖于微信依托与微信,无法开发后台管理功能
    不利于推广,推广面窄,不能分享朋友圈,只能分享给朋友,附近小程序推广,其中附加小程序也收到微信限制
    后台调试麻烦,因为API接口必须https请求,且公网地址,也就是说后台代码必须发布到远程服务器上;当然我们可以修改host进行dns映射把远程服务器转到本地,或者开启tomcat远程调试;不管怎么说终归调试比较麻烦
    前台测试有诸多坑,最头疼莫过于模拟器与真机显示不一致
    js引用只能使用绝对路径,不能操作DOM
    原生App优点:
    原生的相应速度快
    对于有无网络操作时,譬如离线操作基本选用原生开发
    需要调用系统硬件的功能(摄像头,拨号,短信蓝牙…)
    在无网络或者弱网情况下体验好
    原生App缺点:
    开发周期长,开发成本高,需要下载
  • 小程序和Vue写法的区别?下面我们就来一起了解一下小程序和Vue写法的区别。以下是我所整理的小程序和Vue写法的区别,希望对你有所帮助。

    遍历的时候:

    • 小程序wx:for=“list”,
    • 而Vue是v-for=“item in list”

    调用data模型(赋值)的时候:

    • 小程序:this.data.item // 调用,

    • 小程序:this.setDate({item:1})//赋值

    • Vue:this.item //调用,

    • Vue:this.item=1 //赋值

  • 小程序调用后台接口遇到那些问题?下面我们就来一起了解一下小程序调用后台接口遇到那些问题。以下是所整理的小程序调用后台接口遇到的问题,希望对你有所帮助。

    数据的大小限制,超过范围会直接导致整个小程序崩溃,除非重启小程序

    小程序不可以直接渲染文章内容这类型的html文本,显示需要借助插件
    注:插件渲染会导致页面加载变慢,建议在后台对文章内容的html进行过滤,后台直接处理批量替换p标签div标签为view标签,然后其他的标签让插件来做
  • 分析微信小程序的优劣势?下面我们就来一起简单的了解一下微信小程序的优劣势。下面是所整理的微信小程序的优劣势,希望对你有所帮助。

    优势:

    容易上手,基础组件库比较全,基本不需要考虑兼容问题
    开发文档比较完善,开发社区比较活跃,支持插件式开发
    良好的用户体验,无需下载,通过搜索和扫一扫就可以打开,打开速度快,安卓上可以添加到桌面,与原生APP差不多
    开发成本比APP要低
    为用户提供良好的保障(小程序发布,严格是审查流程)

    劣势:
    限制较多,页面大小不能超过1M,不能打开超过5个层级的页面
    样式单一,部分组件已经是成型的,样式不可修改,例如:幻灯片,导航
    推广面窄,不能分享朋友圈,只能通过分享给朋友,附加小程序推广
    依托与微信,无法开发后台管理功能
    后台调试麻烦,因为api接口必须https请求且公网地址
    真机测试,个别安卓和苹果表现迥异,例如安卓的定位功能加载很慢

  • 简单描述下微信小程序的 相关文件类型。下面我们就来一起了解一下微信小程序的 相关文件类型。以下是所整理的微信小程序的 相关文件类型,希望对你有所帮助。

    wxml 模板文件,是框架设计的一套标签预言,结合基础组件,事件系统,可以构建出页面的结构

    wxss 样式文件,是一套样式语言,用于描述WXML的组件样式
    js脚本逻辑文件。逻辑处理网络请求
    json配置文件,小程序设置,如页面注册,页面标题及tabBar
    app.json 整个小程序的全局配置,包括:
    pages:\[所有页面路径]
    网络设置(网络超时事件)
    页面表现(页面注册)
    window:(背景色,导航样式,默认标题)
    底部tab等
    app.js 监听并处理小程序的生命周期函数,声明全局变量等
    app.wxss 全局配置的样式文件

  • 请谈谈原生开发小程序,wepy,mpvue的对比?下面我们就来一起了解一下原生开发小程序,wepy,mpvue的对比。个人认为,如果是新项目,且没有旧的 h5 项目迁移,则考虑用小程序原生开发,好处是相比于第三方框架,坑少。

    而如果有 老的 h5 项目是 vue 开发 或者 也有 h5 项目也需要小程序开发,则比较适合 wepy 或者 mpvue 来做迁移或者开发,近期看wepy几乎不更新了,所以推荐美团的mpvue。
    而如果如果团队前端强大,自己做一套框架也没问题。

029-86195145 180 6652 8545 西安嘉瑞德网络科技公司
工作时间:周一到周六 8:30-18:30
邮箱:2528823962@qq.com
QQ:2528823962
地址:陕西省西安市未央元朔路明丰伯马都A座10820室
  • 微信小程序制作微信二维码
    扫码咨询
Copyright © 2015 西安嘉瑞德网络科技有限公司 陕ICP备17015187号-1