腾讯云企微管家(微服务开发)

微服务开发(腾讯云企微管家)

关于Axon框架和CQRS架构的详细介绍,可以参考《Axon框架快速入门和DDD项目实践》技术专栏。在该技术专栏中,通过理论与实践相结合,使用Axon框架,基于DDD领域驱动设计、CQRS读写分离和事件溯源(Event Sourcing)、Saga分布式事务等等来实现货物运输系统(Cargo Tracker Application),可以帮助初学者从入门到项目实践,快速掌握当前开发技术热点。

基于Axon框架和CQRS架构的Spring Boot微服务应用开发示例(1)

本文将使用Axon框架和Spring Boot框架,实现一个简单的CQRS架构的微服务应用。

腾讯云企微管家(微服务开发)专栏Axon框架快速入门和DDD项目实践作者:软件架构9.6币20人已购查看

一、基础概念

Axon不仅仅是一个框架,还包括一个基础设施Axon Server。Axon Server负责管理命令、事件和查询路由器等等。

基于Axon框架和CQRS架构的Spring Boot微服务应用开发示例(1)

(1)事件存储库 Event Store

我们所有的事件都将存储在哪里呢?在运行Axon Server中的事件存储库中。如果我们想使用侵入式事件存储库,如MySQL或MongoDB等等,Axon提供了定制的实现。

(2)聚合 Aggregate

聚合是一个常规对象,其中包含状态和更改该状态的方法。创建Aggregate对象时,实际上是在创建一个聚合根(Aggregate Root)。

二、启动Axon Server

有多种启动方式,比如Docker镜像、jar包等等。下面,我们采用官方docker镜像来启动Axon Server:

https://hub.docker.com/r/axoniq/axonserver/

基于Axon框架和CQRS架构的Spring Boot微服务应用开发示例(1)

选择需要的版本运行即可:

docker run -d –name axonserver -p 8024:8024 -p 8124:8124 axoniq/axonserver:4.2

基于Axon框架和CQRS架构的Spring Boot微服务应用开发示例(1)

可以访问 http://localhost:8024/,查看Axon dashboard,验证Axon Server是否成功启动。

基于Axon框架和CQRS架构的Spring Boot微服务应用开发示例(1)

圈子封面软件架构-咨询圈主:软件架构33成员进入圈子

三、Maven依赖项

在项目的pom.xml文件中,添加Axon Spring Boot Starter maven依赖项,如下所示:

<dependency>

<groupId>org.axonframework</groupId>

<artifactId>axon-spring-boot-starter</artifactId>

<version>4.4.8</version>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

这是开始使用Axon框架最简单的方法,Spring Boot使用Axon中的默认组件简化了配置。

四、图书馆微服务应用示例

下面开始编码,我们将编写一个图书馆微服务应用,其中我们可以将图书组织为不同藏书库。

基于Axon框架和CQRS架构的Spring Boot微服务应用开发示例(1)

示例微服务应用采用了CQRS(命令查询职责分)架构、事件溯源(Event Sourcing)、以及DDD领域驱动设计思想,关于这些技术热点,可以访问《DDD领域驱动设计-货物运输系统》技术专栏了解更多技术细节。

(0)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 ZLME@ZLME.COM 举报,一经查实,立刻删除。

相关推荐