首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Akka 指南 之「持久化」

持久化 依赖 为了使用 Akka 持久化(Persistence)功能,你必须在项目中添加如下依赖: 项目,以了解 Akka 持久化的实际使用情况。...换句话说,一旦一个日志返回一个失败,它就被 Akka 持久化认为是致命的,导致失败的持久行 Actor 将被停止。检查你正在使用的日志实现文档,了解它是否或如何使用此技术。...存储插件 日志和快照存储的存储后端可以插入到 Akka 持久性扩展中。 Akka 社区项目页面提供了持久性日志和快照存储插件的目录,请参阅「社区插件」。...测试 在 sbt 中使用 LevelDB 默认设置运行测试时,请确保在 sbt 项目中设置fork := true。否则,你将看到一个UnsatisfiedLinkError。

3.5K30

Akka(14): 持久化模式:PersistentActor

PersistentActor是一种特殊的带有内部状态的Actor,它是以事件来源模式(event-sourcing)来进行内部状态持久化的。持久化是指存入由文件或数据库形成的日志。...事件来源模式具体的工作原理原则上就是把使状态产生变化的事件按发生时间顺序持久化,而不是把当前整个状态存储起来。在恢复状态时把日志中这些事件按原来的时间顺序重演一遍回到原来的状态。...在事件持久化之前经过了验证可以保证造成系统异常的事件不会被写入日志从而造成同样异常在恢复过程中的不断重演。...persist的主要方式是保证在事件成功持久化后再运算事后程序handler。上面是PersistentActor提供的几种形式的persist。...我们用个例子来示范如何来设计指令消息到事件的转换的: import akka.actor._ import akka.persistence._ object Calculator { sealed

1.6K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Akka(15): 持久化模式:AtLeastOnceDelivery-消息保证送达模式

    AtleastOnceDelivery模式既然需要保证消息必达,就必须保证自身在出现任何异常情况下都能恢复到原来的状态,这些都可通过状态持久化来实现。...系统对超过配置文件中重发次数设置的消息通过自发送一条UnconformedWarning信息,这个信息包嵌了当前未确认送达消息清单: /** * @see [[AtLeastOnceDeliveryLike...下面是加入了日志快照维护功能的新代码: package atleastonce.calculation import akka.actor._ import akka.persistence._ import..." %% "akka-actor" % "2.5.3", "com.typesafe.akka" %% "akka-persistence" %...akka.persistence._ import akka.persistence.AtLeastOnceDelivery._ import atleastonce.calculator.Calculator

    1.5K50

    TKE集群设置容器coredump持久化

    业务跑在容器上,当业务进程发生异常退出时候,业务日志无法定位到具体原因,需要结合coredump文件进一步分析,下面我们来介绍下如何在tke上持久化容器的coredump文件。...现在业务在tke部署容器,通常有2种方式,一直是部署在普通cvm节点,一种是超级节点上,下面我们分别说明下在这2种节点的pod如何持久化coredump文件。...1. coredump内核参数说明首先我们说明下如何开启coredump,这里是直接设置容器所在宿主机的内核参数开启,在节点执行这个命令,设置core文件的存放路径。...普通cvm节点pod持久化coredump如果pod是运行在普通cvm上,首先参考第一步在节点设置内核参数,开启coredump,然后将容器的core文件存放目录持久化挂载,避免pod重建,core文件就没有了...%t"}]'和普通cvm节点一样,我们将容器的core文件存放目录持久化挂载,我这里用cbs挂载测试,但是实际生产建议用cfs或者cos。

    65230

    Redis持久化(Persistence):了解如何配置redis的持久化。

    Redis持久化机制 RDB持久化方式:在指定时间间隔对数据进行快照存储 AOF持久化方式:每次写操作都会记录下来,当服务器重启的时候会重新执行这些命令来恢复原始数据。...不使用任何持久化方式:如果你只希望你的数据在服务器运行时候存在,你也可以不使用任何持久化方式。...如何选择使用哪种持久化方式? 一般来说, 如果想达到足以媲美 PostgreSQL 的数据安全性, 你应该同时使用两种持久化功能。...从 1.1 版本开始, Redis 增加了一种完全耐久的持久化方式: AOF 持久化。...当 Redis 启动时, 如果 RDB 持久化和 AOF 持久化都被打开了, 那么程序会优先使用 AOF 文件来恢复数据集, 因为 AOF 文件所保存的数据通常是最完整的。

    1.8K30

    Akka(16): 持久化模式:PersistentFSM-可以自动修复的状态机器

    为了实现FSM的可用性,就必须为FSM再增加自我修复能力,PersistentFSM是FSM和PersistentActor的合并,是在状态机器模式的基础上再增加了状态转变事件的持久化,从而实现内部状态的自我修复功能的...在FSM结构基础上,PersistentFSM又增加了领域事件(domain-event)这一元素,也就是事件来源(event-sourcing)模式里持久化的目标。...我们看到:PersistentFSM继承了PersistentActor,代表它具备了事件来源模式中的事件持久化和日志恢复能力。...继承的另一个类型PersistentFSMBase是FSM trait的重新定义,针对状态机器增加的持久化特性设计了一套持久化状态转换的DSL。..." %% "akka-actor" % "2.5.3", "com.typesafe.akka" %% "akka-persistence" %

    1K50

    DDD落地,如何持久化聚合

    最简单的例子就是订单和订单项目,订单项目更新必须伴随订单的更新,否则就会有总价不一致之类的问题。...理想中最好的方式就是把聚合根整体持久化,不过问题并没那么简单。...聚合持久化问题 如果你使用 MySQL 等关系型数据库,集合的持久化是一个比较麻烦的事情 关系的映射不好处理,层级比较深的对象不好转换。...其他问题 聚合的持久化是 DDD 美好愿景落地的最大拦路虎,这些问题有部分可以被解决而有部分必须取舍。聚合的持久化到关系数据库的问题,本质是计算机科学的模型问题。...使用 Spring Data JPA 所以我们可以使用 JPA 的级联更新实现聚合根的持久化。大家在实际操作中发现,JPA 并不好用。

    2.7K20

    Sentinel如何持久化数据到Nacos?

    下载源码之后,使用 idea 打开里面的 sentinel-dashboard 项目,如下图所示:2.修改pom.xml将 sentinel-datasource-nacos 底下的 scope 注释掉...,如下图所示:PS:因为官方提供的 Nacos 持久化实例,是在 test 目录下进行单元测试的,而我们是用于生产环境,所以需要将 scope 中的 test 去掉。...如下图所示:7.修改配置信息在 application.properties 中设置 Nacos 连接信息,配置如下:sentinel.nacos.serverAddr=localhost:8848sentinel.nacos.username...小结Sentinel Dashboard 默认情况下,只能将配置规则保存到内存中,这样就会程序重启后配置规则丢失的情况,因此我们需要给 Sentinel 设置一个数据源,并且要和数据源之间实现双向通讯,

    38310

    Redis开启远程访问+设置密码+修改端口+持久化配置

    Redis开启远程访问+设置密码+修改端口+持久化配置 运行环境: Centos 7.4 Redis 4.0.9 推荐一键安装脚本:https://oneinstack.com/ 一般配置文件存在...requirepass 密码 去掉requirepass注释,后边写密码 修改端口 port 6379 默认6379 持久化配置 RDB快照备份配置 save 900 1 save 300 10 save...AOF追加方式持久化 appendonly yes appendfilename "appendonly.aof" appendfsync everysec appendonly yes开启持久化 appendfilename...存储aof持久化路径 appendfsync持久化方式,可选值no不追加、everysec每秒钟同步一次、always每次有数据修改发生时都会写入AOF文件(影响效率,但是数据完整) 一般2中同时开启...,一个做容灾备份,一个做持久化 所以修改配置文件,都需要重启Redis 其他命令 service redis-server start 开启 service redis-server stop 停止

    1.3K10

    干货 | 如何评估Kubernetes持久化存储方案

    我相信,在未来的两年内,容器存储会随着Kubernetes的进一步成熟和商业化,其地位会越来越重要。如何在五花八门的存储产品中,选择适合自己的一款,将会是IT大佬们必须要面对的问题。...Kubernetes是如何给存储定义和分类呢?...如果底层存储有副本机制,HDFS集群就可以设置为单副本,datanode节点掉线后,启动新的datanode,挂载原有的pv,集群恢复正常,对业务的影响缩短为秒级。...如果没有QoS,存储管理员只能期望存储提供其他监控指标,以保证在集群超负荷时,找出罪魁祸首 万变不离其宗的选择 Kubernetes持久化存储方案的重点在存储和容器支持上。...Q:我们用的是Ceph分布式存储,目前有一个场景是客户视频存储,而对于持续的写入小文件存在丢帧的现象,经过我们系统级别和底层文件系统调优,加上Ceph参数的设置,勉强性能得改善,但是数据量上来性能会如何也不得而知道了

    3.3K31

    如何检测并移除WMI持久化后门?

    因此,我决定花一些时间研究下Empire的WMI模块,看看有没有可能检测并移除这些WMI持久化后门。此外,文中我还回顾了一些用于查看和移除WMI事件订阅的PowerShell命令。...攻击者可以使用WMI的功能订阅事件,并在事件发生时执行任意代码,从而在目标系统上建立一个持久化后门。...\config_file.xml 建立持久化后门 下面,我们使用Empire的Invoke-WMI模块,在受害者端点上创建一个永久的WMI订阅。...WMI事件过滤器为stager设置了相应执行条件,其中包括对系统正常运行时间的引用。...FilterToConsumerBinding -Filter “__Path LIKE ‘%Updater%’” | Remove-WmiObject -Verbose 完成后我们再次运行Autoruns,以验证持久化后门是否已被我们成功清除

    1.3K30

    8 个用于 Kubernetes 持久化存储的 CNCF 项目

    在容器化方面,数据的持久化存储是个难题。临时容器是一个短暂的计算环境,其中代码不会永远存储。但是您仍然需要将数据存储在某个物理磁盘上!...Rook 是 Kubernetes 的开源云原生存储实用程序,旨在自动化存储管理员的一些任务,例如程序化存储、迁移、灾难恢复、监控和资源管理。Rook 支持文件、块和对象存储类型。...存储软件本身由 Kubernetes 容器化和编排。该项目将此设置称为容器附加存储 (CAS)。OpenEBS 最初由 MayaData 创建和赞助,目前,是 CNCF 的一个沙盒项目。 6....://github.com/oras-project/oras 网站:https://oras.land/ 您可能熟悉Open Container Initiative[7] (OCI),该组织为容器设置行业标准格式...正如我们在上面看到的,CNCF 中有许多项目试图简化将 Kubernetes 与持久的、有状态的存储结合起来的过程。

    1.4K10

    Java序列化与反序列化:如何持久化数据

    Java序列化和反序列化是一项功能非常重要的技术,用于将对象转换成可以持久化存储的字节流,并在需要时将其还原为对象。...下面将介绍Java序列化和反序列化的基本原理、使用方法以及相关的注意事项,帮助读者更好地理解这一技术并应用到实际的开发中。...2、序列化与反序列化的实现 在Java语言中,序列化和反序列化主要是通过两个基本类来实现:ObjectOutputStream和ObjectInputStream。...3、序列化与反序列化的优点与缺点 Java序列化和反序列化在Java语言开发中具有以下几个优点: (1) 数据持久化: Java序列化使得数据可以持久化存储,即使服务端关闭,客户端重启,数据仍旧存在。...但是,Java序列化和反序列化在实际使用过程中也存在一些缺点: (1) 需要实现Serializable接口: 对象如果需要进行序列化必须实现Serializable接口 (2) 序列化后的字节流很大:

    23710

    揭秘 LlamaIndex|如何持久化存储 LlamaIndex 向量索引?

    回到 LlamaIndex,随着 AGI 时代的到来,越来越多的开发者开始思考如何有效利用大模型,不过,大家在构建 LLM 应用时普遍会面临三大挑战: LLM 的使用成本高昂 LLM 无法及时提供最新信息...本文为【揭秘 LlamaIndex 系列】,此前我们已经邀请 LlamaIndex 的联合创始人详解【如何使用私有数据提升 LLM 的能力】,也细致介绍过 LlamaIndex 的各式索引,以及如何查询...本次,我们将着重讲解如何在 LlamaIndex 中创建并存储向量索引及 2 种持久化存储向量索引的方法。 01....如果想要使用持久化存储引擎来存储索引,以便在后续应用搭建过程中使用,可以参照下文的教程。 02.

    1.3K20

    深入研究Broker是如何持久化的

    前言 上篇文章王子和大家讨论了一下RocketMQ生产者发送消息的底层原理,今天我们接着这个话题,继续深入聊一聊RocketMQ的Broker是如何持久化的。...Broker的持久化对于整个RocketMQ的运行起着至关重要的作用,为什么这么说呢?...如果不持久化到磁盘上,而是通过内存存储消息,一是内存无法存储大量的消息,二是出现故障消息将会丢失。 所以,Broker的持久化是比较核心的机制,它决定了MQ消息吞吐量,和保证消息的可靠性。...今天我们就来聊一聊,Broker是如何持久化的。 CommitLog 首先我们思考一下,当Broker接收到生产者发来的消息后,内部会做些什么呢?...总结 好了,今天王子和大家深入的聊了聊Broker是如何持久化的,介绍了什么是CommitLog,什么是ConsumeQueue。

    60810
    领券