39、微服务架构:从基础到实践

微服务架构:从基础到实践

1. 数据存储与扩展策略

当数据量处于合理规模时,可通过添加新实例对服务进行水平扩展,每个实例需能存储所有数据。然而,若数据量因记录数量或记录大小增加而增长,就需考虑其他存储非权威数据的策略。例如在某些场景下,随着功能的增加,单个记录可能会变得很大。

有两种主要策略可供选择:
- 使用共享外部数据库 :可以用延迟换取存储大小,但这会改变维护成本,且需确保数据库具备扩展性。虽然使用传统数据库通常需要模式(schema),但当数据足够稳定时,模式带来的风险会降低。模式在项目初期成本较高,因为它锁定了假设,但后期可基于经验证据构建。
- 分片(Sharding) :若想避免使用共享数据库,可采用分片策略。可以使用分片编排服务,或者通过模式匹配对数据实体消息进行预分片,这是用于扩展信息服务的标记属性方法的一种变体。

2. 建议服务的优化

建议服务最初设计为完全在内存中运行且无状态,旨在提供“足够好”的建议,因此可直接进行水平扩展。但在生产环境运行一段时间后,用户反馈表明自动完成建议是一项有价值的功能,且希望能获得近乎即时的智能建议。当前的消息流设计无法满足这一目标,用户测试显示响应时间在 50 毫秒或更短能带来近乎神奇的体验。

为实现低于 50 毫秒的延迟,可采取以下措施:
- 使用用 C 语言编写的自定义 Web 服务器直接提供建议 API,并搭配高性能嵌入式键值存储。
- 服务器需运行在大型机器上,并可能使用无冲突复制数据结构来共享建议。
- 在全球范围内部署服务器,以靠近用户。

相关推荐

【商城实战(39)】Spring Boot 携手微服务,商城架构焕新篇

本文聚焦于在商城项目中运用 Spring Boot 与微服务架构。首先介绍微服务架构将大型应用拆分为独立服务,对比单体架构阐述其优势,并指出商城项目中商品、订单、用户模块适合微服务化。接着详细说明利用 Spring Cloud Alibaba 搭建架构,包括环境准备、Nacos 实现服务注册与发现及示例演示。然后介绍 Spring Cloud Gateway 的配置,含基础配置、服务路由及鉴权功能实现。最后总结该架构使商城系统高效开发、部署和运行,展望未来在性能、安全、多端适配及新技术应用等方面的优化方向。

邓邓子的博客 1418

5、Java 微服务架构实践:从六边形到洋葱架构

本文详细介绍了 Java 微服务架构的实践方法,重点探讨了六边形架构和洋葱架构的设计理念与实现方式。通过实际案例,展示了如何构建使用 PostgreSQL 和 MongoDB 的微服务,并运用 Liquibase 进行数据库初始化、MapStruct 实现实体映射、Lombok 简化代码等关键技术。同时,文章还展望了微服务架构在未来与云原生、人工智能等技术的融合发展方向。

i8j9k0l1的博客 78

39、构建 Axon CQRS 微服务电商应用:从理论到实践

本文深入探讨了如何设计和构建一个基于 Axon CQRS 的电商微服务应用,以 ACME 商店为例,从传统单体架构的痛点出发,逐步过渡到事件驱动的微服务架构。内容涵盖业务需求分析、技术架构设计、代码实现以及性能优化建议,重点介绍了如何利用 Axon 框架实现命令处理、事件驱动和数据一致性管理。同时,还讨论了多语言持久化、事务管理以及未来的优化方向,帮助开发者构建高可用、可扩展的电商系统。

pz890123456的博客 69

Dify安装使用说明

dify可以说是一个功能不错的LLMOps,可以通过dify集中管理模型,可以通过界面创建AI应用,可以上传文档形成知识库,可以创建自定义工具(API),并可以对外提供API。相关功能类似Openai的GPTs或智谱的智能体,其他大厂的大模型也有类似功能,不过貌似只有dify是开源的。这就为个人本地部署AI应用提供了便利。

龙井茶的Sky 1万+

【verilog语法详解:从入门到精通】

Verilog语法详解:从入门到精通 摘要:本文系统讲解Verilog硬件描述语言的核心语法与应用。Verilog作为数字电路设计标准,具有并行执行、硬件映射和层次化三大特点。文章从基础语法框架入手,详细介绍了模块定义、端口类型(input/output/inout)声明规范,以及线网型(wire)和寄存器型(reg)两种核心数据类型的区别与应用场景。重点讲解了组合逻辑(assign连续赋值)和时序逻辑(always块)的实现方式,包括阻塞赋值(=)与非阻塞赋值(<=)的关键差异。此外,还涵盖了参数(

m0_58476824的博客 4686

使用Python开发TreeATE的测试脚本常见问题

ImportError: No module named py_compile 找不到 DevLangPython3.dll 以上2个问题都是没有安装正确的Python,当前TreeATE依赖32位Python 2.7版本,暂时不支持Python 3以上版本

蓝白云的专栏 1033

车载智能终端的设计

本文研究的主要内容是车载智能终端的设计,在学习和借鉴国内外在车载电子领域已有的成熟经验的基础上,利用32位嵌入式处理器S344B0X01和μC/OS-Ⅱ实时操作系统技术,针对汽车行驶记录仪、GPS/GPRS的已有设计的不足提出了新的解决方案,并对方案的可行性进行了分析和论证。

weixin_44553616的博客 1415

c#窗体应用(.NET Framework)项目对Yaml文件进行写入与读取,Yaml数据转换成json

用到的技术与版本准备工作Yaml数据在C#中进行定义对Yaml文件的读取与写入代码的添加窗体控件控制操作写入数据到Yaml文件读取Yaml文件数据Yaml数据转换成json改进——对yaml文件读取时根据yaml文件中的键进行获取,对c#中怎么取名字无关yaml文件中多个数据读取遇到的问题总结的小点参考的文章在对Yaml文件进行读取前,先将Yaml文件中的数据结构在c#中进行定义,以便后面更好的读取。这里对这四个类型进行举例(这里为了想看看这四个类型到Yaml文件的格式是什么样子的)

永远年轻 1587

MagicDraw小白必看:BDD图中模块的5种属性详解(含SysML v1.6最新端口配置指南)

本文面向MagicDraw初学者,详细解析SysML BDD图中模块的五种核心结构属性,包括组成部分、引用、值、约束属性及端口。重点阐述了SysML v1.6中端口设计的范式转移,对比了完整端口与代理端口的区别与应用场景,并通过实战案例指导如何利用代理端口进行清晰的接口定义与系统架构设计。

rum55的博客 374

【fpdlink显示】DS90UB948关于941连接948 GPIO调试问题

1. 前言 使用一个941连接2 948显示: 941的GPIO0/1/2/3到前948的GPIO0/1/2/3和941的D_GPIO0/1/2/3到948的GPIO0/1/2/3。 设置gpio3输出,则941的D_GPIO3设置高,而948的gpio3设置不高; 但设置gpio3输入后,看到941的D_GPIO3跟随948的gpio3变化。 2. 原理图连接 3. 测试代码 static int du90ub941_enable_port(struct goodix_ts_d

jzwjzw19900922的博客 2557

AI在保险产品定价优化中的创新应用

在当今保险市场中,准确合理的产品定价是保险公司实现可持续发展的关键因素之一。传统的保险产品定价主要基于经验数据和精算模型,但这种方式往往存在数据处理效率低、对复杂风险因素考虑不足等问题。本文的目的在于深入探讨AI技术如何在保险产品定价中进行创新应用,以提高定价的准确性、效率和灵活性,更好地满足市场需求和客户个性化需求。本文的范围涵盖了AI技术在保险产品定价各个环节的应用,包括风险评估、费率计算、产品设计等方面。同时,还会涉及到相关的核心算法、数学模型以及实际应用案例等内容。

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 983

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

上一篇: 33、环保燃料参数实验分析与小型有机废物沼气发电研究
下一篇: 64、可重构电路与机器人协调:算法与性能突破
http9protocoller
博客等级 码龄1天 0粉丝 1782原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值