.Net之分表分库全自动化实例分析


本文小编为大家详细介绍“.Net之分表分库全自动化实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“.Net之分表分库全自动化实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。静态容器的使用导致ShardingCore在整个应用程序声明周期只有一份数据,那么数据都是共享的这个对于后续的测试维护扩展是相当的不利的,没有单例那种隔离性来的好,所以移除了ShardingContainer,通过提供IShardingRuntimeContext来保证和之前的参数结构的访问,同一个DbContext类型在使用不同的IShardingRuntimeContext后可以表现出不同的分表分库特性。首先我们针对原生efcore进行扩展来达到分库分表+code-first自动迁移开发添加依赖 ShardingCore 6.6.0.3 MySql创建一个todo实体创建dbcontext简单的将对象和数据库做了一下映射当然DbSet+Attribute也是可以的新建分库分表路由分库路由分表路由:新建迁移数据库脚本生成配置依赖免费云主机域名注入添加迁移文件分表分库自动迁移crud接下来我们将针对TodoItem添加一个name字段并且新增一张既不分库也不分表的表然后进行迁移不出意外我们成功了然后再次启动启动程序后我们惊奇的发现不单原先的表新增了一个name字段,并且为分片未分开的表也被添加进来了到此为止efcore的原生分库分表+全自动化迁移Code-First已经全部完成,这不仅大大的提高了程序的性能并且大大的方便了开发人员的维护。完成了efcore原生的分表分库迁移我们将进行abp下的操作
首先我们去github下的abp-samples里面下载对应的demo测试,这边选择todo-mvc
接着我们本地打开安装依赖,只需要安装ShardingCore 6.6.0.3。因为ShardingCore需要add,update,remove的时候shardingkey不可以为空,你可以自己赋值,但是这样abp的部分特性就不能用了,所以我们做一下兼容因为Abp需要继承AbpDbContext所以这边进行一个修改因为ShardingCore只需要接口所以可以满足任何情况
//为了篇幅移除了大部分代码剩下的可以在文末demo处查看todoitem id取模分库todoitem text 取模分表:TodoAppEntityFrameworkCoreModule编写注入启动:等待输出:插入todoitem查询验证到此为止我们这边完成了针对abpvnext的分表分库+自动化迁移的操作接下来我们开始集成Furion的操作
首先依旧安装依赖3.7.5+版本直接参考demo相对简单很多添加依赖 ShardingCore 6.6.0.3 MySql新增带分片的DbContext和Abp一样抽象对象直接看远吗,这边直接新增一个dbcontext新增分库路由:这边简单看了一下furion貌似没有提供Funcefcore注入方式所以这边不得已采用静态方式,
如果采用静态的方式需要实现一个接口IDbContextCreator启动:增删改查:之前也有一次继承过之后也有因为迁移过于麻烦所以这边ShardingCore出了更加完善迁移方案并且使用起来code-first更加无感添加依赖 ShardingCore 6.6.0.3 MySql迁移脚本因为WTM在创建dbcontext并不是通过依赖注入创建的而是由其余的内部实现所以为了兼容我们这边只能通过静态IShardingRuntimeContext注入因为过于长所以这边只显示主要部分其余通过demo查看修改dbcontext移除掉了之前的多余代码迁移:启动程序:crud:读到这里,这篇“.Net之分表分库全自动化实例分析”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注百云主机行业资讯频道。

相关推荐: mvn compile报错“程序包com.XXX不存在”怎么解决

这篇文章主要介绍了mvncompile报错“程序包com.XXX不存在”怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mvncompile报错“程序包com.XXX不存在”怎么解决文章都会有所收获,下面我们一起来看看吧。m…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/21 20:06
下一篇 03/21 20:06

相关推荐