消息队列:SpringBoot集成RocketMQ的那些坑(真实有效、附源码)
技术不更新的坑
本着一颗爱自由、爱技术的心,不断在探索技术的路上前进,可是总是有一些坑是需要不断的去踩,去做一些改变来适应这个技术发展飞快的时代。
我用上了SpringBoot2.0+和JDK10。这都是比较新的技术,迟早要踩坑的。在升级了框架后,要更新使用的RocketMQ,那么问题就来了,各种问题层出不穷,好在我都一一解决了。值得高兴。
一、SpringBoot2.0+框架
首先你要有一个SpringBoot2.0+框架,这个框架已经出来很久了,如果你还没有用上那么你的技术确实需要更新了。
怎么下载使用这个框架,我在这里就不多说了,相信看到这个帖子的多少都是已经有了基础的。
二、RocketMQ代码
其实Apache官方,已经给我们提供了rocketmq-spring-boot-starter
给大家直接集成到SpringBoot框架中。
广泛给出的地址:rocketmq-spring-boot-starter详情
在这个页面,有几点特别需要说明。
三、Apache埋的坑
1、关于pom.xml文件的引用
如下图
<!--在pom.xml中添加依赖-->
<dependency><groupId>org.apache.rocketmq</groupId><artifactId>spring-boot-starter-rocketmq</artifactId><version>1.0.0-SNAPSHOT</version>
</dependency>
pom无法引用
因为这个Apache并没有把这份代码传到中央仓库。
也就是说这个地方是没有的。
这个时候,你如想要引这个包怎么办呢?需要自己打包,传到私服上去。
你需要先将这份代码下载下来。
在这个代码目录下执行打包操作:
~/Aliyun/rocketmq-externals/rocketmq-spring-boot-starter on master ⌚ 17:44:02
先执行:
mvn clean
再执行:
mvn package -Dmaven.test.skip=true
注意:坑
报错了:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project spring-boot-starter-rocketmq: Fatal error compiling: java.lang.ExceptionInInitializerError: com.sun.tools.javac.code.TypeTags -> [Help 1]
看下自己的Maven配的JDK的版本;(我的是JDK10)
$ mvn -v
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T15:58:13+08:00)
Maven home: /Users/wangdong/Develop/Maven/apache-maven-3.5.2
Java version: 10.0.2, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home
Default locale: en_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.13.6", arch: "x86_64", family: "mac"
回去把Pom改一下,把框架升到2.0+重新打包,jdk建议暂时先不改。最小的改动,能够成功就好了,免得出现其他的问题。
打包成功,发到私服。
然后再在项目中引用你自己私服的项目。
<!-- RocketMQ止--><!--在pom.xml中添加依赖--><dependency><groupId>org.apache.rocketmq</groupId><artifactId>spring-boot-starter-rocketmq</artifactId><version>1.0.0</version></dependency><!--下面建议也引用,不然会出现各种问题--><!-- https://mvnrepository.com/artifact/org.springframework/spring-messaging --><dependency><groupId>org.springframework</groupId><artifactId>spring-messaging</artifactId><version>5.0.8.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.rocketmq/rocketmq-client --><dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version>4.2.0</version><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId></exclusion></exclusions></dependency><!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.6</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-configuration-processor --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><version>2.0.4.RELEASE</version></dependency><!-- RocketMQ止-->
2、关于spring.rocketmq.name-server
的坑
看下图:
注意:
如果你是SpringBoot2.0+的框架,或者是JDK10。
你需要将你自己的项目配置文件中的,spring.rocketmq.name-server
改成
spring.rocketmq.nameServer
。注意是nameServer
。
不然就会报各种稀奇古怪的bug。
3、关于启动报内存不足的错
在安装启动Name Server
和Broker
的时候,一定要修改配置文件,不然内存会爆炸。
Native memory allocation (mmap) failed to map 8589934592 bytes for committing reserved memory
将下面的配置文件根据你的需要改
我这里以前默认是Xms4g,都是g,我修改到m就行了。
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
四、下面提供源码
1.spring-boot-starter-rocketmq
rocketmq-externals项目下有spring-boot-starter-rocketmq
2.生产者
生产者源码:源码下载地址
3.消费者源码
消费者源码:源码下载地址
五、成功效果图
1、首先要确保Name Server
和Broker
是启动态
然后启动生产者,启动消费者,就可以之间互相发消息!
好啦。成功效果图,我下次继续更新!
祝大家都能成功!
消息队列:SpringBoot集成RocketMQ的那些坑(真实有效、附源码)相关推荐
- Springboot实战:Springboot+Netty优雅的创建websocket客户端 (附源码下载)
Springboot-cli 开发脚手架系列 Netty系列:Springboot+Netty优雅的创建websocket客户端 (附源码下载) 文章目录 Springboot-cli 开发脚手架系列 ...
- 利用SpringBoot和Vue实现前后端分离(附源码)
利用SpringBoot和Vue实现前后端分离(附源码) 引言: 本文主要分享了SpringBoot和Vue整合实现前后端分离,实现了简单的增删查改:包括:项目的搭建.后端的实现.前台的实现:(附源码 ...
- 炫酷,SpringBoot+Echarts实现用户访问地图可视化(附源码)
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 SpringBoot+Echarts用户访问地图可视化 意义 在常 ...
- Netty实战:Springboot+Netty+websocket优雅的高性能服务器 (附源码下载)
Springboot-cli 开发脚手架系列 Netty系列:Springboot+Netty优雅的开发websocket高性能服务器 文章目录 Springboot-cli 开发脚手架系列 前言 1 ...
- 基于SpringBoot + Vue的小程序商城项目(附源码),支持分销、团购、秒杀、优惠券。。。...
前些时候一直有粉丝让我分享带分销的商城项目,网上收集了一波,希望能帮到大家. 面向对象 该程序是企业在创立初期很好的技术基础框架,加快公司项目开发进度,当然也可以对现有的系统进行升级: 个人开发者也可 ...
- 一款SpringBoot轻量级物联网综合业务支撑平台,附源码
SpringBoot轻量级物联网综合业务支撑平台源码 开发语言 : JAVA 数据库 : MySQL 开发工具 : IDEA 源码类型:全开源免费分享,需要学习可私信. 一.系统概述: 物联网综合业务 ...
- 基于SpringBoot前后端分离的众筹系统(附源码)
基于SpringBoot前后端分离的众筹系统源码下载链接: https://download.csdn.net/download/weixin_47367099/85441573 一.运行步骤 1.环 ...
- vue项目中集成腾讯TIM即时通讯(附源码)
上图 前言 项目需要做个客服功能,用户端小程序,客服人员web端,于是用到了腾讯的tim 准备工作 在腾讯云官网上创建应用,获取到相应的SDKAppID和相应的秘钥信息 安装SDK (1) web项目 ...
- 基于 SpringBoot 开发的在线短链生成系统(附源码)
前言 分享一个基于 SpringBoot 开发的在线短链生成系统,在线短链接生成器. 完整项目源码在文章结尾处,大家自行下载即可~ 一.实现功能 1.将长链接转换成短链接,访问短链接时, 302重定向 ...
最新文章
- Python,OpenCV中的K均值聚类——K-Means Cluster
- python黑科技库:FuckIt.py,让你代码从此远离bug
- python控制台颜色输出以及字符串格式化输出
- 两个大功率肖特基二极管的V-A特性
- BOM 的 变量 (技术, 生产, 销售, 计划)
- linux集成开发环境
- 盘点那些让程序员目瞪口呆的Bug都有什么?
- Python运算符与编码
- linux文件替换命令sed使用
- 光彩集团小宇智能机器人_“智能急救教学机器人”走进文惠小学集团总部文韬校区...
- 大数据时代的回收生意经(淼一专访)
- CentOS7安装Portainer实现docker可视化操作
- JPA Example查询
- LinuxCentOS 7镜像下载
- TikTok运营,TikTok数据分析
- Tivoli Storage Manager[转]
- gantt(甘特)图
- 算法(arithmetic)
- MyEclipse10 激活
- 项目开发中之如何对接