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

JMS消息持久,将ActiveMQ消息持久mySql数据库中

fr=aladdin ActiveMQ提供多种数据持久方式:可以持久到文件,也可以持久数据库,其中数据库可以支持MySQL和Oracle两种类型。...默认提供的是持久到文件的方式,即activemq.xml文件中的: <kahaDBdirectory="${<em>activemq</em>.base}/data/kahadb...步骤 本文重点接收的是<em>持久</em><em>化</em>到<em>MySQL</em>中的配置方式: 2.1    添加<em>MySQL</em>驱动 首先需要把<em>MySql</em>的驱动放到<em>ActiveMQ</em>的Lib目录下,我用的文件名字是: <em>mysql</em>-connector-java...从配置中可以看出<em>数据</em>库的名称是<em>activemq</em>,需要手动在<em>MySql</em>中新建一个<em>activemq</em>的空<em>数据</em>库。...此时,重新启动MQ,就会发现<em>activemq</em>库中多了三张表:<em>activemq</em>_acks,<em>activemq</em>_lock,<em>activemq</em>_msgs,OK,说明已经<em>持久</em>化成功啦!

1.6K70

ActiveMQ专题2: 持久

,并将producer的deliveryMode设置成持久,运行producer 在消息被consumer消费之前,重启activeMQ 运行consumer,发现接收到了activeMQ重启之前Producer...至此,不难发现,deliveryMode的是否持久是针对activeMQ服务器是否重启而言的。对于不支持持久的设置,当mq重启之后,没有被消费的消息就会丢失。...而支持持久的设置,只要消息没有被消费,重启mq,仍然能被新加入的consumer消费。 订阅持久 ​ JMS的规范是没有要求实现订阅持久的。所幸的是activeMQ实现了这个特性。...: 要实现伪持久订阅,必须先向activeMQ发布持久订阅消息,通过clientId来标识不同的订阅渠道。...如果在发布持久订阅消息之前producer就向mq发送了topic消息,那么consumer还是没法接收 activeMQ确定是否是同一持久订阅者的依据条件有两个:connection.setClientID

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

ActiveMQ 中的消息持久

ActiveMQ的消息持久机制有JDBC,AMQ,KahaDB和LevelDB,无论使用哪种持久方式,消息的存储逻辑都是一致的。...JDBC持久方式 使用JDBC持久方式,数据库会创建3个表:activemq_msgs,activemq_acks和activemq_lock。...(1)配置方式 配置持久的方式,都是修改安装目录下conf/acticvemq.xml文件, 首先定义一个mysql-ds的MySQL数据源,然后在persistenceAdapter节点中配置jdbcPersistenceAdapter...使用MySQL配置JDBC持久:     <broker brokerName="test-broker" persistent="true" xmlns="http://<em>activemq</em>.apache.org...KahaDB是从<em>ActiveMQ</em> 5.4开始默认的<em>持久</em><em>化</em>插件,也是我们项目现在使用的<em>持久</em><em>化</em>方式。 KahaDb恢复时间远远小于其前身AMQ并且使用更少的<em>数据</em>文件,所以可以完全代替AMQ。

77030

MQ 系列之 ActiveMQ 消息持久机制

ActiveMQ 的消息持久机制有 JDBC,AMQ,KahaDB 和 LevelDB,无论使用哪种持久方式,消息的存储逻辑都是一致的。...KahaDB 是一个专门针对消息持久的解决方案,它对典型的消息使用模式进行了优化。数据被追加到 data logs 中。当不再需要 log 文件中的数据的时候,log 文件会被丢弃。...-- dataSource 指定将要引用的持久数据库的 bean 名称,很显然我们还要添加一个 bean 配置数据源 createTablesOnStartup 默认 true,MQ 启动的时候都重新创建数据表...MySQL,所以我们需要在 /lib 目录中添加 MySQL 驱动包,ActiveMQ 默认的数据库连接池是 dbcp,如果要更改也是需要将数据库连接池的 jar 包添加到库中。...☞ 可能存在的问题 在配置关系型数据库作为 ActiveMQ持久存储方案时,可能会出现以下问题  ♞ 需要使用到的相关 jar 文件放置到 ActiveMQ 安装路径下的 lib 目录,否则会找不到

1.1K20

ActiveMQ 持久原理及事务机制

ActiveMQ 持久方案介绍 ---- ActiveMQ 的消息持久机制有 JDBC、AMQ、KahaDB 和 LevelDB,无论使用哪种持久方式,消息的存储逻辑都是一致的。...Queue 类型的持久机制 ? Topic 类型的持久机制 ? 会记录每个 Customer 的处理进度。 定时清除策略。 当发现 topic 长时间没有使用,就会清除。 2....JDBC 方式 ---- http://activemq.apache.org/jdbc-support 将消息存储在数据库中,例如:Mysql、SQL Server、Oracle、DB2 等。...KahaDB 方式 ---- http://activemq.apache.org/kahadb 从 ActiveMQ 5.4 开始默认的持久方式,KahaDB 恢复时间远远小于其前身 AMQ...LevelDB 方式 ---- LevelDB 是 Google 开发的一套用于持久数据的高性能类库。LevelDB 并不是一种服务,用户需要自行实现 Server。

68430

ActiveMQ学习之消息存储和可持久

一、activeMQ高可用 1、事物 2、签收 3、持久 4、可持久 二、持久机制...为了避免意外宕机以后丢失信息,需要做到重启后可以恢复消息队列,消息系统一般都会采用持久机制 ActiveMQ持久机制有:JDBC、AMQ、KahaDB和LevelDB,无论哪种持久方式...三、消息持久机制有哪些 1、AMQ Message Store : 基于文件存储方式,以前默认的消息存储方式,现在基本不用。...KahaDB是一个专门针对消息持久的解决方案,他对典型的消息使用模式进行优化。数据被追加到data logs中。...db.data:该文件包含了持久的BTree索引,索引消息数据记录中的消息,他是消息的索引文件,本质上是B-Tree(B树),

73710

Docker(43)- 安装 Mysql数据持久

思考 MySQL数据持久的问题 搜索 mysql 镜像 docker search docker 官方镜像介绍地址 https://hub.docker.com/_/mysql?...--help 挂载 Mysql 存放数据的目录 docker run --name mysql_name -v /user/local/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD...可选的,允许指定要在 docker run mysql 时创建的数据库的名称 如果提供了用户/密码,则该用户将被授予对该数据库的超级用户访问权限(对应于 GRANT ALL) MYSQL_USER, MYSQL_PASSWORD...可选的,结合使用来创建新用户和密码 该用户将被授予对 MYSQL_DATABASE 变量指定的数据库的超级用户权限 创建用户需要这两个变量 MYSQL_ALLOW_EMPTY_PASSWORD 这是一个可选变量...root 密码将打印到 stdout MYSQL_ONETIME_PASSWORD 初始完成后,将 root(不是 MYSQL_USER 中指定的用户!)

1.6K40

activemq持久订阅工作原理

activemq消息订阅模式来说有两种:持久订阅/非持久订阅。...非持久订阅consumer只能消费在该consumer激活状态时传送给对应topic的消息才能被该consumer消费,一旦该consumer 挂掉到下次启动期间发布到该topic的消息不能被该consumer...持久订阅:订阅之后,无论消息是否是在该consumer激活或者down掉期间发送的,最终都会被该consumer接收到,直到被显示取消持久订阅(session.unscribe(“topic名字”))!...那么持久订阅到底是如何实现的呢,笔者在这里将展现其中的奥秘: 先来看下TopicRegion的addConsumer方法 public Subscription addConsumer(ConnectionContext...context, ConsumerInfo info) throws Exception { if (info.isDurable()) { //看该消息是否是持久订阅

46310

数据持久

数据持久是将内存中的数据转换为存储模型,以及存储模型转换为内存中的数据模型的统称。数据模型可以是任何数据结构或对象模型。存储模型可以使关系模型、XML、二进制流等。...但是如果修改了数据库参数要重新启动,或使用反推送更新内内存中的数据数据库的数据一致。 数据持久的基本操作有:保存、更新、删除、查询等。...Hibernate框架中数据持久机制: 在业务程序与数据库之间,Hibernate框架使用Session会话,来完成数据的提交、更新、删除、查询等等。...2、从数据库中查询数据 在查询数据之前,需要清理缓存(手动清理,或者通过配置文件框架自动清理)清理缓存的目的是为了使Session会话中的数据数据库中的数据保持一致。...总之,数据持久是解决程序与数据库之间交互访问的问题,使程序不直接访问数据库,而是直接访问Session会话,然后由Session会话与数据库“打交道”。

32010

在容器中部署mysql数据持久

通过上一节的学习,我们知道了如何部署一个不带数据库的静态nginx页面;但一般的web应用中,还需要部署mysql数据库,本节我们将学习如何使用容器部署mysql数据库。...02 mysql数据持久 对于容器数据库来说,一旦容器停止,容器中的数据就会消失,不利于数据存储,虽然我们可以通过定时commit的方法来保存容器中的数据,但我们有更好的实现方法。...使用-v共享存储 mysql默认的数据存储目录为/var/lib/mysql,我们可以通过宿主机共享容器/var/lib/mysql目录的方式来实现数据持久。...数据持久设置完成。...05 参考资料 1、MySQL 官方 Docker 镜像的使用,https://www.cnblogs.com/cfrost/p/6241892.html 2、自己学Docker:8.容器的持久,http

1.9K90

Redis数据持久

Redis持久 #1 持久方式 Redis提供了将数据定期自动持久至硬盘的能力,包括RDB和AOF两种方案,两种方案分别有其长处和短板,可以配合起来同时运行,确保数据的稳定性。...RDB 持久可以在指定的时间间隔内生成数据集的时间点快照 AOF 持久记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。...Redis 还可以在后台对 AOF 文件进行重写(rewrite),使得 AOF 文件的体积不会超出保存数据集状态所需的实际大小。 Redis 还可以同时使用 AOF 持久和 RDB 持久。...RDB持久和AOF持久的优点(既能够快速地生成重写文件,也能够在出现问题时,快速地载入数据)。...aof-use-rdb-preamble no #1.3 比较 RDB与AOF同时开启 默认先加载AOF的配置文件,因此需要根据具体情况使用,4.0+的可以使用RDB-AOF混合持久格式 #2

67030

redis 数据持久

Redis支持RDB和AOF两种持久机制,持久功能有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久的文件即可实现数据恢复。...RDB持久 RDB持久是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久过程分为手动触发和自动触发。...redis中,这是它可以做到数据持久的根本原因。...执行shutdown时,如果AOF持久没有开启,则自动执行bgsave。 配置文件中与RDB相关的配置如下: #以下三行是数据持久的策略,若要停止数据持久,只需将其都注释掉即可。...rdbchecksum yes AOF数据持久 相关参数如下: appendonly no # 默认关闭aof持久方式,将其设置为yes可以开启aof持久 默认redis使用的是rdb方式持久

52020

Redis数据持久

Redis 还可以在后台对 AOF 文件进行重写(rewrite),使得 AOF 文件的体积不会超出保存数据集状态所需的实际大小。Redis 还可以同时使用 AOF 持久和 RDB 持久。...你甚至可以关闭持久功能,让数据只在服务器运行时存在。 1.2 RDB 持久 RDB的优点 ⚔ RDB 是一个非常紧凑(compact)的文件,它保存了 Redis 在某个时间点上的数据集。...1.4 如何选择使用哪种持久方式 一般来说, 如果想达到足以媲美 PostgreSQL 的数据安全性, 你应该同时使用两种持久功能。...如果你非常关心你的数据, 但仍然可以承受数分钟以内的数据丢失, 那么你可以只使用 RDB 持久。...当 Redis 启动时, 如果 RDB 持久和 AOF 持久都被打开了, 那么程序会优先使用 AOF 文件来恢复数据集, 因为 AOF 文件所保存的数据通常是最完整的。

69110
领券