专栏首页Jerry的SAP技术分享MongoDB实现Multi tenant的方法

MongoDB实现Multi tenant的方法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://jerry.blog.csdn.net/article/details/103296329

this is an example on how to implement the multi tenancy by using MongoDB. Tenant separation is done by schema separation.

Tenant resolver to get the tenant for current request

@Component
 public class TenantResolver {
     public static final String HEADER_HYBRIS_TENANT = "hybris-tenant";
 
     private String defaultTenant;
 
     public String getCurrentTenant() {
         return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest().getHeader(HEADER_HYBRIS_TENANT);
 
     }
 
 }
  1. Document annotation to specify the collection name
@Document(collection = "#{tenantResolver.getCurrentTenant()}_config")
public class Config {
...
}

Test:

Created different collections according to the tenant:

db.getCollectionNames()

[ “config”, “t1_config”, “t2_config”, “t3_config”, “users” ]

Data from different tenant is stored into the corresponding collection:

db.t1_config.find()

{ “_id” : “test1”, “_class” : “com.example.model.Config”, “value” : “value” }

db.t2_config.find()

{ “_id” : “test2”, “_class” : “com.example.model.Config”, “value” : “value” }

db.t3_config.find()

{ “_id” : “test3”, “_class” : “com.example.model.Config”, “value” : “value” }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SAP gateway处理multiple key的逻辑

    现在的问题还是我需要用naming convention guid 告诉gateway我传进来的HeaderGuide的value是一个guid类型,现在Hea...

    Jerry Wang
  • 关于SAP CRM中间件系统搭建中遇到的一些问题

    之前我遇到一个问题,从ERP QV5到CRM X3D的response没有回来,原因是因为在ERP端的CRMRFAPCR表里面,没有到X3D的配置,新增一条配置...

    Jerry Wang
  • 使用SAP云平台 + JNDI访问Internet Service

    以Internet Service http://maps.googleapis.com/maps/api/distancematrix/xml?origins...

    Jerry Wang
  • 14.data.js

    hankleo
  • jcaptcha配置验证码

    public static final String SESSION_ID = "JSESSIONID";

    HUC思梦
  • 研发流程优化实践

    代码入库之前的开发活动,主要包括编码、调测调优、静态检查、自动化测试、代码审查等。这是开发者编写代码的步骤,自然是提高研发效能的关键环节。

    猿哥
  • 神笔马良? AI 绘画?GitHub 上这几个项目教你怎么玩!

    前两天在 GitHub Trending 上看到个利用 AI 自动给图片上色的项目(style2paints)火起来了。

    GitHubDaily
  • Pandas中文官档~基础用法6

    大多数情况下,pandas 使用 Numpy 数组、Series 或 DataFrame 里某列的数据类型。Numpy 支持 float、int、bool、ti...

    1480
  • spring 引入uploadify控件时的302与406

    302 302错误是由于spring拦截器造成的,需要将上传图片的controller不进行session验证即可 406 406是由于请求json头造成,解决...

    听城
  • Srping MVC中Controller的void方法

    ydymz

扫码关注云+社区

领取腾讯云代金券