范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

AxonFrameworksaga基础设施

  事件需要重定向到适当的 saga 实例。 为此,需要一些基础设施类。 最重要的组件是  SagaManager   和 SagaRepository  。Saga Manager
  与处理事件的任何组件一样,处理是由事件处理器完成的。 但是,sagas 不是处理事件的单例实例。 他们有各自的生命周期,需要加以管理。
  Axon 通过  AnnotatedSagaManager   支持生命周期管理,它被提供给事件处理器以执行处理程序的实际调用。 它使用要管理的 saga 的类型以及可以存储和检索该类型的 saga 的 SagaRepository   进行初始化。 单个 AnnotatedSagaManager   只能管理单个 saga 类型。
  使用配置 API 时,Axon 将为大多数组件使用合理的默认值。 但是,强烈建议定义一个  SagaStore   实现来使用。 SagaStore   是在某处"物理"存储 saga 实例的机制。 AnnotatedSagaRepository  (默认)使用 SagaStore   来存储和检索需要的 Saga 实例。
  Axon Configuration API Configurer configurer = DefaultConfigurer.defaultConfiguration();         configurer.eventProcessing(eventProcessingConfigurer -> eventProcessingConfigurer                 .registerSaga(MySaga.class,                               // Axon defaults to an in-memory SagaStore,                               // defining another is recommended                               sagaConfigurer -> sagaConfigurer.configureSagaStore(c -> new JpaSagaStore(...))));  // alternatively, it is possible to register a single SagaStore for all Saga types: configurer.registerComponent(SagaStore.class, c -> new JpaSagaStore(...));
  Spring Boot AutoConfiguration@Saga(sagaStore = "mySagaStore") public class MySaga {...} ... // somewhere in configuration @Bean public SagaStore mySagaStore() {     return new MongoSagaStore(...); // default is JpaSagaStore }Saga repository 和 saga store
  SagaRepository   负责存储和检索 saga,供 SagaManager   使用。 它能够通过它们的标识符以及它们的关联值来检索特定的 saga 实例。
  但是,有一些特殊要求。 由于 saga 中的并发处理是一个非常微妙的过程,repository 必须确保对于每个概念 saga 实例(具有相同的标识符)在 JVM 中仅存在一个实例。
  Axon 提供  AnnotatedSagaRepository   实现,它允许查找 saga 实例,同时保证只能同时访问 saga 的单个实例。 它使用 SagaStore   来执行 saga 实例的实际持久化。
  使用的实现选择主要取决于应用程序使用的存储引擎。 Axon 提供了  JdbcSagaStore  、InMemorySagaStore  、JpaSagaStore   和 MongoSagaStore  。
  在某些情况下,应用程序受益于缓存 saga 实例。 在这种情况下,有一个  CachingSagaStore   包装了另一个实现以添加缓存行为。 请注意,CachingSagaStore   是直写式缓存,这意味着保存操作始终会立即转发到后备存储,以确保数据安全。JpaSagaStore
  JpaSagaStore   使用 JPA 来存储 sagas 的状态和关联值。 Sagas 本身不需要任何 JPA 注解; Axon 将使用 Serializer   对 sagas 进行序列化(类似于事件序列化,您可以在 XStreamSerializer   或 JacksonSerializer   之间进行选择,可以通过在应用程序中配置默认的 Serializer   来设置。有关更多详细信息,请参阅序列化程序 .
  JpaSagaStore   配置有 EntityManagerProvider  ,它提供对要使用的 EntityManager   实例的访问。 这种抽象允许使用应用程序管理和容器管理的 EntityManager  。 或者,您可以定义序列化程序来序列化 Saga 实例。 Axon 默认为 XStreamSerializer  。JdbcSagaStore
  JdbcSagaStore   使用纯 JDBC 来存储阶段实例及其关联值。 与 JpaSagaStore   类似,saga 实例不需要知道它们是如何存储的。 存储使用序列化程序序列化 saga 实例。
  您应该使用  DataSource   或 ConnectionProvider   配置 JdbcSagaStore  。 虽然不是必需的,但在使用 ConnectionProvider   进行初始化时,建议将实现包装在 UnitOfWorkAwareConnectionProviderWrapper   中。 它将检查当前工作单元中是否存在已打开的数据库连接,以确保工作单元内的所有活动都在单个连接上完成。
  与 JPA 不同, JdbcSagaRepository   使用纯 SQL 语句来存储和检索信息。 这种方法可能意味着某些操作依赖于特定于数据库的 SQL 方言。 也可能是某些数据库供应商提供了您想使用的非标准功能。 为此,您可以提供自己的 SagaSqlSchema  。 SagaSqlSchema   是一个接口,它定义了存储库需要在底层数据库上执行的所有操作。 它允许您自定义为每个操作执行的 SQL 语句。 默认值为 GenericSagaSqlSchema  。 其他可用的实现是 PostgresSagaSqlSchema  、Oracle11SagaSqlSchema   和 HsqlSagaSchema  。
  Schema 构建
  请注意,Axon 不会为您创建开箱即用的数据库 schema 。 例如,在使用 Spring Boot 时也不行。
  要构建 schema,应该调用  JdbcSagaStore#createSchema  。 默认情况下,这将使用 GenericSagaSqlSchema  。 您可以通过 JdbcSagaStore.Builder   配置不同的版本来更改 schema。MongoSagaStore
  MongoSagaStore   将 saga 实例及其关联存储在 MongoDB   数据库中。 MongoSagaStore   将所有 saga 存储在 MongoDB 数据库中的单个集合中。 对于每个 saga 实例,都会创建一个文档。
  MongoSagaStore   还确保在任何时候,对于单个 JVM 中的任何唯一 Saga,都只存在一个 Saga 实例。 这可确保不会因并发问题而丢失状态更改。
  MongoSagaStore   使用 MongoTemplate   和可选的 Serializer   初始化。 MongoTemplate   提供了对存储 sagas 的集合的引用。Axon 提供了 DefaultMongoTemplate  ,它接受一个 MongoClient   实例以及数据库名称和存储 sagas 的集合名称。数据库名称 和集合名称可以省略。 在这种情况下,它们分别默认为 "axonframework"   和 "sagas"  。缓存
  如果使用数据库支持的 saga 存储,保存和加载 saga 实例可能是一项相对昂贵的操作。 在短时间内多次调用同一个 saga 实例的情况下,缓存可能对应用程序的性能特别有益。
  Axon 提供  CachingSagaStore   实现。 它是一个包装了另一个 SagaStore   的 SagaStore  ,它负责实际存储。 加载 saga 或关联值时,CachingSagaStore   将首先查询其缓存,然后再委托给包装的 repository。 存储信息时,所有调用总是被委派以确保后备存储始终对 saga 的状态有一致的视图。
  要配置缓存,只需将任何  SagaStore   包装在 CachingSagaStore   中。 CachingSagaStore   的构造函数采用三个参数: 1. 要包装的 SagaStore 2. 用于关联值的缓存 3. 用于 saga 实例的缓存
  后两个参数可能指的是同一个缓存,也可能指不同的缓存。 这取决于您的特定应用程序的要求。

十万级纯电新物种,比亚迪海豚试驾初体验01hr摁下电源开关,中控界面自动开启,在全新UI光影闪过之后,海豚的叫声悄然响起,新的旅程正式唤醒。这是比亚迪海豚带给新世界的礼物。海豚,是比亚迪海洋系列的首款车型,通过启用全新唐DM三度蝉联20万以上新能源SUVTop39月新能源车强势增长,其中,比亚迪汽车同比大增90。2,旗下王朝旗舰唐家族更是一路高歌猛进,唐DM在20万以上7座SUV细分市场中销售排名第二,并三度蝉联二十万以上新能源SUVTo第十一代思域上海上市,货源充足,众所周知,思域是Honda的全球明星车型,历经五十载进化,十代革新。而今跨入第十一代的思域以我,即世界耀世而来。2021年10月12日晚,第十一代思域上海区域上市会在上海松江的云间电驱化提速东风日产跑出高质量转型加速度近日,随着全新劲客和ePOWER中国首款车型在天津车展上的发布,东风日产距离日产智行科技全面落地的目标更近了。同时,以ePOWER为驱动推动东风日产电驱化转型,未来东风日产将加速传特斯拉破万亿,比亚迪半导体上市获批,固态电池十年内量产无望2021年10月25日,特斯拉作为汽车厂商总市值首次突破1万亿美元关口,成为全球汽车史上值得铭记的时刻。特斯拉市值突破1万亿美元10月25日,受租车企业赫兹国际控股(Hertz)表极氪001将于10月23日开启交付10月19日,在ZEEKR001量产车下线仪式上,极氪汽车表示,极氪为最大限度保障交付,更进一步提升了工厂生产效率,以求缩短用户提车等待时间。首批ZEEKR001交付将于10月23她视界里的汽车新消费少女儿童少妇狗男人一条来自消费市场的价值链代表着她经济的本质。随着女性地位提高和消费能力升级,在汽车市场中,常被视为非理性消费的女性群体正在影响着汽车市场的发展。在央视财经发布的中丰田首款量产EV发布,续航500公里继日产Ariya之后,丰田也加入了追赶特斯拉的赛道。10月29日,丰田发布了首款量产型纯电动SUVbZ4X,最长续航可达500公里,逼近特斯拉Model3。新车将于2022年中期开思域红现身东风本田吹响上海冲锋号第十一代思域货源充足,新车供应正在恢复。10月12日晚,在第十一代思域上海上市会上,东风本田闵行特约店一销售经理表示,除了英诗派等少数车型受影响外,主力车型供应正在逐渐恢复,第十一潮趣单品ID。3上市上汽大众电动化提速01hr大众ID。3,一如初见。10月22日,上汽大众ID。3在线发布上市。新车提供纯净版极智版ID。初见版3个车型版本,综合补贴后售价159,888元173,888元。新车发布会ThinkPadX1Carbon2021上手首发ThinkPad家族在CES2021消费电子大展上一口气发布了许多新产品,包括ThinkPadX1TitaniumYoga二合一平板ThinkPadX12,以及经典机型ThinkP
另类且时尚的小型SUV,日产全新Juke于国外发布近日,日产全新Juke在国外发布。该车在国内是通过英菲尼迪渠道销售,对应车型为英菲尼迪ESQ。日产Juke为小型跨界SUV,新款车型的车身三围尺寸为长4210mm宽1800mm高1长安狠角色新款欧尚科赛,8。68万起,567座可选2019年是祖国母亲的70岁生日,在十一国庆大阅兵上,亮相的各种武器装备向全世界展现中国力量,亿万国人在这场盛大庆典中感受到了身为中国人的光荣与自豪。其实中国不单止在军事方面飞速发AMG阵营再添新丁,GLB35真面目曝光近年来,AMG一直在拓展自己旗下的阵营,从我们熟悉的63到45,再到现在的43和35,想进入性能的门槛可以说是越来越低了。当然,花多少钱办多大事,这个是亘古不变的道理。日前AMG3东风日产花都工厂实锤,14代轩逸的安全性得到六星满分据中国汽车工业协会9月公布的数据显示,2019年8月东风日产14代轩逸夺得了家用车销量冠军,能跑赢一大波竞品,作为东风日产汽车家族中的长青树,产品力与性价比高能无疑是其火箭推进器,运动与豪华并存,奥迪Q8即将于10月25日上市据悉继奥迪Q7之后,奥迪全新旗舰SUV奥迪Q8将于10月25日上市,预售价77万102万奥迪Q8采用与兰博基尼Urus相同平台,该车尺寸为4986mmX1995mmX1705mm,全新荣放近期上市,两大升级不容小觑丰田全新荣放即将于10月25日上市,外观的改变可谓大刀阔斧,自从采用了TNGA架构后,丰田全系都走向了年轻运动化的路线,而荣放也不例外,一改老款中庸的面貌,转而走上了硬朗的路线。有200万的富帅新贵阿斯顿马丁Vantage阿斯顿马丁的Vantage车型一直注重纯粹运动性能,马力大操控好,不过,Vantage最重要的还是帅气,比他的对手保时捷911奔驰AMGGT更拉风。全新Vantage搭载来自梅赛德全球最速V8敞篷贴地飞行物,法拉利F8Spider最新的F8Spider从静止到破百只需2。9秒,破200也才8。2秒,最高时速340km,称霸目前全球最速V8敞篷称号。坚持采用硬顶敞篷的法拉利F8Spider,全身上下除了极具流标志推4008黑曜版售19。17万,能否助力提升品牌销量?近日,东风标致正式向市场推出4008黑曜版(BLACKPACK)车型,本次共推出1款车型,官方指导售价为19。17万元。此次东风标志还宣布在10月底前购买4008黑曜版车型的消费者日本大发汽车将于本月东京车展首发四款概念车型近日,大发汽车将于本月东京车展发布四款全球首发的概念车,四款概念车型分别命名为ICOICOTsumuTsumuWaiWaiWakuWaku。这四款车型也将满足未来不同家庭以及公共交2020款本田CRV将发布,能否助力销量继续逆市猛增?2019年8月份共有22个SUV车型月销量过万,其中东本CRV销量达到15744台,排名SUV销量榜第7位,逆市猛增。在汽车销量普遍下滑的2019年,为何CRV能够在如此激烈的SU