ofbiz 多租戶模式:sql
ofbiz支持多租戶模式,那麼是一個什麼樣的方式提供的呢:數據庫
一、每個租戶ofbiz 提供一套徹底隔離的庫表,這樣租戶於租戶之間不會相關影響。服務器
二、對於後臺管理來講,租戶經過tenant 標示加 用戶名,密碼 登陸。登陸到本身租戶的系統中。微信
三、ofbiz後臺管理代碼一致,這就要求後臺管理具備通用性。spa
擴展前景分析:component
一、企業定製化:根據企業的特色開放不一樣的企業用戶權限。租戶能夠分爲基礎版、高級版等。xml
二、用戶受權限制:get
三、目前多租戶的電商化平臺比較薄弱,如何會每一個多租戶搭建電商門戶、手機APP、微信應用值得考慮it
。。。。io
多租戶是可以運行單獨的數據實例(租戶)從單一OFBiz服務器。每一個數據實例保存在一個單獨的數據庫。
用戶登陸數據實例(或租戶)經過指定的承租者ID登陸。請注意,若是未選擇承租者ID,使用默認數據庫。
² Tenant 的數據源是不在entityengine.xml 中定義。
若是db不支持create=true,須要手動建立對應的數據庫,如Mysql
有以下3個地方須要修改對應的配置。
· OFBIZ-HOME/framework/entity/data/<yourTenantConfig>.xml
· OFBIZ-HOME/framework/entity/config/entityengine.xml
· OFBIZ-HOME/framework/entity/ofbiz-component.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>
<entity-resource type="data" reader-name="tenant" loader="main" location="data/TenantDemoData.xml"/>
須要配置對應的tenant 的ofbiz、ofbiz_odbc、ofbiztenent、數據源
執行 ant load-demo-multitenant.
這時定義在yourTenantConfig.xml裏面的Demo1,Demo2數據庫會有與ofbiz相同的表結構信息同時保存。