在微服务架构中扩展数据库

2024-01-10

假设我们有 5 个微服务 (μS),每个微服务都需要一个包含一些表的数据库。这些服务中的每一个都需要能够扩展,包括数据库查询。为此,据我所知,我们有几个选择:

1. 1-μS; 1 个实例; 1 个数据库实例

不要水平缩放,只垂直缩放。

2. 1-μS; N 个实例; 1 个数据库实例

服务的每个实例都可以读取和写入同一数据库。如果服务处理是瓶颈,则可以采用简单的扩展方法。

3. 1-μS; N 个实例;高可用性数据库集群

服务的每个实例都可以读取和写入同一个 HA 数据库。如果数据库读/写也是瓶颈,那么这是一种扩展的好方法。运营成本较大。

4.N-μS; N 个实例;高可用性数据库集群

每个服务的每个实例都可以读取和写入同一个 HA 数据库集群。每个服务在 HA 数据库集群中使用自己的数据库。

5. Other

除了需要数据库的服务之外,还有其他方法可以扩展数据库吗?


每个解决方案都需要权衡,无论是读取还是写入性能、操作成本等,但是对于扩展数据库,推荐的解决方案是什么:

  • 服务和数据库在某种程度上是平等的,扩展服务需要扩展数据库?
  • 服务需要更多处理时间意味着服务需要扩展而不是数据库?
  • 数据库比服务需要更多的处理时间?

我的观点是,如果某个服务的写入量很高,那么 3 或 4 是一个解决方案,而对于其余的 4 是一个解决方案。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在微服务架构中扩展数据库 的相关文章

  • 面向对象的数据库是否比带有 ORM 的关系数据库更好?

    只是认为带有 ORM 的关系数据库在很多方面与面向对象的数据库非常相似 我的经验仅在于带有一点 ORM 的 RDMS 所以在我看来 面向对象的数据库非常相似 但没有经验我不能肯定地说 如果您使用过面向对象数据库和 ORM 您能比较它们吗 与
  • Android 内容提供商更新某些列

    我正在尝试制作一个 Android 应用程序来确定完成任务还剩多少时间 我遵循了Vogella的教程 特别是这一部分http www vogella com articles AndroidSQLite article html todo
  • Java - 如何批量插入和更新数据库

    我想在一个PreparedStatement 中批量处理多种类型的数据库调用 这可能吗 有没有办法做类似的事情 PreparedStatement pstmt connection prepareStatement 哪里的 可以是INSER
  • 清理 couchdb 并重新启动

    清理命令是什么CouchDB请 如果我想disable and re start我的CouchDB命令是什么 Thanks CouchDB 可以从以下位置启动 停止 重新启动 etc init d couchdb or etc rc d c
  • 微服务安全

    在过去的几天里 我一直在研究微服务模式 一切都很顺利 但安全性似乎让我感到困惑 所以如果我可以问一个问题 如何处理单个服务的用户身份验证 目前我向Gateway API进而连接到该服务 罢工 gt 问题已编辑 请参见下文 请记住 各个服务不
  • 同步2个具有不同模式的数据库

    我们有一个使用通用表设计的标准化 SQL Server 2008 数据库 因此 我们没有为每个实体 例如产品 订单 订单项等 使用单独的表 而是使用通用表 实体 实例 关系 属性等 我们决定建立一个单独的非规范化数据库来快速检索数据 您能否
  • Azure:用户登录失败

    我做了什么 我在 Azure 中添加了资源组 添加了带有先前资源组的 Web 服务 添加了带有先前资源组的 SQL Server 数据库 从此数据库检索生成的连接字符串并在此处提供用户名和密码 将此连接字符串添加到Web服务中的应用程序设置
  • 哪些 ORM 与 Scala 配合得很好? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在实时计算机上更新(或替换)整个数据库表的最佳方法是什么?

    我每周都会收到一个数据源 我将对其进行解析并放入数据库中 数据每周不会有太大变化 但我应该定期更新数据库 除了每周更新外 数据是静态的 目前重建整个数据库不是问题 但最终该数据库将上线 人们可以在我重建数据库时查询该数据库 数据量并不小 几
  • 在cakephp 3中动态更改数据库连接

    我正在尝试更改中使用的数据库连接蛋糕php 3在飞行中 我找到的这个问题的每个答案都指的是蛋糕PHP 2 These https stackoverflow com questions 27655613 multiple databases
  • 非关系数据库设计[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有兴趣了解您使用过的设计策略非关系型 nosql 数据库 也就是说 不使用传统关系设计或 SQL 的 大多数是新的 数据存储类 例如
  • Postgres - 如何在插入时自动调用 ST_SetSRID(ST_MakePoint(lng, lat), 4326)?

    我正在使用postGIS 并且我对SQL不是很熟悉 我可以成功插入到我的markers表只要我做这样的事情 伪代码 INSERT INTO markers created by title description lat lng geogr
  • PostgreSQL 中字符串列类型的索引数组

    是否可以在类型为的列上创建索引文本数组 尝试使用GIN索引 但查询似乎没有使用这些索引 Example CREATE TABLE users name VARCHAR 100 groups TEXT Query SELECT name FR
  • 使用 where 进行 select 语句时,HSQLDB 用户缺乏权限或未找到对象错误

    我的数据库使用 SQuirrel SQL 客户端版本 3 5 3 和 HSQLDB 我已经能够为其指定相应的驱动程序 内存中 并创建一个别名 我创建了一个表 CREATE TABLE ENTRY NAME VARCHAR 100 NOT N
  • 对多个数据库执行 SQL 查询

    我知道我的帖子与该论坛中的其他帖子的标题非常相似 但我真的找不到我需要的答案 这是我的问题 我的 Windows Server 上运行着 SQL Server 在我的 SQL Server 中 我有大约 30 个数据库 它们都具有相同的表和
  • .NET 的 BLOB 分布式存储?

    我正在寻找一个经过相当好的测试的库 服务器来存储持久的分布式哈希表 我对使用基于 SQL 的解决方案犹豫不决 因为数据是高度面向文档的 由数百万个约 64KB 的 blob 组成 只有一个索引 由所述 BLOB 的哈希计算 并且需要能够进行
  • 用于捕获审计跟踪的数据库设计的想法[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 如何维护数据库中的数据日志 我必须维护对每一行所做的每次更改的日志 这意味着我不能允许DELETE and UPDATE待执行 我怎样才能保留这
  • db:schema:load 与 db:migrate 使用 capistrano

    我有一个 Rails 应用程序 我正在将其移动到另一台服务器 我认为我应该使用 db schema load 来创建 mysql 数据库 因为这是推荐的 我的问题是我正在使用 capistrano 进行部署 并且它似乎默认为 rake db
  • 如何停止在 mongodb 集合中插入重复文档

    让我们有一个MongoDB包含三个文档的集合 db collection find id user A title Physics Bank Bank A id user A title Chemistry Bank Bank B id u
  • 串行类型的外键 - 确保始终手动填充

    我有两个表 国家和地区 CREATE TABLE Countries id SERIAL name VARCHAR 40 NOT NULL PRIMARY KEY id CREATE TABLE Regions id SERIAL coun

随机推荐

  • 垂直对齐 div 元素中的图像?

    我有一个 div 元素 其高度设置为em 其宽度我设置为百分比 里面有一张图片 它的宽度以百分比表示 83 但是 如果我的分辨率使 div 元素开始变得有点窄 则图像也会变窄 但图像不会占据整个 div 应有的 而是会变小并出现在div 的
  • 如何使用 VB6 获取硬件信息,例如 CPU 名称、总 RAM 等?

    标题几乎说明了一切 我需要使用 VB6 获取一些硬件信息 例如 CPU 信息和总 RAM 理想情况下 它会为 CPU 返回类似以下内容 英特尔酷睿 2 四核 Q8500 2 66 GHz 对于 RAM 来说 有些简单的东西 比如计算机总共拥
  • Laravel 使用请求获取 POSTed 数据

    在 Laravel 中如何获取请求正文 我正在尝试 request gt get data 但得到空结果 我正在向控制器中的存储功能发出 POST 请求 但无法获取 POST 数据 public function store Request
  • Golang:即使数据库关闭,第二次 Ping 也会成功

    我遇到了一个有趣的问题 即 db Ping 不会返回错误 即使数据库自第一次尝试以来已被终止 源代码如下 import database sql fmt log time github com go sql driver mysql typ
  • Assembly.ReflectionOnlyLoadFrom 不起作用

    我有一个集会Library1 dll其中包含一些接口 这些接口被序列化为字节数组到数据库中 由于某些原因 我们必须更改接口属性和定义 所以现在我正在编写一个迁移实用程序 所以我有两个版本Library1 dll 在我的实用程序中 我创建了一
  • 使用多核使用 g++ 进行编译

    快速问题 允许 g 生成自身的多个实例以便更快地编译大型项目 例如 多核 CPU 一次 4 个源文件 的编译器标志是什么 您可以使用 make 来完成此操作 使用 gnu make 时 它 是 j 标志 这对单处理器机器也有帮助 例如 如果
  • 程序终止后动态分配内存

    当包含动态分配内存 使用 malloc new 而没有 free delete 调用的 C C 程序终止时 动态分配的内存会发生什么 操作系统是否收回内存 或者其他程序是否无法访问该内存 我不认为语言标准有任何保证 但是支持稀疏虚拟内存和内
  • 对 SliverList 中的变化进行动画处理

    我目前有一个SliverList其项目是动态加载的 问题是一旦这些项目被加载 SliverList更新而不动画更改 在加载和加载之间进行转换very刺耳的 我看到AnimatedList存在 但它不是条子 所以我不能将它直接放入Custom
  • python 迭代文本文件直到满足条件

    我想继续迭代文本文件 直到满足循环内的当前条件 这是示例文本 10 01 N A 10 02 N A 10 03 N A 10 04 N A 10 05 N A 10 06 N A 10 07 N A 10 08 N A 10 09 N A
  • 用R计算多个多边形之间的最小距离

    我对 R 和 sf 包还是有点陌生 我有两组多边形数据正在尝试分析 我的第一组多边形 火灾 包含数百个野火周界 第二组 城镇 包含数百个城市区域边界 对于每次火灾 我想计算到最近城镇的距离 火灾多边形边缘到最近城镇多边形边缘 并将其作为字段
  • Meteor 的 Iron Router - 将多个路径路由到一个模板,但仍然是 DRY

    我想将多个路径路由到同一个模板 例如 abc home and home都会显示home模板 路径也可以有子路径 所以abc parent child and parent child也应该路由到相同的路径 I can 简单地重复 Rout
  • 使用 PHP 对从 CSV 数据构建的多维数组进行排序

    尝试对 PHP 中从 CSV 填充的数组进行排序 理想情况下 我也希望能够通过单击来控制排序此处表格中的选项卡 http wakeuptv com shows 不过 现在我手头的第一个任务就是整理该死的东西 已经为此工作了 3 天多了 非常
  • ASP.net 中的免费 PDF 查看器

    我有许多二进制格式的 PDF 文档 位于 SQL Server 2008 数据库中 我的 ASP net 页面中有一个 gridview 当用户单击记录的任何 ID 列时 我需要在浏览器中打开 pdf 有没有免费的 PDF 查看器控件 如何
  • 配置服务时如何通过依赖注入在 Azure Function V3 中注入或使用 IConfiguration

    通常在 NET Core 项目中 我会创建一个 引导 类来配置我的服务以及 DI 注册命令 这通常是一个扩展方法IServiceCollection我可以在哪里调用类似的方法 AddCosmosDbService并且所有必要的东西都是包含该
  • System.Web.Razor API 文档 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 此类型 成员支持 NET Framework 基础结构 并且不适合直接在代码中使用 谁能说出以下事实 System Web Razor http
  • 使用 Python 打开 Outlook

    我正在尝试使用 Python 打开 Outlook 但我得到了这个 import win32com client ol win32com client Dispatch outlook Application 它会打开 Outlook 但我
  • NgModule 中的声明、提供者和导入之间有什么区别?

    我试图理解 Angular 有时称为 Angular2 然后我遇到了 Module Imports 声明 供应商 下列的角度快速入门 https angular io guide quickstart 角度概念 imports使其他模块的导
  • PHP:从 javascript 重新加载验证码图像

    我有一个 PHP 中的用户注册表单 我将验证码图像检查放在页面中 我像这样使用它 img src captcha php alt Enter this text in the adjacent text box 在我的 javascript
  • 在 SQLite LIKE 中转义通配符 (%, _) 而不牺牲索引使用?

    我在 SQLite 查询方面遇到了一些问题 实际上我开始认为 SQLite 不是为超过 10 行的表设计的 真的 SQLite 是一场噩梦 以下查询 SELECT FROM Table WHERE Name LIKE Text 效果很好 E
  • 在微服务架构中扩展数据库

    假设我们有 5 个微服务 S 每个微服务都需要一个包含一些表的数据库 这些服务中的每一个都需要能够扩展 包括数据库查询 为此 据我所知 我们有几个选择 1 1 S 1 个实例 1 个数据库实例 不要水平缩放 只垂直缩放 2 1 S N 个实