技术不更新的坑

本着一颗爱自由、爱技术的心,不断在探索技术的路上前进,可是总是有一些坑是需要不断的去踩,去做一些改变来适应这个技术发展飞快的时代。
我用上了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 ServerBroker的时候,一定要修改配置文件,不然内存会爆炸。

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 ServerBroker是启动态

然后启动生产者,启动消费者,就可以之间互相发消息!

好啦。成功效果图,我下次继续更新!
祝大家都能成功!

消息队列:SpringBoot集成RocketMQ的那些坑(真实有效、附源码)相关推荐

  1. Springboot实战:Springboot+Netty优雅的创建websocket客户端 (附源码下载)

    Springboot-cli 开发脚手架系列 Netty系列:Springboot+Netty优雅的创建websocket客户端 (附源码下载) 文章目录 Springboot-cli 开发脚手架系列 ...

  2. 利用SpringBoot和Vue实现前后端分离(附源码)

    利用SpringBoot和Vue实现前后端分离(附源码) 引言: 本文主要分享了SpringBoot和Vue整合实现前后端分离,实现了简单的增删查改:包括:项目的搭建.后端的实现.前台的实现:(附源码 ...

  3. 炫酷,SpringBoot+Echarts实现用户访问地图可视化(附源码)

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 SpringBoot+Echarts用户访问地图可视化 意义 在常 ...

  4. Netty实战:Springboot+Netty+websocket优雅的高性能服务器 (附源码下载)

    Springboot-cli 开发脚手架系列 Netty系列:Springboot+Netty优雅的开发websocket高性能服务器 文章目录 Springboot-cli 开发脚手架系列 前言 1 ...

  5. 基于SpringBoot + Vue的小程序商城项目(附源码),支持分销、团购、秒杀、优惠券。。。...

    前些时候一直有粉丝让我分享带分销的商城项目,网上收集了一波,希望能帮到大家. 面向对象 该程序是企业在创立初期很好的技术基础框架,加快公司项目开发进度,当然也可以对现有的系统进行升级: 个人开发者也可 ...

  6. 一款SpringBoot轻量级物联网综合业务支撑平台,附源码

    SpringBoot轻量级物联网综合业务支撑平台源码 开发语言 : JAVA 数据库 : MySQL 开发工具 : IDEA 源码类型:全开源免费分享,需要学习可私信. 一.系统概述: 物联网综合业务 ...

  7. 基于SpringBoot前后端分离的众筹系统(附源码)

    基于SpringBoot前后端分离的众筹系统源码下载链接: https://download.csdn.net/download/weixin_47367099/85441573 一.运行步骤 1.环 ...

  8. vue项目中集成腾讯TIM即时通讯(附源码)

    上图 前言 项目需要做个客服功能,用户端小程序,客服人员web端,于是用到了腾讯的tim 准备工作 在腾讯云官网上创建应用,获取到相应的SDKAppID和相应的秘钥信息 安装SDK (1) web项目 ...

  9. 基于 SpringBoot 开发的在线短链生成系统(附源码)

    前言 分享一个基于 SpringBoot 开发的在线短链生成系统,在线短链接生成器. 完整项目源码在文章结尾处,大家自行下载即可~ 一.实现功能 1.将长链接转换成短链接,访问短链接时, 302重定向 ...

最新文章

  1. Python,OpenCV中的K均值聚类——K-Means Cluster
  2. python黑科技库:FuckIt.py,让你代码从此远离bug
  3. python控制台颜色输出以及字符串格式化输出
  4. 两个大功率肖特基二极管的V-A特性
  5. BOM 的 变量 (技术, 生产, 销售, 计划)
  6. linux集成开发环境
  7. 盘点那些让程序员目瞪口呆的Bug都有什么?
  8. Python运算符与编码
  9. linux文件替换命令sed使用
  10. 光彩集团小宇智能机器人_“智能急救教学机器人”走进文惠小学集团总部文韬校区...
  11. 大数据时代的回收生意经(淼一专访)
  12. CentOS7安装Portainer实现docker可视化操作
  13. JPA Example查询
  14. LinuxCentOS 7镜像下载
  15. TikTok运营,TikTok数据分析
  16. Tivoli Storage Manager[转]
  17. gantt(甘特)图
  18. 算法(arithmetic)
  19. MyEclipse10 激活
  20. 项目开发中之如何对接

热门文章

  1. 蓝牙硬件设备没有链接到计算机,电脑连接蓝牙却搜索不到蓝牙设备怎么办
  2. Eth-Trunk技术原理与配置
  3. 冰河浅析 - 揭开***的神秘面纱(下)
  4. mysql主键可以重复吗_mysql 处理主键重复
  5. 【AutoSAR】【MCAL】PWM
  6. 计算机网络-自顶向下方法 第三章课后习题答案(第七版)
  7. 让你的「文件传输助手」歇一歇吧,你完全有更实用的备忘录工具选择
  8. 魅族便签,能否成为国内便签应用的No.1?
  9. 阿里云学生白嫖的服务器有什么用处?
  10. 十款浏览器插件,让你拥有更好的浏览器体验