Mendix多租户技术实践 - Part I
精华
红猪
2021.07.02 13:59发布于技术 - 集成与扩展
2410
云计算与SaaS(Software as a Service)----多租户

多租户技术

多租户技术(英语:multi-tenancy technology)或称多重租赁技术,是一种软件架构技术,它是在探讨与实现如何于多用户的环境下共享相同的系统或程序组件,并且仍可确保各用户间资料的隔离性。 由于云计算议题的逐渐成为热点,在共享的数据中心内如何以单一系统架构与服务提供多数客户端相同甚至可定制的服务,并且仍然可以保障客户的资料隔离,让多租户技术成为云计算技术下的显学。 简单来讲,多租户是指单个软件实例或应用运行在一个服务器并且服务于多个租户的一种软件架构。

企业需求

目前企业都希望将业务数据和垂直行业数据隔离开,在这样的 要求下多租户技术不仅仅是为了实现SaaS。 image.png 传统情况下,有两种做法实现多租户在平台上:

  1. 所有的租户共享数据库(database)
  2. 为每个租户分离数据库(database)或数据库对象集合(schema)

本篇文章主要讨论第二种实现方式。

操作数据库

这里为了做数据库的操作,数据库选择PostgreSQL(一种开源的数据库)。 必须有一个管理员动态创建租户的接口。 通过此接口,管理员可以命名租户并在运行时启动数据库创建。

可以通过4步来实现, 创建一个微流Microflow来调用一个调用系统中(batch file)批文件处理的Java Action,这个批文件进而调用 ( SQL Script Files )SQL脚本文件。

  1. Mendix-Microflow 微流
  2. Mendix-Java Action
  3. Windows- Batch Files
  4. SQL Script Files

1 创建Microflow

创建一个Entity-NewSchema,设置属性dbname为String类型。 image.png

2 创建一个Java Action ---CreatDBSchema

设置属性为 String类型的DatabaseName image.png

创建一个Microflow微流:在Microflow微流中调用一个java action--(CreatDBSchema)。 image.png 在这里设置将Object NewSchema的dbname属性作为参数传入 image.png 选择 deploy for eclipse image.png

打开并在 eclipse找到这个CreatDBSchema java Action. 按照下图编写代码,并指定文件路径和batch file批文件名称。 image.png

3 Batch file

在Batch file中编写(sql文件位置根据自己存放地址修改) image.png

4

注意正常自己导出的sql文件没有创建数据库的语句。 image.png 根据以上机制你可以为租户创建单独的Database或者Schema。

首赞
收藏
手机查看
举报
0个评论
倒序看帖
仅看楼主

暂无数据