• 作为软件工程师和架构师,我们经常面临为遗留系统创建目标微服务架构的挑战。这些系统通常是已经存在多年的大型单体应用程序,通常具有很多依赖性,并且通常在您的公司中没有一个人了解这一切。在这些情况下,一群领域专家是理解围绕业务上下文和所需功能的“原因”的关键,上下文对于创建成功的架构至关重要。
  • 微服务于10 年前出现,是软件中发生融合进化的例子之一。虽然这个词可以归功于全球软件顾问Thoughtworks 的James Lewis和 Martin Fowler (banq注:这个词应该首先由亚马逊提出,也就是著名“一个披萨”,开发一个微服务的人员正好够吃一个披萨 ,MF只是进行了微
  • 在事件驱动的微服务架构中,领域事件的概念是每个服务行为的核心。随着微服务架构的日益流行,诸如CQRS(命令查询职责分离)与事件溯源相结合的流行实践在应用程序中变得越来越普遍。此参考架构和示例项目演示了一个使用 Spring Boot 和 Spring Cloud 的事件驱动微服务架构 icon
  • 经典 OOD 书籍《对象设计:角色、责任和协作》( Object Design: Roles, Responsibilities, and Collaborations )可从 Pearson 的网站上以 pdf 格式免费下载(他们已经慷慨地提供了此书)。点击标题。对象设计在对象技术 icon
  • 本文是作者pathelland二十年分布式经验分享,其中很多概念与DDD和有界上下文映射非常类似,只不过使用了fiefdom而不是domain来表达。本文介绍了一个称为fiefdom封地/领地(banq注:类似Domain)的概念 :这是一个自主计算和数据的集合,旨在与不受信任的外部 icon
  • 本文将面向对象分析设计的单一职责等#SOLID原则应用于微服务划分,以及DDD领域划分/上下文分界/DDD聚合等设计概念中,是一种实际中每天重复的设计习惯:松耦合和高内聚这两个术语似乎同时存在的:这两个概念是一起创造的,如果您谈论其中一个,通常也会出现另一 icon
  • 对微服务使用异步通信时,通常使用消息代理。代理确保不同微服务之间的通信可靠且稳定,消息在系统内得到管理和监控,并且消息不会丢失。您可以选择一些消息代理,它们的规模和数据功能各不相同。这篇博文将比较三种最受欢迎​​的代理:RabbitMQ、Kafka 和 Redis。微服务之间有两种常 icon
  • Zero 是一个高性能和快速(参见基准测试)的 Python 微服务框架,提供 RPC 和 Pub Sub 接口。特点: icon
  • 在 REST API 中使用布尔值坏处: 会阻碍API 可扩展性 会屏蔽和混淆域清晰度 会妨碍代码 可读性和可维护性 让我们深入研究这些领域并审核布尔值在 REST API 中的常用方式。 API 可扩展性 icon
  • 在本文中,您将了解传统和敏捷软件开发团队的结构。了解团队结构的三种不同方法及其优缺点,并了解如何确定您的团队是否与您的产品合作良好。 团队结构的方法:有多种方法可以组织灵活的开发团队——通用、专业和混合。1. 通用:由 icon
  • 正确实施时,微服务比单体应用具有很多优势。许多组织希望将其单体应用程序代码更改为微服务代码。事实证明,迁移到微服务并不容易。您应该问的第一个问题是,您真的需要微服务吗?单体的许多问题可以通过使用模块化单体架构轻松解决。一旦确定需要微服务,就必须制定将单体应用转换为微服务的计划。有一些模式可以 icon
  • 为了更好地理解设计可靠的分布式系统所带来的挑战,我们必须参考分布式计算的谬误——架构师和开发人员可能做出的一系列错误假设:网络是可靠的。延迟为零。带宽是无限的。网络是安全的。拓扑不会改变。 icon
  • 这篇博文将帮助读者了解单体数据架构、与单体数据架构相关的挑战,以及分布式数据网格如何帮助组织将其分析数据转换为产品并构建高度可扩展、弹性和数据驱动的应用程序。目标受众是有兴趣了解更多关于单体数据架构和分布式数据网格的软件工程师、数据工程师、数据科学家、MLOps 工程师、软件开发人员和数据库 icon
  • Codecentric 的Spring Boot Admin 项目是对 Actuator免费补充。该工具不属于 Spring icon
  • 具有大量增长数据的基于微服务的扩展应用程序在有效交付聚合数据(如顶级列表)方面面临挑战。在本文中,我将向您展示如何使用 Redis 缓存聚合数据。而数据库将项目/行数据存储为“真实来源”并使用分片进行扩展。单个 Redis 实例每秒可以处理大约 100,000 次操作< icon
  • 随着微服务的兴起和远离单体架构的转变,IT 和DevOps团队专注于将基础设施中的所有内容整合到越来越小的平台和技术中。大胆的愿景是,每个人都将在同一个“上帝平台”上,拥有一个管理平面、一个数据平面和一个简单的参考点。Kubernetes、云原生和微服务将成为实现这一愿景的载体。每个人都会在 icon
  • 在单体思维中,模块 A 调用 B,模块 B 调用 C。一切正常,因为它们都在单个顺序进程中运行。但是,您也在网络上运行这些进程,这意味着延迟,这意味着对应用程序的性能影响,这不是任何人想要的。使用 Kubernetes,微服务不应该通过远程同步请求过程相互通信,它们应该异步地相互通信 icon
  • 在facebook和amazon工作过20年的Dan Rose回忆杰夫贝索斯的行动偏爱(类似中国俗语:自说自话,说干就干,过于冲动):我从杰夫贝索斯那里学到的最重要的事情之一就是培养行动的偏爱。他并不总是对的,但他总是准备好采取行动(而且他是对的远不止是错的)。就像我们飞往芝加哥并差点在巴黎 icon