首页
学习
活动
专区
工具
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

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

    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。

    78630

    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。

    71030

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

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

    76910

    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.7K40

    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()) { //看该消息是否是持久订阅

    48710

    数据持久

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

    33810

    在容器中部署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

    68930

    redis 数据持久

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

    54320

    Redis数据持久

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

    71210

    Redis 数据持久

    Redis支持两种数据持久方式:RDB方式和AOF方式。前者会根据配置的规则定时将内存中的数据持久到硬盘上,后者则是在每次执行写命令之后将命令记录下来。...两种持久方式可以单独使用,但是通常会将两者结合使用。 一、持久 1.1、什么是持久 持久功能有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久的文件即可实现数据恢复。...1.2、持久方式 Redis支持RDB和AOF两种持久机制: RDB(快照方式): RDB方式是一种快照式的持久方法,将某一时刻的数据持久到磁盘中。...恢复数据的速度比RDB慢。 二、RDB持久触发机制 触发RDB持久过程分为手动触发和自动触发 2.1、手动触发 手动触发持久的操作有二个:save和bgsave。...1 save 300 10 save 60 10000 #bgsave持久失败,是否停止持久数据到磁盘,yes 表示停止持久,no 表示忽略错误继续写文件 stop-writes-on-bgsave-error

    60210
    领券