ofbiz企業級框架的雲服務分析

ofbiz 多租戶模式:sql

ofbiz支持多租戶模式,那麼是一個什麼樣的方式提供的呢:數據庫

一、每個租戶ofbiz 提供一套徹底隔離的庫表,這樣租戶於租戶之間不會相關影響。服務器

二、對於後臺管理來講,租戶經過tenant 標示加 用戶名,密碼 登陸。登陸到本身租戶的系統中。微信

三、ofbiz後臺管理代碼一致,這就要求後臺管理具備通用性。spa

 

擴展前景分析:component

一、企業定製化:根據企業的特色開放不一樣的企業用戶權限。租戶能夠分爲基礎版、高級版等。xml

二、用戶受權限制:get

三、目前多租戶的電商化平臺比較薄弱,如何會每一個多租戶搭建電商門戶、手機APP、微信應用值得考慮it

。。。。io

 

1. Multi-tenanct定義

 

多租戶是可以運行單獨的數據實例(租戶)從單一OFBiz服務器。每一個數據實例保存在一個單獨的數據庫。

用戶登陸數據實例(或租戶)經過指定的承租者ID登陸。請注意,若是未選擇承租者ID,使用默認數據庫。

2. Tenant 數據庫

 

² Tenant 的數據源是不在entityengine.xml 中定義。

 若是db不支持create=true,須要手動建立對應的數據庫,如Mysql

3. 多租戶模式配置

 

有以下3個地方須要修改對應的配置。

· OFBIZ-HOME/framework/entity/data/<yourTenantConfig>.xml

· OFBIZ-HOME/framework/entity/config/entityengine.xml

· OFBIZ-HOME/framework/entity/ofbiz-component.xml

 

1.3. yourTenantConfig.xml

 

能夠在OFBIZ-HOME/framework/entity/data/配置對應的Tenant:

<entity-engine-xml>
    <!-- Search the Ofbiz Wiki for "Multitenancy support" to get instructions on how to setup multi-tenancy -->
    <Tenant tenantId="DEMO1" tenantName="Demo Tenant One"/>
    <TenantDataSource tenantId="DEMO1" entityGroupName="org.ofbiz" 
        jdbcUri="jdbc:derby:ofbiz_DEMO1;create=true" jdbcUsername="ofbiz" jdbcPassword="ofbiz"/>
    <TenantDataSource tenantId="DEMO1" entityGroupName="org.ofbiz.olap" 
        jdbcUri="jdbc:derby:ofbizolap_DEMO1;create=true" jdbcUsername="ofbiz" jdbcPassword="ofbiz"/>
    <!-- the org.ofbiz.tenant URI should be the same for ALL tenants, so don't create a TenantDataSource record for it, it will be ignored anyway -->
    <!-- See comments on entity def: <TenantUserLogin tenantId="DEMO1" userLoginId="admin" fromDate="2001-05-13 00:00:00.000" thruDate="" isManager="Y"/> -->

    <Tenant tenantId="DEMO2" tenantName="Demo Tenant Two"/>
    <TenantDataSource tenantId="DEMO2" entityGroupName="org.ofbiz" 
        jdbcUri="jdbc:derby:ofbiz_DEMO2;create=true" jdbcUsername="ofbiz" jdbcPassword="ofbiz"/>
    <TenantDataSource tenantId="DEMO2" entityGroupName="org.ofbiz.olap" 
        jdbcUri="jdbc:derby:ofbizolap_DEMO2;create=true" jdbcUsername="ofbiz" jdbcPassword="ofbiz"/>
    <!-- See comments on entity def: <TenantUserLogin tenantId="DEMO2" userLoginId="admin" fromDate="2001-05-13 00:00:00.000" thruDate="" isManager="N"/> -->
</entity-engine-xml>

1.4. ofbiz-component.xml

 

<entity-resource type="data" reader-name="tenant" loader="main" location="data/TenantDemoData.xml"/>

1.5. entityengine.xml

 

須要配置對應的tenant 的ofbiz、ofbiz_odbc、ofbiztenent、數據源

 

1.6. Loading Tenant.

 

執行 ant load-demo-multitenant.

 

這時定義在yourTenantConfig.xml裏面的Demo1,Demo2數據庫會有與ofbiz相同的表結構信息同時保存。

相關文章
相關標籤/搜索