随笔- 67  评论- 52  文章- 0 
  2018年4月4日
摘要:本系列文章 DDD实战进阶第一波(一):开发一般业务的大健康行业直销系统(概述) DDD实战进阶第一波(二):开发一般业务的大健康行业直销系统(搭建支持DDD的轻量级框架一) 近年来,关于如何开发基于业务的软件系统与产品一直是软件行业的一个重要内容。对于架构师与软件开发人员来说,开发此类系统头痛的问 阅读全文
posted @ 2018-04-04 15:10 曹剑 阅读 (4911) 评论 (2) 编辑
  2018年10月19日
摘要:这个系列我们大概写了八篇文章,将微服务的最重要的内容过了一遍。当然其中有些内容还没有涉及到,比如Docker(不是微服务架构风格中必须的)等,关于Docker我们自己可以在网上找找其他文章。 这篇文章就来回顾下微服务架构风格是如何落地的,如果你对以下回顾的内容都很清楚并已经有一些实践的经验,那么恭喜 阅读全文
posted @ 2018-10-19 09:09 曹剑 阅读 (1151) 评论 (3) 编辑
  2018年10月10日
摘要:在微服务架构风格的系统中,如果单个微服务垮掉或地址不可访问,虽然对系统的影响是有限的,但我们也必须采取一定的手段来保证每个微服务尽量可用;并且在大并发的情况下,虽然可以通过EDA消息队列处理的方式提高吞吐量,但仍然需要WebApi能够更加高效的侦听用户请求,处理消息,即使在某个服务短暂不可用的情况下 阅读全文
posted @ 2018-10-10 08:45 曹剑 阅读 (1824) 评论 (0) 编辑
  2018年9月27日
摘要:我们先来看看CQRS架构,你对下图的架构还有印象吗?每个组件的功能都还清楚吗?如果有疑问,请查考文章《微服务实战(五):落地微服务架构到直销系统(构建高性能大并发系统)》。 前一篇文章已经实现了Event Store的基础功能部分,本篇文章我们通过C端的标准方式,实现一个下单的高并发命令端,来看看需 阅读全文
posted @ 2018-09-27 09:08 曹剑 阅读 (564) 评论 (0) 编辑
  2018年9月5日
摘要:在CQRS架构中,一个比较重要的内容就是当命令处理器从命令队列中接收到相关的命令数据后,通过调用领域对象逻辑,然后将当前事件的对象数据持久化到事件存储中。主要的用途是能够快速持久化对象此次的状态,另外也可以通过未来最终一致性的需求,通过事件数据将对象还原到一个特定的状态,这个状态通常是通过对象事件的 阅读全文
posted @ 2018-09-05 08:49 曹剑 阅读 (1118) 评论 (1) 编辑
  2018年8月7日
摘要:在现代系统中,特别是互联网软件,通常会涉及到大量用户的并发访问,我们的系统一定要在架构上支持高性能、大并发的访问。一个高性能的系统通常由很多的方面组成,包括数据库高性能、Web服务器高性能、负载均衡、缓存、软件架构等。我们这篇文章先从软件开发架构的角度作为切入点来介绍如何构建高性能的系统。 传统架构 阅读全文
posted @ 2018-08-07 08:51 曹剑 阅读 (2151) 评论 (2) 编辑
  2018年7月30日
摘要:前一篇文章我们已经完成了基于RabbitMq实现的的消息总线,这篇文章就来看看生产者(订单微服务)与消费者(经销商微服务)如何接入消息总线实现消息的发送与消息的接收处理。 定义需要发送的消息: 下单消息要被发送到消息总线,并被经销商微服务的处理器处理。经销商微服务处理时,需要知道要对哪个经销商处理多 阅读全文
posted @ 2018-07-30 11:58 曹剑 阅读 (893) 评论 (0) 编辑
  2018年7月24日
摘要:从前面文章可以看出,消息总线是EDA(事件驱动架构)与微服务架构的核心部件,没有消息总线,就无法很好的实现微服务之间的解耦与通讯。通常我们可以利用现有成熟的消息代理产品或云平台提供的消息服务来构建自己的消息总线;也可以自己完全写一个消息代理产品,然后基于它构建自己的消息总线。通常我们不用重复造轮子( 阅读全文
posted @ 2018-07-24 11:57 曹剑 阅读 (999) 评论 (0) 编辑
  2018年7月16日
摘要:从上一篇文章大家可以看出,实现一个自己的消息总线框架是非常重要的内容,消息总线可以将界限上下文之间进行解耦,也可以为大并发访问提供必要的支持。 消息总线的作用: 1.界限上下文解耦:在DDD第一波文章中,当更新了订单信息后,我们通过调用经销商界限上下文的领域模型和仓储,进行了经销商信息的更新,这造成 阅读全文
posted @ 2018-07-16 11:58 曹剑 阅读 (2905) 评论 (6) 编辑
  2018年7月9日
摘要:网上有很多关于微服务的文章,从不同的维度对微服务进行了相关的讲述;有些高屋建瓴,有些涉及细节,有些侧重理论,有些侧重代码,都是非常不错的了解微服务的文章。 我们这个系列的文章的维度主要是实战落地,也就是我们在平常工作以及产品开发过程中,考虑为什么选择微服务架构风格,以及如何将微服务的架构风格落地到我 阅读全文
posted @ 2018-07-09 12:00 曹剑 阅读 (3125) 评论 (5) 编辑
  2018年6月22日
摘要:前面我们花了14篇的文章来给大家介绍经典DDD的概念、架构和实践。这篇文章我们来做一个完整的总结,另外生成一个Api接口文档。 一.DDD解决传统的开发的几大问题: 解决软件设计与开发问题的套路就是领域驱动设计(简称 DDD)。DDD 这个套路能够灵活解决以上的问题,为我们提供一个好的设计、架构以及 阅读全文
posted @ 2018-06-22 12:04 曹剑 阅读 (1534) 评论 (1) 编辑