mysql读写分离 abp_企业级工作流解决方案(十三)--集成Abp和ng-alain--数据库读写分离...

说到程序里面数据库管理,无非就是两件事情,一是数据库操作,对于数据库的操作,各种程序语言都有封装,也就是所谓的ORM框架,.net 方向一般用得比较多和就是.net framework和dapper,abp里还集成了NHibernate,另外就是连接字符串的管理,简单的应用直接用一个数据库连接字符串就可以了,但是对于大型的应用,比如有多租户概念的系统,比如有一些分库分表需求的设计系统,那么连接字符串的管理将是非常复杂和核心的内容。

对于读写分离,大家应该比较熟悉,数据库层面,大型的关系型数据库都支持,这里的读写分离是指代码层面,针对DBA已经做好的数据库读写分离来管理数据库连接字符串。

Abp基本框架提供了最基础的数据库连接字符串管理,zero项目实现了多租户的数据库连接管理,即把每个租户的连接字符串存储在租户里面,对于每一个Uow操作,都会找租户的连接字符串,如果找到,就使用,没有找到,向上层找默认的连接字符串。代码如下:

///

///Implementsto dynamically resolve///connection string for a multi tenant application.///

public classDbPerTenantConnectionStringResolver : DefaultConnectionStringResolver, IDbPerTenantConnectionStringResolver

{///

///Reference to the session.///

public IAbpSession AbpSession { get; set; }private readonlyICurrentUnitOfWorkProvider _currentUnitOfWorkProvider;private readonlyITenantCache _tenantCache;///

///Initializes a new instance of theclass.///

publicDbPerTenantConnectionStringResolver(

IAbpStartupConfiguration configuration,

ICurrentUnitOfWorkProvider currentUnitOfWorkProvider,

ITenantCache tenantCache)

:base(configuration)

{

_currentUnitOfWorkProvider=currentUnitOfWorkProvider;

_tenantCache=tenantCache;

AbpSession

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误是由于CORS策略导致的。CORS(跨域资源共享)是一种浏览器安全机制,用于限制跨域请求。当你的前端应用从一个域名(例如localhost:8080)向另一个域名(例如localhost:3004)发起请求时,浏览器会发送一个预检请求(preflight request)来检查服务器是否允许跨域请求。预检请求会包含一些自定义的请求头字段,比如你提到的abp.tenantid。 根据你提供的引用内容,你可以解决这个问题的方法是在后端的响应头中设置允许前端请求时带有的字段值。你可以在Access-Control-Allow-Headers字段中添加abp.tenantid,以及其他你需要允许的自定义请求头字段。例如: Access-Control-Allow-Headers: Content-Type, Access-Token, Appid, Secret, Authorization, abp.tenantid 这样,当浏览器发送预检请求时,服务器会返回允许的请求头字段列表,从而解决CORS策略导致的问题。 #### 引用[.reference_title] - *1* *2* [has been blocked by CORS policy: Request header field aaa is not allowed by Access-Control-Allow-Hea](https://blog.csdn.net/hbysj/article/details/103301845)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [has been blocked by CORS policy: Request header field secret is not allowed by Access-Control-Allow-](https://blog.csdn.net/MFWSCQ/article/details/109337834)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值