推荐热点精华

纽约时报是如何使用Apache Kafka替代数据库存储?

17-09-07 2478 6 banq

该文是介绍在纽约时报如何使用Kafka实现内容生产和内容消费分离的基于日志的架构(一种事件溯源Event Sourcing/CQRS的读写分离架构)。文章还阐述了使用Kafka替代传统数据库作为事实... 详细

业务流程的新实现:微服务和事件编排

17-09-06 3412 4 banq

本文介绍如何在微服务架构通过事件编排实现业务流程的无限灵活实现,克服了以往SOA中ESB总线的中央治理的局限。 关键词: 1.在微服务架构中,遇到长时间运行并跨越多个微服务边界调用的流程并不少见。 ... 详细

分布式微服务为什么很难?

17-08-31 2109 5 banq

本文主要谈论了微服务系统之间通讯RPC同步和异步队列的不同,RPC同步速度快但不可靠;异步队列速度慢一点但可靠。本文也解释了其背后原因,比如缺乏统一时钟,也就是著名的拜占庭将军问题,认识这点后,会更加... 详细

五种数据库数据模型分片策略

17-08-29 986 6 banq

扩展数据库会遭遇挑战,本文提供了五种数据库分片Sharding策略供参考。 当然,除了分片策略以外,最简单办法是扩展硬件,另外是删除可能不需要的数据,或尝试使用微服务解决。 下面着重谈谈五种分片策... 详细

开发者宣言

17-08-29 1349 6 banq

1、你是工匠,而不是工程师 工程师是让代码运行起来就可以。但是你是一个工匠,远不止这些,工匠需要通过不断练习提高手艺,其经验和才能需要达到艺术家的表现水平。 需要像一位手艺人中大师傅一样对待你的工... 详细

关系数据库分片原则

17-08-12 1124 1 banq

本文主要讨论了两种数据库分片方式,基于业务的自然分表法和基于微服务的分片法。其实微服务的切分依据还是要首先找出业务数据的DDD聚合才能切分。 当数据库数据量很小时,很多问题可以通过硬件进行扩展。然而... 详细

区块链中的分布式模式

17-08-06 1372 4 banq

本文从分布式系统角度讨论了区块链中的几种创新模式:不可变模式、异步和共识以及网络容错可靠性。 不可变模式 区块链是不可变的。 分布式系统已经在相当一段时间内依靠不变性来消除异常。 比如日志结构... 详细

Event sourcing是否只适用于稳定业务

17-08-03 3 386 1 sinaID64627

CQRS+ES我们已经在生产环境中使用了,但实际使用中感觉对业务变化并不如想象中的灵活 比如当业务发生变化时,如果修改了event的相关定义,那么所有已经在event store中存储的event则... 详细

Node.js CQRS 分布式系统视频演示

17-07-17 1 815 7 brighthas

cqrs 2.0.5-pre 把 DomainServer , DomainProxy 和 DefaultClusterInfoManager 组件集成到核心了,并加入了一个 cluster-ex... 详细

正好一次(Exactly-once)消息传递在Kafka中已经完全支持

17-07-04 4820 8 banq

本文是来自Kafka的创始人Jay Kreps的一篇博文,回答了世面上怀疑Kafka是否支持正好一次(Exactly-once)的消息传递,从而说明了Kafka能支持分布式事务,保证微服务事务的完整性... 详细

以正好一次(Exactly-Once)方式传递数十亿消息

17-06-30 1 1427 2 banq

所有数据流水线的唯一要求是它们不能丢失数据。可以延迟或重新排序,但不能丢失。 为了满足这一要求,大多数分布式系统实现至少保证一次(least-once)传递。实现至少一次传递的技术通常等于:“重试,... 详细

通向微服务成功的五个步骤

17-06-21 1529 6 banq

微服务是一个很热门的话题,现在已经有数百个各种形式的会议,网络研讨会、流媒体和网络文章到处是。因此,你会以为每个人都已经意识到微服务提供的好处以及风险。然而,许多公司在没有事先准备的情况下一下跳入微服... 详细

Node.js 版 CQRS2.0 framework 月底发布预览版

17-06-18 690 6 brighthas

Node.js CQRS 2.0 preview 月底发布,将具备无限横向拓展功能,可开发任意规模系统。参见预览代码: https://github.com/liangzeng/cqrs#previe... 详细

微服务的先决条件

17-06-18 1 937 2 banq

Phil Calcado于2017年5月在布达佩斯的Craft Conf发表了关于Microservices几个先决条件的演讲,被分布式领域的其他作品纷纷引用,在本文中他详细扩展论述了这些微服务的先... 详细

如何将单体分解成微服务?

17-06-18 1210 4 banq

本文您推荐采取三个领域驱动的步骤,能使您的代码库变得更易于管理 毫不讳言,在单体(整体/铁板一块monolith)架构中编写代码是容易的。我们可以随时直接查询数据库,在应用程序的其他部分调用我们想要... 详细