精通消息中间件系列
文章平均质量分 90
涵盖Kafka、ActiveMQ、RabbitMQ、RocketMQ、ZeroMQ等消息中间件技术,助你从小白进阶为消息中间件专家
冰 河
这个作者很懒,什么都没留下…
展开
-
如何解决分布式场景下的数据一致性问题?今天冰河的分布式锁服务插件mykit-lock开源啦
分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。原创 2022-08-22 10:11:20 · 1761 阅读 · 4 评论 -
撸完Dubbo源码,冰河总结了这些阅读源码的技巧,赶快收藏
最近收到很多小伙伴的微信私聊消息,大部分都是在询问如何快速掌握一个框架的原理和源码,比如:Spring、Dubbo、MyBatis等。针对这个问题,周末我简单总结了下,今天,就为小伙伴们分享下我是如何利用不到一个月的业余时间(每天不到2小时)快速掌握Dubbo的原理和源码的。原创 2022-03-09 09:58:16 · 1069 阅读 · 3 评论 -
头条二面Kafka面经总结:搞懂Kafka的这个问题,你离大厂就不远了!!(建议收藏)
有些读者去头条二面,被面试官问了一个关于Kafka的问题:多个Kafka消费者如何同时消费相同Topic下的相同Partition的数据?看似一个简单的问题,竟然把这位读者问懵了!今天,我们一起来分析下这道面试题!原创 2021-07-22 08:31:35 · 5263 阅读 · 27 评论 -
跟你说了,你不听,怎么样?服务器“炸”了吧?
估计年前祭拜服务器不灵了,年后服务器总是或多或少的出现点问题。不知是人的问题,还是风水问题。昨天下班时,跟运维小伙伴交代了好几遍要扩大服务器磁盘空间,结果第二天不好的事情还是发生了!原创 2021-04-08 20:54:53 · 4571 阅读 · 31 评论 -
ActiveMQ之——遇到的问题和解决方法
1.先讲严重的:服务挂掉。这得从ActiveMQ的储存机制说起。在通常的情况下,非持久化消息是存储在内存中的,持久化消息是存储在文件中的,它们的最大限制在配置文件的<systemUsage>节点中配置。但是,在非持久化消息堆积到一定程度,内存告急的时候,ActiveMQ会将内存中的非持久化消息写入临时文件中,以腾出内存。虽然都保存到了文件里,但它和持久化消息的区别是,重启后持久化消...转载 2018-09-11 23:00:54 · 2408 阅读 · 0 评论 -
Spring之——spring4.3.3.x 与activemq-all5.14.0 jar冲突
在使用更新springjar包导4.3.3系统报错:Caused by: java.lang.NoSuchMethodError: org.springframework.core.serializer.support.DeserializingConverter.<init>(Ljava/lang/ClassLoader;)V at org.springframework.d...转载 2018-08-15 21:45:39 · 1619 阅读 · 0 评论 -
JMS之——ActiveMQ支持两种事务
ActiveMQ有支持两种事务,JMS transactions - the commit() / rollback() methods on a Session (which is like doing commit() / rollback() on a JDBC connection)XA Transactions - where the XASession acts as an原创 2017-07-17 15:55:32 · 2518 阅读 · 0 评论 -
JMS之——ActiveMQ 高可用与负载均衡集群安装、配置(ZooKeeper + LevelDB + Static discovery)
一、说明从 ActiveMQ 5.9 开始, ActiveMQ 的集群实现方式取消了传统的 Master-Slave 方式,增加了基于ZooKeeper + LevelDB 的 Master-Slave 实现方式,其他两种方式目录共享和数据库共享依然存在。三种集群方式的对比:1、基于共享文件系统(KahaDB, 默认) 2、基于 JDBC原创 2017-05-21 23:07:52 · 2921 阅读 · 0 评论 -
JMS之——ActiveMQ高可用集群安装、配置(基于ZooKeeper + LevelDB的伪集群)
ActiveMQ的单节点安装请参见博文《JMS之——ActiveMQ的安装与配置(单机版) 》1、 ActiveMQ 集群部署规划环境: CentOS 6.5 x64 、 JDK7版本: ActiveMQ 5.14.4ZooKeeper 集群环境: 192.168.50.132:2181,192.168.50.133:2182,192.168.50.134:2183(Z原创 2017-05-21 17:41:50 · 2345 阅读 · 0 评论 -
JMS之——ActiveMQ的安装与配置(单机版)
IP:192.168.50.132环境: CentOS 6.5、 JDK7 1、 安装 JDK 并配置环境变量(略)JAVA_HOME=/usr/local/java/jdk1.7.0_722、下载ActiveMQ下载 Linux 版的 ActiveMQ(当前最新版 apache-activemq-5.14.4-bin.tar.gz) 地址为:http://a原创 2017-05-10 22:58:01 · 2744 阅读 · 0 评论 -
JMS之——ActiveMQ高可用+负载均衡集群
一、高可用集群从ActiveMQ5.9开始,ActiveMQ的集群实现方式取消了传统的Master-Slave方式,增加了基于ZooKeeper+LevelDB的Master-Slave实现方式,其他两种方式目录共享和数据库共享方式依然存在.1、文件共享(KahaDB) 2、数据库共享 3、原创 2017-04-04 23:52:37 · 1963 阅读 · 0 评论 -
JMS之——ActiveMQ时抛出的错误Could not connect to broker URL-使用线程池解决高并发连接
解决使用activemq时抛出的异常:javax.j ms.JMSException: Could not connect to broker URL我使用的是spring jms和activemq结合,在配置文件中定义了普通的connectionFactory的bean,如下所示: JMS连接工厂 定义了上面的文件之后,在使用spring jms的JmsTe原创 2017-04-03 21:16:35 · 25081 阅读 · 0 评论 -
JMS之—— ActiveMQ中使用mysql做持久化报错:Cannot execute statement: impossible to write to binary log since BINL
一、问题ActiveMQ中如果使用MySQL innodb的同时,开启了binlog,那么在ack消息的时候,日志里就可会报错:Java.sql.SQLException: Cannot execute statement: binlogging impossible since BINLOG_FORMAT = STATEMENT and at least one table uses a原创 2017-04-03 21:06:48 · 2296 阅读 · 0 评论 -
JMS之——ActiveMQ启动时报锁定数据库的问题解决
原因是:activeMQ的broker在启动时会锁定数据库。我们每个人在调试时,自己的运行环境中就会运行一个broker,所以会出现争用锁的现象(如果只有一个人运行则不会出现这样的问题),报错如下:2017-04-03 16:21:13,481 | WARN | Could not create JDBC tables; they could already exist. Failure w原创 2017-04-03 20:51:34 · 3144 阅读 · 1 评论 -
JMS之——ActiveMQ消息持久化
之前的几篇博文中,我们实现的ActiveMQ消息未实现消息的持久化,一旦ActiveMQ服务重启则未发送的消息全部丢失,所以实现ActiveMQ消息的持久化也是很重要的。那么,这篇文章,我就带着大家一起来实现ActiveMQ消息的持久化。本博文主要是将ActiveMQ消息持久化到MySQL数据库。实现ActiveMQ消息的持久化主要是修改ActiveMQ conf目录下的activemq.xml文原创 2017-04-03 20:31:12 · 2242 阅读 · 0 评论 -
JMS之——Spring与ActiveMQ整合案例
在上一篇博文《JMS之——基于ActiveMQ实现简单的消息收发案例》中,我们实现了如何基于ActiveMQ实现消息的收发功能,在这篇文章中,我就带着大家一起实现Spring与ActiveMQ的整合。好了,我们直接进入主题吧。这篇博文,我们基于spring+JMS+ActiveMQ+Tomcat,做一个Spring4.1.0和ActiveMQ5.14.4整合实例,实现了Point-To-Point的异步队列消息和PUB/SUB(发布/订阅)模型,简单实例,不包含任何业务。原创 2017-04-03 19:22:39 · 1709 阅读 · 0 评论 -
JMS之——基于ActiveMQ实现简单的消息收发案例
在上一篇博文《JMS之——ActiveMQ的安装和启动》给大家讲解了如何安装和启动ActiveMQ以及简单的介绍了一下ActiveMQ应用场景,那么这篇文章就给大家介绍如何基于ActiveMQ实现简单的消息收发功能。要注意的是,开发时候,要将apache-activemq-5.14.4-bin.tar.gz解压缩后里面的activemq-all-5.14.4.jar包加入到classpath下面,原创 2017-04-03 18:43:22 · 2502 阅读 · 0 评论 -
JMS之——ActiveMQ的安装和启动
一、ActiveMQ简介在上一篇博文《JMS之——JMS简介》中,我们对JMS进行了一些简单介绍,那么,现在我就带着大家一起来实现ActiveMQ的安装和启动。同样,对ActiveMQ做一个简短的介绍,ActiveMQ是Apache的一款基于Java开发的开源的消息中间件。说起消息中间件,它在企业开发中,扮演着十分重要的角色,那么它能用来干什么呢?消息中间价又有那些用途和有点呢?消息中原创 2017-04-03 18:14:20 · 4745 阅读 · 0 评论 -
JMS之——JMS简介
jms即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。JMS(Java Messaging Service)是Java平台上有关面向消息中间件(MOM)的技原创 2017-04-03 17:34:22 · 1458 阅读 · 0 评论 -
【RocketMQ】通过 Docker 快速搭建 RocketMQ 环境,超简单!!(文末有福利)
写在前面最近小伙伴们比较活跃,想学习下如何通过Docker来快速搭建RocketMQ环境,这不,安排上了!!Docker搭建RocketMQ环境1. 安装 Namesrv拉取镜像docker pull rocketmqinc/rocketmq:4.4.0`启动容器docker run -d -p 9876:9876 -v {RmHome}/data/namesrv/logs:/root/logs -v {RmHome}/data/namesrv/store:/root/store --n原创 2020-07-22 13:26:03 · 1524 阅读 · 0 评论 -
RocketMQ之——单机环境搭建
今天,带来一篇搭建RocketMQ单机环境的文章,为后面的分布式事务专栏做准备。RocketMQ是阿里巴巴开源的一款高性能分布式消息中间件,有关RocketMQ的详细讲解,后面会单独开设一个RocketMQ专栏。这里,先简单介绍一下搭建RocketMQ的单机环境,为分布式事务的介绍做准备。接下来,进入主题。注意:我这里搭建RocketMQ环境的主机操作系统为:CentOS 6.8,IP地址为:...原创 2019-11-03 00:25:52 · 1467 阅读 · 1 评论