一、前言 感觉很久没写文章了,最近也比较忙,写的相对比较少,抽空分享基于Dapper 的分库分表开源框架core-data的强大功能,更好的提高开发过程中的效率;在数据库的数据日积月累的积累下,业务数据库中的单表数据想必也越来越大 甚至上亿级别的数据,这个时候就很有必要进行数据库读写分离、以及单表分多表进行存储,提高性能,但是呢很多人不知道怎么去分库分表,也没有现成的分库分表的成熟框架,故不知道怎么下手,又怕影响到业务;现在我给大家推荐core-data 框架开源地址:https://github.com/overtly/core-data 二、基础 2.1 回顾 这里先来回顾下我上一篇文章中的技术栈路线图,如下: 今天从这张技术栈图中来详细分享一切的基础数据库底层操作 2.2 core-data主要优势: 上一篇文章.Net 微服务架构技术栈的那些事 中简单的介绍了core-data主要优势,如下: 官方建议使用DDD 领域驱动设计思想开发 支持多种数据库(MySql 上面的分表Demo 单元测试运行后的结果例子如下图: 已经按照MerchantId 字段进行分表 三、总结 到这里用户表已经根据商户ID进行分表存储了,这样就做到了读写分离及自定义分表策略存储数据,core-data
4)在桌面上的“bitcoin-qt.exe - 快捷方式”上按鼠标右键,找到“属性”菜单项,在目标的命令行里加上-datadir=e:/core-data,注意-datadir前面有一个空格。 完整的命令行是: E:\bitcoin-0.15.0.1\bin\bitcoin-qt.exe -datadir=e:/core-data 5)重新启动Bitcoin Core,此时可以看见 core-data中保存了钱包和区块等数据 6)对于Bitcoin ABC软件,重复上面五步,把区块数据放在bcc-data文件夹下,命令行是这样的: E:\bitcoin-abc-0.15.1
图片来源:https://engineering.fb.com/2021/08/06/core-data/zippydb/ 每个分片副本的子集都是某个 quorum 组的一部分,在这里数据会被同步复制, 图片来源:https://engineering.fb.com/2021/08/06/core-data/zippydb/ ZippyDB 支持事务和条件性的写入,从而能够适用于要对一组键进行原子读取
superedge/main/deployment/edgex/edgex-device-random.yaml 该命令会启动一个随机整数生成器的虚拟设备连接到 EdgeX Foundry,该设备会向 core-data 数据访问 通过以下命令从网页访问 core-data 的服务的端口查看上一步启动的随机数设备向 core 服务发送的最近10条数据,其中30080是 core-data 服务的端口号,Random-Integer-Generator01 raw.githubusercontent.com/superedge/superedge/main/deployment/edgex/edgex-app-service-configurable.yaml 启动该组件,该组件可以将 core-data
: - name: core-config mountPath: /opt/jumpserver/config.yml - name: core-data hostPath: path: /opt/nfs/jumpserver/config_init/core/config.yml - name: core-data v2.15.4 imagePullPolicy: IfNotPresent tty: true volumeMounts: - name: core-data - name: core-logs mountPath: /opt/jumpserver/logs volumes: - name: core-data
https://app.swaggerhub.com/apis-docs/EdgeXFoundry1/core-data/1.2.0#/
这里就不再分享,具体应用也可以点击【.net core】电商平台升级之微服务架构应用实战(core-grpc) 阅读 2.4 ORM框架 微服务中使用的ORM Dapper ,而使用的的第三方开源组件是core-data ,开源作者对dapper 进行了一次封装,开源框架源代码地址:https://github.com/overtly/core-data core-data主要优势: 官方建议使用DDD 领域驱动设计思想开发
[2] 【健康笔记】: https://www.fatbobman.com/healthnotes/ [3] Core Data 专栏: https://www.fatbobman.com/tags/core-data
conference/atc13/atc13-bronson.pdf [2] Facebook 技术博客,TAO——图的威力:https://engineering.fb.com/2013/06/25/core-data
原文链接: https://engineering.fb.com/2021/08/06/core-data/zippydb/
开源地址:https://github.com/overtly/core-data EFCore.Sharding【国产】 读写分离分库分表一直是数据库领域中的重难点,当数据规模达到单库极限的时候,就不得不考虑分表方案
原文链接: https://engineering.fb.com/2021/09/13/core-data/superpack/ 点击阅读原文访问InfoQ官网,获取海量精彩内容!
/facebook-engineering/tao-the-power-of-the-graph/10151525983993920/ 原文链接:https://engineering.fb.com/core-data
which-version-control-tool-is-google-using-how-is-it-proving-useful-for-it-7fbde4296fbf Facebook 为此魔改了 mercurial 代码管理系统: https://engineering.fb.com/2014/01/07/core-data
https://blog.csdn.net/jxq0816/article/details/81635996 https://code.fb.com/core-data/recommending-items-to-more-than-a-billion-people
在 2016 年,他们发布了 Torchnet(https://code.fb.com/core-data/lighting-the-way-to-deep-machine-learning/),使得深度学习社区能够更容易地快速构建有效和可重复使用的学习系统
https://www.usenix.org/node/170825 [21].https://www.usenix.org/node/186217 [22].https://code.fb.com/core-data