首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据库软件架构设计些什么

缘起:受@萧田国 萧总邀请,上周五晚上在“高效运维1号群”内分享了《58同城数据库软件架构设计与实践》(这个topic今年在数据库大会上分享过),应组织方要求,发出纪要。...---- 一、基本概念 二、数据库架构设计思路 (1)可用性 (2)读性能 (3)一致性 (4)扩展性 ---- 一、基本概念 概念一“单库” ? 概念二“分片” ?...互联网公司数据库实际软件架构是:又分片,又分组(如下图) ? ---- 二、数据库架构设计思路 数据库软件架构师平时设计些什么东西呢?...服务+数据库是一套(省去了缓存) 数据库采用“双主”的模式。 扩容步骤: 第一步,将一个主库提升 第二步,修改配置,2库变4库(原来MOD2,现在配置修改后MOD4) 扩容完成 ?...---- OK,今天主要分享了58同城,数据库软件架构上: (1)如何保证数据可用性 (2)如何提高数据库读性能 (3)如何保证数据一致性 (4)如何进行秒级扩容 希望大家有收获,谢谢大家!

921110

软件系统数据库的分库分表设计

软件系统数据库的分库分表设计  系统读写分离、分库分表技术实现采用MyCat中间件,MyCat 是一款开源(遵循 Apache License 2.0 协议)的大数据库集群中间件,用于搭建数据库的分布式集群...,实现分库分表功能,解决数据库中海量数据存储和查询性能的问题。...MyCat 还是一个数据库的集群中间件,主要实现 RDBMS 数据库集群的故障转移、负载均衡、读写分离等功能。  ...MyCat 的关键技术是分库分表,它通过将数据库中物理表中的数据切分成多个表分片,并将表分片存储在多个数据库节点上,从而构建分布式存储架构,提升巨表关联、排序、分组聚合等 OLAP 的能力。  ...主要解决在业务系统存在大量的读并发时,通过负载均衡提高查询请求吞吐量,并将多个数据库节点集群化管理,在多主集群中单点数据库故障时候选主节点切换。

12810
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    数据库软件架构,到底要设计些什么?

    数据库软件架构,到底要设计些什么? 强烈推介IDEA2020.2破解激活,IntelliJ IDEA 注册码,2020.2 IDEA 激活码 大家好,我是架构君,一个会写代码吟诗的架构师。...今天说一说数据库软件架构,到底要设计些什么?,希望能够帮助大家进步!!! 一、基本概念 概念一:单库 概念二:分片 分片解决“数据量太大”这一问题,也就是通常说的“水平切分”。...互联网公司数据库实际软件架构是“既分片,又分组”: ---- 数据库软件架构,究竟设计些什么呢,至少要考虑以下四点: 如何保证数据可用性 如何提高数据库读性能(大部分应用读多写少,读会先成为瓶颈) 如何保证一致性...如何保证数据库“写”高可用? 冗余写库。 采用双主互备的方式,可以冗余写库。 冗余写库带来什么副作用? 双写同步,数据可能冲突(例如“自增id”同步冲突)。...主从数据库的一致性,通常有两种解决方案: (1)中间件 如果某一个key有写操作,在不一致时间窗口内,中间件会将这个key的读操作也路由到主库上。

    39920

    PDF.NET开发框架“内存数据库”架构设计

    前一段时间,我写了篇《移花接木:当泛型方法遇上抽象类----我的“内存数据库”诞生记 》,记录了PDF.NET内存数据库设计过程,最近做了些小改动,已经投入生产使用了,目前运行良好。...今天重新看了看源码,觉得有必要画一个内存数据库的架构图,因为整个程序的核心代码加上详细的文件注释,才391行代码,时间长了恐怕无法了解整个程序的设计思路。 先直接上图,再说明架构的设计问题: ?...5,数据持久化 整个内存数据库使用的数据都是PDF.NET的实体类,这里使用PDF.NET框架的“序列化”和“反序列化”功能,将内存数据写入磁盘上的pmdb文件,或者从文件加载数据到内存中。...由于PDF.NET实体类的独特设计,使得它的序列化和反序列化效率非常高,另外不使用反射,性能也很好,而且,最重要的,它没有关系数据库那一套“沉重”的数据库元数据标识,所以它非常轻巧,适合作为内存数据库数据的最佳载体...有关PDF.NET开发框架的详细内容,请看官网 http://www.pwmis.com/sqlmap 内存数据库目前已经投入生产使用,即将整合在PDF.NET框架的下一个版本中。

    1.3K70

    软件必备模块-软件设计

    我想设计一个安卓,iOS或者Web应用的时候,开始做软件的步骤是什么,有个想法,做个需求分析,然后开始设计软件。这篇讲的是设计软件这一步。...该怎么做一个整个项目的设计图呢?这篇主要想解决的是盖楼如何有个基本图纸。 为什么建筑师要画图纸?...当自己需要设计一个自己的软件的时候,自然需要这么一份图纸。 有其形无其实,有其实无其形 当时印象比较深,时常很纠结UML该用那个箭头,用圆的还是用方块。...UML其实从另一个方面告诉我们如何开始设计自己的软件。...物理图 Physical View:该视图关注软件构件在硬件上的top结构,以及构件之间的通信。典型的视图为部署视图(deployment diagram)

    90320

    .NET Core、.NET 56 Linux 守护进程设计

    链接:cnblogs.com/yunei/p/15367709.html 前言 几年前,我写过两篇关于用C#开发Linux守护进程的技术文章,分别是《.NET跨平台实践:用C#开发Linux守护进程》和...《.NET跨平台实践:再谈用C#开发Linux守护进程 — 完整篇》。...由于当时.NET Core还很稚嫩,没有在业界得到广泛使用,所以之前这两篇文章的技术是针对Linux+Mon这个环境而言的。...现在.NET Core、.NET 5 已经大行其道,.NET 6也很快就会发行正式版,因此,很有必要再加一篇,阐述一下怎么让.NET Core以及.NET 5以上版本的.NET程序也能在Linux环境下...Core或.NET 5以上版本的.NET 程序,以纯代码方式使自身成为标准的Linux守护进程的示例代码,你完全可以将它关键部分借用到自己的真实项目中。

    1.8K10

    可视化数据库设计软件有哪些_数据库可视化编程

    4)生成到SQL Server和其他数据库的数据连接。 5)存储数据库项目和引用。...6)将节点从服务器资源管理器中拖到 Visual Studio .NET 项目中,从而创建引用数据资源或监视其活动的数据组件。...7)通过对这些在 Visual Studio .NET 项目中创建的数据组件编程来与数据资源进行交互。...) 数据库应用程序的结构与设计步骤 数据库应用程序结构 数据库应用程序由数据访问窗体控件、数据源控件和ADO.NET数据访问对象组成。...3.ADO.NET对象 数据库应用程序的设计步骤 1.创建解决方案的项目 2.添加Windows窗体 3.设计用户界面 4.创建事件处理程序和编译、调试、运行程序 数据源控件与数据访问窗体控件

    6.7K40

    软件设计 软件设计模式之SOLID原则

    软件设计模式之SOLID原则 By:授客 QQ:1033553122 #单一职责原则(SRP) 定义:任何一个软件模块都只对某一类行为者负责 说明:这里“软件模块”,在大部分情况下,可以简单定义为一个源代码文件...,可以通过新增代码来满足新的需求,也就是说一个设计良好的计算机系统应该在不需要修改的前提下就可以轻易被扩展,这是架构的根本目的,如果对原始需求的小小延伸就需要对原有的软件系统进行大幅修改,那么这个系统的架构设计显然是失败的...因为抽象灵活性好,适应性广,只要抽象的合理,可以基本保持软件架构的稳定。而软件中易变的细节可以从抽象派生来的实现类来进行扩展,当软件需要发生变化时,只需要根据需求重新派生一个实现类来扩展就可以了。...接口隔离原则是基于接口设计考虑。...业务逻辑是仅仅包括用例、业务实体部分,不包括任何框架、存储(数据库)、其他系统等部分,是纯粹的。其他细节,包括框架、数据库、消息队列,都是细节。业务逻辑应该不依赖任何细节。

    1.2K20

    解析大型.NET ERP系统 20条数据库设计规范

    数据库设计规范是个技术含量相对低的话题,只需要对标准和规范的坚持即可做到。当系统越来越庞大,严格控制数据库设计人员,并且有一份规范书供执行参考。...以下20个条款是我从一个超过1000个数据库表的大型ERP系统中提炼出来的设计约定,供参考。 1 所有的表的第一个字段是记录编号Recnum,用于数据维护 ?...在代码中调用枚举的通用方法,读取枚举的StringValue写入到数据库中,读取枚举的DisplayText显示在界面中。...经过这一层设计数据库中有关字典方面的设计就规范起来了,避免了数据字典的项的增减给系统带来的问题。...除非特别需求,一般而言,界面中控件的长度取自映射的数据库中字段的定义长度。

    2.5K70

    软件概要设计与详细设计

    (一) 概要设计的任务与步骤 1、总体设计的必要性:可以站在全局角度上,花较少成本,从抽象的层次上分析对比多种可能性的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统...2、总体设计的两个阶段: (1)系统设计阶段:确定系统的具体实现方案 (2)结构设计阶段:确定软件结构。...3、总体设计的9个步骤: (1)设想供选择的方案 (2)选取合理的方案 (3)推荐最佳方案 (4)功能分解 (5)设计软件结构 (6)设计数据库 (7)制定测试计划 (8)书写文档 (9)审查和复审 (...二) 软件设计的基本原则、抽象与逐步求精方法 传统软件工程方法学采用结构化设计方法(SD) 1、从工程管理角度结构化设计分为两步: ①概要设计:讲软件需求转化为数据结构和软件系统结构 ②详细设计:过程设计...如果把数据库从MySQL移植到Oracle,或者改变基于RDBMS数据源到LADP,只需改变模型即可。一旦正确的实现了模型,不管数据来自数据库或是LDAP服务器,视图将会正确的显示它们。

    5.5K21

    大型.NET ERP系统的20条数据库设计规范

    数据库设计规范是个技术含量相对低的话题,只需要对标准和规范的坚持即可做到。当系统越来越庞大,严格控制数据库设计人员,并且有一份规范书供执行参考。...以下20个条款是我从一个超过1000个数据库表的大型ERP系统中提炼出来的设计约定,供参考。..."Male")] Male, [StringValue("F")] [DisplayText("Female")] Female } 在代码中调用枚举的通用方法,读取枚举的StringValue写入到数据库中...经过这一层设计数据库中有关字典方面的设计就规范起来了,避免了数据字典的项的增减给系统带来的问题。...除非特别需求,一般而言,界面中控件的长度取自映射的数据库中字段的定义长度。

    1.3K60

    数据库可以影响整体软件的架构设计,-- 那是当然!

    数据库 DBA 在整体软件的成型的过程中大部分的单位都将这个职位定位成一个运维的职位。...NO NO NO 按照盖老师(DBA鼻祖),名言名句,“这是一个数据库百花齐放” 的年代“,那既然是百花齐放的年代,那选择数据库,理解数据库的特点,并将这些特点与软件开发的架构设计融合,提高软件编程成型的速度...,降低软件构造的成本,提高整体软件结构的抗击打性。...6 应用程序开发的语言是什么,是JAVA ,GO ,.NET, PYTHON 那种程序开发的语言,本身这些语言对于使用哪种数据库本身也是有倾向的。...所以一个应用系统设计中的数据库到底是不是可以左右整体业务逻辑的架构设计,此时还有多少人还有疑问? 此时还认为 DBA 就是个运维的岗位, 呵呵, TOO Young TOO simple。

    41920

    .NET可逆框架设计

    前段时间一直在学习和研究.NET事务处理,慢慢的我发现可以使用事务处理来实现一种可逆的系统框架。这种框架在一些IT社区似乎还没有见过,但是在我们日常开发中确实有这个需求。...[王清培版权所有,转载请给出署名] (可以参考本人的:.NET简谈事务本质论、.NET简谈自定义事务资源管理器) 1. 什么是可逆的程序框架 什么叫可逆的?程序的执行是可以被无限制回滚的。...(这里不仅仅指的是数据库事务,而是全局的事务处理) 我们用图做个比较。...所以这里借鉴了Transaction Scope的设计思想。...总结: 这篇文章主要是想介绍一下事务的另一种使用方式,对可逆框架的设计方向算是一个抛砖引玉吧,希望大家用的着。

    90520

    软件架构设计软件架构概述

    通俗地讲,软件架构设计就是软件系统的“布局谋篇”。 人们在软件工程实践中,逐步认识到了软件架构的重要性,从而开辟了一个崭新的研究领域。...软件架构的研究内容主要涉及软件架构描述、软件架构设计软件架构风格、软件架构评价和软件架构的形成方法等。...软件设计人员学习软件架构知识旨在站在较高的层面上整体地解决好软件设计、复用、质量和维护等方面的实际问题。...在设计软件架构时也必须考虑硬件特性和网络特性,因此,软件架构与系统架构二者间的区别其实不大。但是,在大多情况下,架构设计师在软件方面的选择性较之硬件方面,其自由度大得多。...从软件生命周期来看,软件架构是所开发系统的最早设计决策的体现,主要表现为: 架构明确了对系统实现的约束条件:架构是架构设计师对系统实现的各方面进行权衡的结果,是总体设计的体现,因此,在具体实现时必须按架构的设计进行

    1.7K40

    软件设计(八)

    软件设计(七) 71、计算机系统主要是由 DRAM 构成的。 解析:随机访问存储器RAM有两类。 DRAM:(dynamic)动态随机访问存储器。...四要素: 1)外部实体,也称数据源和数据汇点,表示要处理的数据输入来源和处理结果送往何处,不属于目标系统的一部分,通常为组织、部门、人、相关的软件或硬件设备。 2)数据流表示数据沿箭头方向的流动。...4)数据存储在数据流中起到保护作用,可以是数据库文件或者是任何形式的数据组织。 ERD实体联系图描述数据对象和数据对象之间的关系。 1)实体是目标系统所需要的复合信息的表示,也叫数据对象。...二级索引最大长度:341*341*1024/1024 = 116281 80、极限XP属于敏捷开发的一种,包括:计划游戏、小的发布、系统隐喻、简单设计、测试驱动、重构、结对编程、集体所有权、持续继承、每周工作

    51920
    领券