【行业观点】如何为微服务选择正确的数据库

自动生成RESTful API——Spring Data Rest ○ 虽然 Spring Data REST 可以自动暴露仓库方法,但你仍然可以添加自定义控制器来处理特定的业务逻辑。你可以通过 @RepositoryRestResource 注解来自定义仓库的暴露方式。创建一个自定义的认证提供者,用于处理认证逻辑。 阅读详情

微服务成为基础设施建设重点的原因在于它提供了服务分离、数据自主存储、小型化开发、测试可设置等优势,这有助于新应用程序更快地上市或迭代更新。此外,容器和容器编排工具也增加了对微服务的使用频率。
微服务的核心摒弃了传统架构,这使得它在服务之间共享一个单一的数据库。相比于传统的服务架构,微服务架构的每个微服务单元都具有独立、自主、专用的数据存储单元。
以一个电子商务解决方案为例,如图所示,该方案采用的服务包括:应用服务器、内容缓存、会话存储、产品目录、搜索发现、订单处理、订单跟踪和数据分析等等。现代电子商务解决方案不是使用大型单个数据库来存储所有的操作和交易数据,而是使用类似于图1所示的微服务架构,其中每个服务都有自己的数据库。
这里写图片描述
如何为微服务选择数据存储方式
“如何选择正确的数据存储方式”是设计微服务时最重要的问题之一。选择正确数据存储方式的第一步是确定微服务数据的性质。数据性质大致可以分为以下几类:
1. 短暂数据:缓存服务器就是短暂数据存储的一个很好的例子,它是一个临时数据存储,其目的是通过实时提供信息来改善用户体验。 微服务通常被调整为高性能,并且操作读取频繁,它没有耐久性要求,因为它不存储数据的主副本,但它又仍然必须保持高度可用,因为出现故障可能会导致用户体验不佳,从而影响收益。另外,故障也可能会导致“缓存冲突”问题,因为数据库爬网速度较慢,它们无法处理高频的访问,反而这可能导致完全可以避免的故障出现。
2. 瞬态数据:日志、消息和信号等数据通常以高容量和高速率实现传输。数据摄取服务通常在将其传递到适当的目的地之前处理该信息。 像这样的数据存储方式就需要支持高速写入。同时,支持时间序列数据和JSON的内置功能也是一个额外的好处。对瞬态数据的耐久性要求会高于短暂数据,而低于交易数据。
3. 操作数据:从用户会话收集的信息(如用户个人资料,购物车内容等)被视为操作数据。微服务器为用户提供更好的体验并进行实时反馈。即使存储在数据库中的数据不是永久的,但架构也必须最大程度地保留数据以实现业务连续性。这样就对于操作数据的持久性、一致性和可用性要求很高。一般而言,操作数据被放在特定的数据模型中,如JSON、图形、关系、键值等
4. 交易数据:从类似于付款处理和订单处理的交易收集到数据必须作为永久记录,存储在能够支持强ACID控制的数据库中。
在图1所示的电子商务应用中,我们可以对微服务及其各自的数据存储方式进行分类,如下表所示:
这里写图片描述
一致性和耐用性的可调度
为了达到优化微服务以获得高性能和数据耐久性要求,务必要确认所选数据库能够为当前数据类别提供适当的可调参数。对于高性能而言,纯内存的数据库是理想的选择。对于数据耐久性而言,让数据复制以及磁盘闪存耐久是最好的解决办法。例如,电子商务示例中的缓存服务器必须针对低延迟、高速读取操作进行优化。基于数据的性质,数据库不需要承受耐久性考验。另一方面,订单跟踪微服务重点是保持数据清晰和一致。
下表显示了如何基于对数据的原则性、一致性、隔离性和耐久性的要求来配置和调整每个微服务器的数据存储方式。
这里写图片描述
最后但也同样重要的是评估数据库可用的部署方法和编排选项,以确保能够让所有微服务在同一种环境中被部署和管理。以下是要查找的一些关键标准:
1. 作为容器的可用性:由于微服务大多都部署为由编排工具所管理的容器,所以当使用数据库作为容器时,可以获得很好的运营效率。
2. 云端/本地化选择:数据库是否可用于云端或本地,微服务器部署在哪里? 可用于两个部署选项的数据库为此提供了更大的灵活性。
3. 锁定供应商:组织有时会切换编排工具,因此确保数据库支持所有流行的编排工具对锁定供应商非常有帮助。

关于Ghostcloud
Ghostcloud(中文名:精灵云)坐落于成都天府软件园,是成都高新区重点扶持企业,国内首批从事容器虚拟化研发的企业,是西南地区唯一一家基于Docker的云计算服务商,为企业级行业客户提供针对互联网化、私有云管理平台、大数据业务基础架构的平台服务。
Ghostcloud因容器技术而生,以最新容器技术Docker为基础,为适应不同行业客户需求,全自主研发了一套调度引擎框架Newben,且全方位适配Kubernetes主流开源调度引擎,也是国内率先实现双调度引擎的企业,是一流的企业级容器云服务专家。Ghostcloud推出了企业级容器云PaaS/CaaS平台,命名为EcOS(EnterpriseContainer Operation System)。Ghostcloud将EcOS平台与微服务/DevOps相融合,运用至企业IT系统的全生命周期的开发、测试、运维及发布流程中,致力于为多个领域企业向“互联网+”转型提供针对互联网化、私有云管理平台、大数据业务基础架构的平台服务,帮助企业级客户降低成本、提升效率、简化运维及产品部署,并提升系统的可靠性和安全性。

UE游戏引擎材质简单入门 什么是物体的材质,材质属性定义了物体的某些特性,从而决定了物体表面是如何与光线相作用的。UE中物理基础渲染(Physically Based Rendering OR PBR)几乎可以让我们模拟显示世界中的任何材质。那么如何在UE中制作出真实的PBR材质,基于我们提供的游戏引擎插件,如何将这些材质资源导出,并应用到 SuperMap iClient3D for Cesium/WebGL 平台上,提升模型的显示效果呢,下面小编将详细讲解一下。 阅读详情

相关推荐

倾向得分匹配的stata命令_政策评估方法引荐|广义倾向得分匹配(GPSM)

和大家分享一下最近学习的进展,在痛苦读完stata journal和练习OA程序,已经可以基本完成广义倾向得分的估计了,在国内这一方法还没有形成广泛运用,因此学习资源也是有点稀缺的,在文章最后给各位提供数据和代码以供练习。有问题可以随时文末留言或者联系我哦。人文社会科学中一般无法在实验室中控制样本个体的特征,我们一般采用“准自然实验”的研究路径,也就是不随机安排样本接受处理与否。但放弃随机分组假定...

weixin_39550258的博客 1万+

Spring Data Rest 指南

Spring Data Rest 一.Restful简介 REST是一种Web软件结构风格,而不是一种标准,匹配或兼容这种架构风格称之为REST服务,REST服务简洁并且有层次,REST通常基于HTTP,URI和XML以及HTML这些现有的广泛流行的协议和标准,在REST中,资源是由URI来指定的,对资源的增删改查也是通过HTTP协议提供的POST,PUT,GET,DELETE等方法实现,使用REST可以更高效率的利用缓存来提高响应速度,同时REST中的通信会话状态有客户端来维护,这可以让不同服务器来处理一

ToBeMaybe_的博客 3096

Tesla V100 在 Windows 下的驱动选择与模式切换实战

本文详细解析了Tesla V100专业计算卡在Windows系统下的驱动安装与模式切换实战。针对设备管理器识别但任务管理器“隐身”的常见问题,文章指出其默认TCC模式为纯计算设计,并指导用户正确选择数据中心或GRID驱动。核心在于通过注册表修改或驱动选择,在高效的TCC模式与便于监控的WDDM模式间切换,同时提供了nvidia-smi命令行监控与AI框架测试等稳定使用方案。

weixin_29247219的博客 1809

Spring Data REST

Spring Data REST 是一个现代化的、基于 RESTful 风格的框架,可以帮助开发者快速构建和暴露 RESTful API,从而简化了应用程序的开发和维护过程。Spring Data REST 的核心思想是通过简单的编写领域模型类和接口,就可以自动生成可访问和操作这些实体的 RESTful API。开发者只需要编写少量的代码,即可实现常见的 CRUD 操作,包括创建、读取、更新和删除实体。

Flying_Fish_roe的博客 1744

STM32F407 HAL库 LIN DMA 配置实战与汽车电子应用解析

本文详细解析了STM32F407 HAL库在LIN总线通信中的DMA配置实战,重点介绍了硬件自动处理断点检测、同步场和校验和的优势。通过具体代码示例和汽车电子应用案例(如车窗控制、座椅调节),阐述了如何利用DMA提升通信效率与稳定性,为成本敏感的汽车电子系统提供高效解决方案。

study的专栏 968

【牛股启动线】副图指标使用技术说明,图文案例分享,通达信炒股指标

如上图,在紫色线在黑色虚线上时,在出现紫色柱线时,通常会出现强势拉升的行情​。柱线加长加上紫色线上扬,进场跟随做多抓强势行情,紫色柱线和紫色线同时做多持续则可以继续持股。如上图,副图指标【牛股启动线】,指标信号包括紫色线走势信号和紫色柱线信号,以及底部的四条虚线技术信号​,还有一条绿色的参考线,一条黑色的虚线两天分档线。如上图,参考买点,紫色柱线开始出现时进场买点,在上图标记的位置对应的就是进场买点​。紫色柱线加长+紫色线上扬,多头共振持股,行情继续拉升阶段,持股待涨或顺势​进场做多。

weixin_69760830的博客 1913

【Java开发】 Spring 09 :Spring Data REST 实现并访问简单的超媒体服务

Spring Data REST 是提供一个灵活和可配置的机制来编写可以通过HTTP公开的简单服务,简单来说,而且可以省去大部分controller和services的逻辑,因为Spring Data REST 已经为你都做好了,目前支持JPA、MongoDB、Neo4j、Solr、Cassandra 和 Gemfire,因此本文以 JPA 举例。

尹煜的博客 1747

从NHANES到发表:如何用survey包完成符合CDC要求的统计分析(含完整R代码)

本文详细介绍了如何利用R语言的survey包,对美国国家健康与营养调查数据进行符合CDC要求的统计分析。文章重点解析了NHANES数据的复杂抽样设计、权重变量的正确选择与调整,并提供了从数据获取、清洗、构建调查设计对象到执行加权回归及生成发表级表格的完整R代码实战指南,帮助研究者避免常见错误,确保分析结果的准确性与可发表性。

weixin_29054245的博客 523

Spring Data Rest!五分钟帮我们实现Rest服务

Spring Data Rest!几分钟帮我们实现Rest服务 一、概述 一直认为,Spring Data是与第三方组件进行数据交换的全家桶的整合,比如Spring Data Jpa是数据库使用,Spring Data LDAP是LDAP的使用,Spring Data Redis是Redis的使用,Spring Data Elasticsearch是Elasticsearch的使用。 然而,不起眼...

feiyangtianyao的专栏 1135

Simplicity Studio V5与EFR32BG22蓝牙开发环境实战指南

本文详细介绍了Simplicity Studio V5集成开发环境与EFR32BG22蓝牙芯片的开发实战指南。内容涵盖开发环境安装、SDK配置、项目创建、调试烧录、外设驱动集成及常见问题解决方案,帮助开发者快速上手物联网蓝牙应用开发,并充分利用EFR32BG22的低功耗与高集成度特性。

v5w6x的博客 320

什么是数据挖掘?数据挖掘到底在解决什么问题?

本文我将借助5W1H的思想来带你从整体上了解一下数据挖掘。比如什么是数据挖掘为什么要做数据挖掘在哪些场景下用数据挖掘怎么做数据挖掘第一个问题,什么是数据挖掘?这个问题看似很简单,但似乎也很难有一个明确的答案。如果非要给数据挖掘一个定义的话,那么我认为数据挖掘就是寻找数据中隐含的知识,并用于产生商业价值。也就是说它是我们在数据中,尤其是在大量的数据中找到一些有价值,甚至是非常有价值的东西的一种手段。

m0_64336780的博客 1万+

微服务(Microservices)。

微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。这些服务围绕业务能力构建并且可通过全自动部署机制独立部署。这些服务共用一个最小型的集中式的管理,服务可用不同的语言开发,使用不同的数据存储技术。

孤芳不自赏 3389

【WRF-Urban数据集】中国60个城市的1 km分辨率城市冠层参数(UCPs)

中国60个城市的1 km分辨率城市冠层参数(UCPs)

WW、forever的博客 1069

[译]微服务-Martin Fowler

翻译自Martin Fowler的microservices, 翻译于2015年7月22日。翻译尽量贴近原文,减少意译带入的个人观点,如有不当之处,请指正。 在过去几年中,“微服务架构”这一术语如雨后春笋般涌现出来,它描述了一种将软件应用程序设计为一组可独立部署的服务的特定方式。虽然这...

qq_43233736的博客 323

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【微服务】复杂系统:微服务与人类

普罗布斯特:我叫凯瑟琳·普罗布斯特。我是谷歌的工程总监。我在这里向你们介绍复杂系统、微服务和人类。让我们从一个可能会有点意外的问题开始。北极熊与微服务有什么关系?乍一看,你可能会说他们之间可能没什么关系。让我们再深入一点。你可能知道,北极熊吃海豹。很容易理解北极熊的数量与海豹的数量有着密切的关系。如果你再往前走几步,事情就会变得复杂得多,速度也会快得多。让我们这样做吧。随...

全网:架构师研究会 430

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

微服务

英文原文:http://martinfowler.com/articles/microservices.html 翻译原文:http://blog.cuicc.com/blog/2015/07/22/microservices/ 翻译自Martin Fowler的microservices, 翻译于2015年7月22日。翻译尽量贴近原文,减少意译带入的个人观点,如有不当之处,请

魔力鸟的专栏 1554

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

微服务架构

基于微服务构建的应用程序的目标是尽可能的解耦和尽可能的内聚 - 他们拥有自己的领域逻辑,他们的行为更像经典UNIX理念中的过滤器 - 接收请求,应用适当的逻辑并产生响应。虽然本文作者一直是这个相当松散的社区的活跃用户,我们的目的是试图描述我们工作中和我们知道的一些团队的相似努力中的所见所闻。然而,很多单体不需要这个级别的性能优化和常见的更高层次的抽象,也不是DSL的。当然这也不是绝对的,一些变更将会改变服务接口导致一些协作,但一个好的微服务架构的目的是通过内聚服务边界和按合约演进机制来最小化这些协作。

hitbobtomer的博客 167

微服务SpringCloud Alibaba ------(二)微服务架构介绍

翻译自Martin Fowler的 microservices , 翻译于2015年7月22日。翻译尽量贴近原文,减少意译带入的个人观点,如有不当之处,请指正。 在过去几年中,“微服务架构”这一术语如雨后春笋般涌现出来,它描述了一种将软件应用程序设计为一组可独立部署的服务的特定方式。虽然这种架构风格没有明确的定义,但在组织、业务能力上有一些共同的特征:自动化部署,端点智能化,语言和数据的去中心化控制。 “微服务” - 软件...

Xxx的博客 1054

微服务架构 | 服务架构的演进

这也很好理解,我们划分了多个一定颗粒的服务,此时是游离且独立的,我们需要使得这些服务具备互相通讯的功能,我们会想到http或者webservice来进行通讯,也是rpc思想的一种体现,http虽然具备完整的通讯体系和标准的规范,但是满足不了企业的内网和外网之间日益复杂的信息交互。说了单体应用的诸多缺点,并不是我在找茬,它本身不是缺点,是在于面对型应用和超大型应用的出现(单纯应用的庞大,用户数并不庞大),以及用户量剧增时体现出来的不适用性,迫切需要新的且适应的架构方式来解决我们的麻烦。

Huangjiazhen711的博客 164

【微服务架构】复杂系统:微服务与人类

普罗布斯特:我叫凯瑟琳·普罗布斯特。我是谷歌的工程总监。我在这里向你们介绍复杂系统、微服务和人类。让我们从一个可能会有点意外的问题开始。北极熊与微服务有什么关系?乍一看,你可能会说他们之间可能没什么关系。让我们再深入一点。你可能知道,北极熊吃海豹。很容易理解北极熊的数量与海豹的数量有着密切的关系。如果你再往前走几步,事情就会变得复杂得多,速度也会快得多。让我们这样做吧。随着气候的变化,北极熊和海豹...

全网:架构师研究会 269

什么是微服务?

文章出处:http://blog.cuicc.com/blog/2015/07/22/microservices/ 翻译自Martin Fowler的microservices, 翻译于2015年7月22日。翻译尽量贴近原文,减少意译带入的个人观点,如有不当之处,请指正。 在过去几年中,“微服务架构”这一术语如雨后春笋般涌现出来,它描述了一种将软件应用程序设计为一组可独立部署的服务的特定方式。...

zblzbl1991的博客 388

容器编排工具_为您的项目选择正确的容器编排工具

容器编排工具 在过去十年中,使用诸如Docker之类的软件容器一直是最大的行业趋势之一。 迄今为止,重点一直在教育开发社区关于容器技术的功能以及企业如何有效使用容器编排工具的知识。 但是,由于对容器的了解已经超出了事件视界,因为人们的熟悉程度已经提高到这样的程度:组织已经不再只是简单地考虑将容器带入数据中心的想法,而是已经开始实际应用。 但是,在公司实际将软件部署到容器中之前,一个问题仍然是组织应...

服务器编程交流平台 289

美容美发SaaS开发难在哪?业务建模与行业选择是关键

在软件创业领域,SaaS已成为众多开发者追逐的方向,但选对行业往往比选对技术栈更重要。SaaS的本质是通过标准化产品提供可复用的服务,其核心价值在于降低客户交付成本、提升边际收益。然而,像美容美发这类数字化基础偏低、业务规则高度碎片化的行业,业务流程不统一、会员储值规则复杂、提成计算深藏行业暗礁,技术方案虽能支撑功能,却难以覆盖业务建模的复杂性。从预约排班到员工提成,每个模块都需要深度理解门店的真实运营逻辑,而非简单堆叠功能。对于独立开发者和小团队而言,通过小程序定制或SaaS平台切入,需先验证行业付费意愿

weixin_34310369的博客 567

微服务 (Martin Fowloer 译 文)

翻译自Martin Fowler的microservices, 翻译于2015年7月22日。翻译尽量贴近原文,减少意译带入的个人观点,如有不当之处,请指正。 在过去几年中,“微服务架构”这一术语如雨后春笋般涌现出来,它描述了一种将软件应用程序设计为一组可独立部署的服务的特定方式。虽然这种架构风格没有明确的定义,但在组织、业务能力上有一些共同的特征:自动化部署,端点智能化,语言和数据的去中心化控制...

彩色天的博客 1082
上一篇: 【行业观点】如何为微服务选择正确的数据库
下一篇: 持续部署的发展之路
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值