微服务架构

     

分布式系统设计模式手册

914 25K
如果您决定确实需要分布式系统,那么您将面临一些常见的挑战: 异构性——分布式系统允许我们使用范围广泛的不同技术。问题在于我们如何在所有不同服务之间保持一致的通信。因此,重要的是要商定并采用通用标准以简.

微前端如何相互调用通信?

764 2K

微前端的兴起彻底改变了 Web 开发,使团队能够独立构建、部署和扩展 Web 应用程序的组件。然而,微前端之间的有效通信对于无缝用户体验至关重要。在本文中,我将探讨各种通信模式,这些模式可以帮助团队驾.

简介:六边形、单体、微服务和分层架构

489 3K

在不断发展的软件开发领域,选择正确的架构范式对建立强大的可扩展的应用程序至关重要:在不断发展的软件开发领域,选择正确的架构范式对于构建健壮和可扩展的应用程序至关重要。本文旨在探讨四种著名的架构方法之间.

如何解决不同数据库和服务之间的事务问题?

469

在我这个项目中,有多个数据库和服务需要无缝通信和交换数据。然而,在这些不同的系统中保持交易的完整性已被证明是一个相当大的障碍。我想确保所有相关操作要么成功,要么失败,避免任何不一致或数据差异。我正在使.

微服务分布式事务指南大全

1042 1 17K
本白皮书汇总了经典事务和分布式事务的概念。然后,我们解释了基于云的应用如何受到分布的影响。最后,我们介绍了基于补偿的事务,作为基于微服务的应用事务的可靠方法,即使是在云中。1、经典事务我们将简要概述事.

如何区分微服务还是分布式单体?

579 3K

在没有意识到的情况下,基于微服务的应用可以轻而易举地转变为一个分布式单体。当你意识到这一点时,可能已经太晚了,而且纠正它可能非常昂贵。所以,就像你勤奋地审查代码和架构以确保它们遵守最好的实践、模式和原.

跨微服务共享公共数据如何实现?

660 1

在微服务设计过程中,经常出现的一个共同点和要求是共享共同数据。而这个问题在微服务之间的异步消息驱动通信(使用Kafka)中变得更加有趣了例如,微服务1有一些数据。微服务2和3想要访问这些数据。我看到了.

使用事件风暴建模作为微服务设计的技巧 - Nick

564 4K
事件风暴EventStorming 是一种非常流行的技术,它使我们能够比传统技术更有效地探索、分析和建模业务领域。结果是我们创建了设计更好的软件系统和问题解决者团队,而不是订单接受者。如果使用得当,E.

如何将核心服务与单体应用解耦?

393 5K
与许多其他产品一样,WeTransfer最初是一个小型单体应用程序,但很快就变成了一个拥有太多责任和贡献者的大型单体应用程序。发布新功能变得越来越困难,技术债务也在增加。这就是为什么我们开始将一些核心.

Undertow Web 服务器教程

695 4K

Undertow Web 服务器是一个由Red Hat赞助的开源极简主义Java网络服务器。Undertow被用于JBoss Wildfly应用服务器内部。Undertow提供了基于Java NIO的.

微服务反射和扩展复杂自适应系统 - James Lewis

506 9K

James Lewis是ThoughtWorks的总监,也是微服务架构的先驱者。在这一集里,我们回到了记忆的长河,回到了James第一次提出并普及微服务架构的时候。詹姆斯描述了他对微服务的定义和它的重.

在单体到微服务迁移中如何重构关系数据库?

590 1 10K
本文介绍将现有单体应用程序迁移到微服务中,如何重构数据库?数据库重构模式可以通过多种方式重构关系数据库(例如 PostgreSQL)以优化基于微服务的应用程序架构的效率。如前所述,数据库是结构化数据的.

DevOps竟然是在远离Ops?

351 2K

DevOps 意味着 Dev 和 Ops 的协作,但他们从等式中删除了 Ops如今,我们很难定义 DevOps,因为它最初解决的问题早已不复存在。对于最近的一些公司来说,这个问题实际上从未存在过!他们.

Camunda与Flowable比较: 两个优秀的流程和工作流自动化平台

6551 4 6K

这篇博客简要介绍了自动化工作流平台:Camunda 和 Flowable:Camunda 和 Flowable 是两个用于工作流和业务流程自动化的开源平台,它们为工作流、业务流程和规则的创建、管理和可.

番茄架构:一种遵循常识宣言的软件架构方法

536 2 4K

番茄(tomato)架构是一种遵循常识宣言的软件架构方法:1、将业务逻辑执行与输入源(Web 控制器、消息监听器、计划作业等)分开Web 控制器、消息监听器、计划作业等输入源应该是一个薄层,从请求中提.

单体炒作很愚蠢 - Darren

505 2

越来越多吹捧单体的炒作如同当初炒作微服务一样愚蠢。当我开始从事技术工作时,世界被GoF四人帮设计模式所困扰。现在,我们被服务架构SOA所迷惑。这些模式往往是陷阱,掩盖了真正的实践经验。你应该从微服务中.

单体不是恐龙

463

构建可演进的软件系统是一种策略,而不是一种宗教。必须以开放的心态重新审视您的架构。软件架构不像桥梁和房屋的架构那样。桥梁建成后,很难、甚至不可能改变它的建造方式。软件则完全不同,一旦我们运行我们的软件.

DHH:如何从微服务中恢复?

1048 3 3K

我不否认在某些情况下微服务优先的架构很有意义,但我认为这种情况很少见。绝大多数系统都可以通过启动并保持在一个宏伟的单体中得到更好的服务。昨天引爆互联网的Prime Video 案例研究只是最新的例证。.

运行部署时可拆分工作负载的单体架构

413 4K

微服务会带来大量相关包袱问题(分布式系统问题、RPC 框架等)。如果我们想要在没有包袱的情况下享受微服务的好处,我们将需要一些替代解决方案。规则 1:永远不要混合工作负载首先,我们应该应用运行单体的基.

DHH:亚马逊也无法理解无服务器或微服务

1000 3

Amazon 的 Prime Video 团队发布了一个相当出色的案例研究,说明他们决定放弃无服务器的微服务架构,并用单体取而代之。此举为他们节省了惊人的 90%(!!) 运营成本,并简化了系统。真是.

混沌工程简介

788

混沌工程最著名的应用也许始于Netflix,当时他们开发了Chaos Monkey。什么是混沌工程?使用混沌工程来提高公共云中工作负载的弹性和可靠性有哪些好处?什么是混沌工程?“混沌工程是对系统进行实.

微服务框架Dapr为何如此简洁?

960 1 8K

Dapr、Express.js、Spring Boot构建微服务的对比分析微服务世界彻底改变了软件的构建和部署方式。已经出现了大量的框架和平台来支持这种架构模式,每个框架和平台都有自己独特的特性和功能.

微服务故障的全局解决:Aperture 简介

672 11K
在处理微服务系统中的故障时,一直使用负载卸载和断路器等本地化缓解机制,但它们可能不如更全球化的方法有效。这些本地化机制在防止单个服务过载方面很有用,但它们在处理涉及服务之间交互的复杂故障时不是很有效,.

​​​​​​​“交付日期”是最糟糕的瀑布式思维 - Allen Holub

512 1

“交付日期”是最糟糕的瀑布式思维。具体交付什么是我们在工作中学习如何交付。每天交付。逐步改进,先做最重要的事情。大批量思维是一种反模式!问:很多年前我有过一次艰难的交货日期。 一个系统正在进入挪威山顶.

Spring Cloud 框架提供了哪些特性实现微服务?

694 4K
Spring Cloud 是 Java 生态系统中一个流行的框架,它提供了一组工具和功能来促进微服务架构的实现。以下是可用于在 Java 中创建微服务的 18 个关键 Spring Cloud 功能和.

​​​​​​​Micrometer:Java实现可观察性的新方法

840 5K

OTEL 等较新的标准引入了新的方法来全面查看日志记录、跟踪和指标。Micrometer,它的可观察性和跟踪方法代表了我正在寻找的下一步的开始。最终将允许开发人员将可观察性结构转变为一流代码公民的抽象.

10 大微服务设计原则和最佳实践

1023 5K
为您的组织设计微服务?遵循这些设计原则来创建健壮且可扩展的微服务在本文中,我将分享您在设计和开发微服务时可以遵循的基本设计原则。这些设计原则与软件再开发密切相关,它将帮助您设计健壮、可扩展和可维护的微.

如何实现多限界上下文的集成?

784 1 5K
领域驱动设计(DDD)自2003年由Eric Evans提出以来一直存在。由于它可以为我们的软件开发实践和成果带来潜在的好处,我经常与开发人员一起介绍它的概念,并将其作为推荐的方法进行宣传,特别是对于.

Kubernetes 模式:云原生之路 - bibryam

514
微服务是用于创建云原生应用程序的最流行的架构风格之一。他们通过业务功能的模块化和以开发复杂性换取操作复杂性来解决软件复杂性。这就是为什么在微服务方面取得成功的一个关键先决条件是创建可以通过Kubern.

将业务逻辑集中在一起的简单模式

420 6K

CanExecute/Execute模式背后的想法非常简单。让我们将决策制定(前提条件检查)与执行实际操作分开,但将它们都保留在域对象中。另外,如果不满足前提条件,我们将阻止执行该操作。例子假设一个社.