仿制网站侵权行为,效果图网址大全,农村网站建设的意义,东莞如何建设网站制作平台说明#xff1a;RocketMQ与RabbitMQ一样#xff0c;是分布式架构中的一个组件#xff0c;用来解决微服务之间的异步调用。同类的还有两个#xff0c;各自的特点如下#xff1a; Rocket结构
服务启动时 发送消息时 其中各个部分的功能如下#xff1a;
#xff08;1RocketMQ与RabbitMQ一样是分布式架构中的一个组件用来解决微服务之间的异步调用。同类的还有两个各自的特点如下 Rocket结构
服务启动时 发送消息时 其中各个部分的功能如下
1生产者 发送消息到MQ中的某个Topic 多个相同的消息发送吴福气可以构成一个生产者集群 在消息生产者集群中可以实现事务补偿
2消费者 监听MQ中的某个Topic中的消息 一个Topic可以被多个消费者监听 多个消息消费者如果监听了同一个Topic可以构成一个消费者集群
3消息服务器
接收消息、提供消息、消息持久化、过滤消息
4命名服务器 管理Broker服务器 生产者发送消息要连接到命名服务器 消费者接收消息要连接到命名服务器
安装
第一步下载
首先去官网上下载安装包我这里下载最新的5.1.3版本 第二步解压
安装完成后复制到云服务器上部署启动解压
unzip 压缩包名第三步修改配置
解压完成后进入到bin目录修改这两个文件中的JAVA_OPT值改小一点避免启动失败
文件1
vim runserver.sh文件2
vim runbroker.sh文件3
修改conf/broker.conf文件添加这行配置brokerRole ASYNC_MASTER表示将该broker设置为异步主节点我当前的版本默认已添加可跳过
vim ../conf/broker.conf启动
进入bin目录先启动命名服务再启动broker服务
./mqnamesrv尴尬云服务器空间不够还是换虚拟机吧 命名服务启动成功 此时另外开一个会话进入到bin目录启动broker服务指定端口为9876
./mqbroker -n localhost:9876broker服务启动成功 注如果出现权限不够可以输入下面的命令将rocketmq文件夹权限设置为777
chmod -R 777 rocketmq文件夹目录使用
简单创建两个模块一个消费者一个生产者同属于一个父模块父模块的依赖如下
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.hzy/groupIdartifactIdessay-rocketmq/artifactIdpackagingpom/packagingversion1.0-SNAPSHOT/versionmodulesmoduleconsumer/modulemoduleproducer/module/modulespropertiesmaven.compiler.source11/maven.compiler.sourcemaven.compiler.target11/maven.compiler.targetspring-boot.version2.3.12.RELEASE/spring-boot.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependency!--rocket的依赖--dependencygroupIdorg.apache.rocketmq/groupIdartifactIdrocketmq-spring-boot-starter/artifactIdversion2.0.4/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scopeexclusionsexclusiongroupIdorg.junit.vintage/groupIdartifactIdjunit-vintage-engine/artifactId/exclusion/exclusions/dependency/dependenciesdependencyManagementdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion${spring-boot.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementbuildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.8.1/versionconfigurationsource1.8/sourcetarget1.8/targetencodingUTF-8/encoding/configuration/pluginplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdversion${spring-boot.version}/versionconfigurationmainClasscom.hzy.springbootrocketmq.SpringbootRocketmqApplication/mainClassskiptrue/skip/configurationexecutionsexecutionidrepackage/idgoalsgoalrepackage/goal/goals/execution/executions/plugin/plugins/build
/project消费者consumer配置文件
server:port: 8081
# 配置RocketMQ命名服务器地址
rocketmq:name-server: 192.168.101.65:9876生产者producer配置文件需要设置一个producer.group
server:port: 8082
# 配置RocketMQ命名服务器地址
rocketmq:name-server: 192.168.101.65:9876producer:group: groupA下面在生产者的测试类里面发送消息看消费者那边能不能接收到
生产者代码
SpringBootTest
public class RocketTest {Autowiredprivate RocketMQTemplate rocketMQTemplate;Testpublic void simpleTest(){rocketMQTemplate.syncSend(simple,hello rocketmq!);}
}消费者代码创建一个监听器类如下
Component
RocketMQMessageListener(consumerGroup groupA, topic simple)
public class ConsumerListener implements RocketMQListenerString {Overridepublic void onMessage(String s) {System.out.println(s s);}
}启动消费者再启动这个测试类查看结果
发送完成 成功接收