Axon服务器
这是一个允许不同/多个实例的组件,在axon框架中实现。Axon服务器有能力沟通你的应用程序是在扩展模式下运行。在微服务环境中运行的应用程序没有任何问题,它是透明地工作的。
运行Axon服务器
我们可以使用官方的docker镜像来启动Axon服务器实例。
docker run -d --name axonserver -p 8024:8024 -p 8124:8124 axoniq/axonserver
另一个选择是,我们可以通过从这里下载二进制文件来启动一个服务器实例。
为了检查安装是否成功,请浏览"http://localhost:8024/",我们应该看到Axon的仪表板。
信息传递类型
Axon将消息分为三类。命令、事件和查询。
命令-- 路线是单一的处理方式,使用一致的散列方式来产生结果。
事件-- 它遵循pub/sub模式来分配给逻辑处理程序。
查询--它可以与负载均衡器、单个或多个节点一起使用路由来给出答案。
事件源(Events Sourcing)
事件源是事件驱动架构的一个非常具体的子集。事件只是用来通知不同的组件,而不是发生了什么事情,事件成为你的数据存储的核心。
在事件源应用程序的架构中,事件存储是用于存储事件的数据库系统。
大多数系统通常将信息存储为状态。历史记录基本上可以从状态中获取。你在数据库中拥有信息的最新状态。让这个例子有一个订单。
商业原因
- 审计/合规/透明度
- 数据挖掘,分析
技术原因
- 保证所提出事件的完整性
- 单一真相来源
- 并发/冲突解决
- 便于调试
- 重现到新的读取模型(CQRS)中
- 轻松捕捉意图
高可用性
Axon服务器可以在集群模式下工作,axon集群中的每个节点都是活跃的,应用程序在节点间动态平衡。基于Axon的同一应用程序的实例将被连接到同一消息传递节点,以优化性能。
QoS消息
基于Axon的应用程序可以表明其请求的优先级。例如,源自批处理程序的命令可以以低于在线请求的优先级执行。
访问控制
基于Axon的应用程序需要被授予对消息平台的访问权。这避免了随机应用程序可以开始向系统发送命令的风险。
实施技术
Axon服务器是在JVM和Spring Boot上开发的。它是作为一个分布式的单一jar文件,包含所有的库。Axon服务器的配置存储在h2数据库中,它包含了关于信息平台节点和可以访问的应用程序的信息。
总结
Axon框架使实现CQRS模式和零配置消息路由器和事件存储的架构变得容易,准备在本地运行一些你可能感兴趣的其他资源。