微服务业务开发三个难题-拆分、事务、查询(上)

我们阐述了使用微服务体系架构的关键障碍是领域模型,事务和查询,这三个障碍似乎和功能拆分具有天然的对抗。只要功能拆分了,就涉及这三个难题。 然后我们向你展示了一种解决方案就是将每个服务的业务逻辑实现为一组DDD聚合。然后每个事务只能更新或创建一个单独的聚合。然后通过事件来维护聚合(和服务)之间的数据一致性。

微服务业务开发三个难题-拆分、事务、查询(下)

我们将会向你介绍使用事件的时候遇到了一个新的问题,就是怎么样通过原子方式更新聚合和发布事件。然后会展示如何使用事件源来解决这个问题,事件源是一种以事件为中心的业务逻辑设计和持久化的方法。之后,我们会阐述微服务架构下的查询困难的问题。然后向你介绍一种称为命令查询责任分离(CQRS)的方法来实现可扩展和高性能的查询。

微服务实战系列文章

微服务实战(一):微服务架构的优势与不足 微服务实战(二):使用API Gateway 微服务实战(三):深入微服务架构的进程间通信 微服务实战(四):服务发现的可行方案以及实践案例 微服务实践(五):微服务的事件驱动数据管理 微服务实践(六):选择微服务部署策略 微服务实践(七):从单体式架构迁移到微服务架构

基于Spring Boot和Spring Cloud实现微服务架构学习(一)-Spring框架介绍

首先,最想说的是,当你要学习一套最新的技术时,官网的英文文档是学习的最佳渠道。因为网上流传的多数资料是官网翻译而来,很多描述的重点也都偏向于作者自身碰到的问题,这样就很容易让你理解和操作出现偏差,最开始我就进入了这样误区。官网的技术导读真的描述的很详细,虽然对于我们看英文很费劲,但如果英文不是很差,请选择沉下心去读,你一定能收获好多。我的学习是先从Spring boot开始的,然后接触到微服务架构

基于Spring Boot和Spring Cloud实现微服务架构学习(二)

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Spring Boot的目标不在于为已解决的问题域提供新的解决方案,而是为平台带来另一种开发体验,从而简化对这些已有技术的使用。

基于Spring Boot和Spring Cloud实现微服务架构学习(五)-Docker总结

Docker非常适合SOA的微服务架构,每一个单独的Dockerfile代表一个微服务,这些微服务是不同与在SOA范围内的传统服务。 传统的服务通常是整体性的,很难被分割和碎片化, Micro-services专注于非常小的、可重用的组件,尽可能少知道他们所处的环境。 Docker提供工作的隔离,可以部署在任何地方执行小micro-services。

微服务应用-基于Spring Cloud和Reactor构建网上商店微服务(上)

基于Spring Cloud和Docker构建电影推荐微服务(spring-cloud-microservice-example)一样,这次翻译的是基于Spring Cloud和Reactor实现Event Sourcing事件溯源构建网上商店微服务(spring-cloud-event-sourcing-example)开源项目,翻译的文章是项目作者写的关于此示例的博客,因为在看原文时觉得写的很详细,所以决定翻译下,以后好翻看。

微服务应用-基于Spring Cloud和Reactor构建网上商店微服务(下)

这篇将集中在微服务中使用Spring Boot、Spring Cloud和Project Reactor实现事件溯源的原始主题。文章中也会介绍项目实现一些技术细节。 在这篇文章中,我们很难看到在微服务架构中的高可用性和数据一致性的挑战。我们期待一个完整的网上商店原生云应用程序,能作为一系列微服务的集合,使用事件追溯保持一致的世界观,同时还保证高可用性。

微服务要素-十二要素(The Twelve Factors)

如今,软件通常会作为一种服务来交付,它们被称为网络应用程序,或“软件即服务”(SaaS)。“十二要素应用程序”(12-Factor App)为构建如下的SaaS应用提供了方法论: 使用标准化流程自动配置,从而使新的开发者花费最少的学习成本加入这个项目; 和操作系统之间尽可能的划清界限,在各个系统中提供最大的可移植性; 适合部署在现代的云计算平台,从而在服务器和系统管理方面节省资源; 将开发环境和生产环境的差异降至最低,并使用持续交付实施敏捷开发; 可以在工具、架构和开发流程不发生明显变化的前提下实现扩展;