Axon入门系列(三):Axon使用Jpa存储Aggregate状态

上一篇里,介绍了Axon的基本概念,并且做了一个最简单的hello例子。本篇将更进一步,完成两个小目标:

  1. 集成SpringBoot;
  2. 使用Standard Repository来存储Aggregate的最新状态。

1. 更新Maven依赖

干几件事:

CQRS, DDD, axon, event sourcing

Axon入门系列(二):Hello,Axon3

AxonFramework是一个轻量级的CQRS框架,支持EventSourcing,本系列将开始通过例子,StepByStep学习AxonFramework。

简介

AxonFramework是一个基于事件驱动的轻量级CQRS框架,既支持直接持久化Aggreaget状态,也支持采用EventSourcing,使用AxonFramework的应用架构如下

CQRS, DDD, axon

Axon入门系列(一):CQRS基本概念

在研究微服务的过程中,跨服务的操作处理,尤其是带有事务性需要统一commit或rollback的,是比较麻烦的。本系列记录了我在研究这一过程中的心得体会。
本篇主要就以下几个问题进行介绍:

  • 微服务中的一个大难题
  • DDD中的几个基本概念
  • 什么是EventSourcing?
  • 什么是CQRS?
  • EventSourcing和CQRS的关系?
  • CQRS/ES怎么解决微服务的难题?

微服务中的一个大难题

微服务架构已经热了有两年了,而且目测会越来越热,除非有更高级的架构出现。相关解释和说明,网上一搜一大堆,我这里就不重复了。一句话概括:
微服务将原来的N个模块,或者说服务,按照适当的边界,从单节点划分成一整个分布式系统中的若干节点上。

CQRS, axon, event sourcing

论精益与领域设计

开始之前

你是否遇到过这种事?一个“好”工程师,非常喜欢学习和钻研新的技术知识,JEE时代学习Spring,SSH时代学习分布式,大数据时代又开始学习Hadoop,Storm,云时代开始搞docker,k8……然后成长为一名“架构师”了,在他的公司,有一个重要项目,于是乎他决意把这个项目设计成一个全分布式的系统,毕竟“时髦”嘛。每一个小的开发团队负责分布式中的一个服务。由于架构师对这些程序员缺乏必要的指导和控制,每个程序员只熟悉自己负责的一小块工作,彼此间缺乏沟通和协作,这个项目的概念完整性很快就被破坏了,他们开始自行其事,分布式服务间大量的远程调用导致了性能和可伸缩性等多方面的问题,开发、测试、运维的工作难度与日递增。慢慢的,项目的开发人员,离职的越来越多,包含最初的架构师,代码的维护越来越难,最终只能重构,将十几个分布式服务合并为三个相对独立的集中应用。最初良好的架构,到最后沦为废墟。中间一位离职的程序员,换了一家公司,涨了一点工资,开始了另一段新系统建设的“狂欢”,周而复始,随着年龄的增大,他不再能够从软件开发中享受到乐趣,开发的生涯,对他来说痛苦开始多余快乐。学习新技术,他也比不上年轻人。运气好的话,他可以转产品、管理或做业务,运气不好的话,还得继续码代码,毕竟要养家糊口。从一家公司换到另一家公司……

“如果”

DDD, 感悟

JAVA线程间通信的几种方式

今天在群里面看到一个很有意思的面试题:
“编写两个线程,一个线程打印1~25,另一个线程打印字母A~Z,打印顺序为12A34B56C……5152Z,要求使用线程间的通信。”
这是一道非常好的面试题,非常能彰显被面者关于多线程的功力,一下子就勾起了我的兴趣。这里抛砖引玉,给出7种想到的解法。

1. 第一种解法,包含多种小的不同实现方式,但一个共同点就是靠一个共享变量来做控制

a. 利用最基本的synchronizednotifywait

多线程

(译)Akka Persistence和Eventuate的对比

在实现微服务架构中,遇到了分布式事务的问题。Event-sourcing和CQRS是一个比较适合微服务的解决方案。在学习过程中,遇到了这篇文章,觉得很不错,特地翻译给大家。本文翻译自:A comparison of Akka Persistence with Eventuate

Akka Persistence和Eventuate都是Scala写的,基于Akka的event-sourcing和CQRS工具,以不同的方式实现分布式系统方案。关于这两个工具的详情,请参见他们自己的在线文档。

我是Akka Persistence和Eventuate的原作者,目前主要关注在Eventuate的开发实现。当然,我的意见肯定会带有偏见;) 言归正传,如果我哪里写的不对,请一定一定告之我。

akka, event sourcing, eventuate

博客新家

花了一天的时间,学习了Hexo,自定义了下模板,买了域名,搞了github和coding.net双站解析。
终于把这个新站建好了。暂时先放在免费平台上吧。
这里特别感谢程序猿DD贡献给我模板,这个Blog是高仿他的,细节部分做了些改动。以后慢慢往这里堆文字吧。

本文由 EdisonXu - 徐焱飞 创作,采用 CC BY 4.0 CN协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。
本文链接为
如果您觉得文章不错,可以请我喝一杯咖啡!
blog