首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >消息中间件RabbitMQ系列,利用代码将数据放到队列里面,使用直连模式,实现发送者(三)

消息中间件RabbitMQ系列,利用代码将数据放到队列里面,使用直连模式,实现发送者(三)

作者头像
一写代码就开心
发布2020-11-20 14:25:15
6760
发布2020-11-20 14:25:15
举报
文章被收录于专栏:java和pythonjava和python

之前已经讲解了如何安装这个软件,还有就是对管理界面的解释。现在我们上手使用一下这个软件吧。

回顾AMQP

之前我们已经讲过,这个rabbitmq软件就是基于这个AMQP协议的。

这个协议也是基于生产者和消费者模型的。

rabbitmq使用的图解

在这里插入图片描述
在这里插入图片描述

rabbitmq软件里面有虚拟主机 Virtual Host ,这个虚拟主机的意思就是和数据库一样,每一个数据库里面的东西属于哪个项目,这个可以区分。

所以现在我们有很多的项目都可以访问这一个rabbitmq软件,每一个项目就可以根据这个虚拟主机找到和自己相关的信息。

以后就是一个项目访问一个虚拟主机。每一个虚拟主机都要绑定一个用户,就是不同的用户访问不同的虚拟主机。

以后我们创建了虚拟主机,创建了用户,要将这两个进行绑定。

第一个rabbitmq的项目?

1 创建一个maven项目,里面导入依赖

在这里插入图片描述
在这里插入图片描述
   <dependency>
          <groupId>com.rabbitmq</groupId>
          <artifactId>amqp-client</artifactId>
          <version>5.7.3</version>
      </dependency>

不管是消费者还是提供者项目,都只需要有这个依赖就可以和rabbitmq软件打交道了

2 在web管理的界面上面建立一个虚拟主机

在这里插入图片描述
在这里插入图片描述

点击了以上的按钮,就进入了创建虚拟主机的页面

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

以上就是创建了一个虚拟主机

我们再创建一个用户,让这个用户和这个虚拟主机进行绑定

在这里插入图片描述
在这里插入图片描述

以上步骤就是创建了一个用户,创建完成之后的界面是

在这里插入图片描述
在这里插入图片描述

之后给这个admin用户绑定虚拟主机,点击进去这个admin用户的详情

在这里插入图片描述
在这里插入图片描述

以上就是我们已经给这个admin用户创建了这个权限。

在这里插入图片描述
在这里插入图片描述

3 开发生产者子项目

前面已经在rabbitmq软件里面创建了新用户和虚拟主机,并且也进行了绑定。现在开始开发提供者项目。这个服务端的项目是要发消息 的,那么以什么模型进行发呢?rabbitmq提供了很多发消息的模型,现在开始先讲第一种,直连模型

直连模型

这个模型意思是,提供给你一个服务端,一个队列,一个消费者

在这里插入图片描述
在这里插入图片描述
代码实现发送者

之前已经导入了rabbitmq的依赖,现在直接创建一个java类,这个类里面需要做的就是用rabbitmq依赖里面的一个工厂类创建工厂对象,之后利用这个工厂对象就可以连接这个rabbitmq的软件了,就可以操作这个软件了。

因为这个先讲直连模式,就是只有队列,里面没有交换机的形式,所以我们在代码里面就不需要写和交换机相关的代码。

在这里插入图片描述
在这里插入图片描述
public class provider {
    @Test
    public void SendMessage() throws IOException, TimeoutException {
//        创建连接mq的连接工厂对象,这个是依赖里面的类,我们只需要拿过来创建对象就可以了
        ConnectionFactory connectionFactory = new ConnectionFactory();
//        设置连接rabbitmq的ip
        connectionFactory.setHost("192.168.40.145");
//        设置端口号
        connectionFactory.setPort(5672);
//        设置连接的虚拟的主机
        connectionFactory.setVirtualHost("/ems");
//        设置访问虚拟主机的用户名和密码
        connectionFactory.setUsername("ems");
        connectionFactory.setPassword("123");
//        获取连接对象
        Connection connection = connectionFactory.newConnection();
//        创建通道
        Channel channel = connection.createChannel();
//        让通道和消息队列进行绑定
        channel.queueDeclare("hello",false,false,false,null);
        channel.basicPublish("","hello",null,"hello jing".getBytes());
        channel.close();
        connection.close();

    }
}

运行以上的代码之后,我们看控制台

在这里插入图片描述
在这里插入图片描述

以上是执行成功,这个执行完之后,意思就是已经利用代码 将消息发送到rabbitmq软件里面了,我们从rabbitmq软件的控制台里面看看有没有

在这里插入图片描述
在这里插入图片描述

以上的意思就是

在虚拟主机ems里面,有一个hello的队列

在这里插入图片描述
在这里插入图片描述

这个队列里面有一个消息,没有被消费了,我们再执行一次代码,看这个队列里面的变化

在这里插入图片描述
在这里插入图片描述

看,变为了2,说明这个hello的队列里面有2个消息还没有被消费。

这个管理界面有一个自动刷新的按钮

在这里插入图片描述
在这里插入图片描述

以上的工作 ,就是在队列里面已经利用代码放数据了。

之后,我们看看如何利用代码从队列里面拿数据

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-10-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 回顾AMQP
  • rabbitmq使用的图解
  • 第一个rabbitmq的项目?
    • 1 创建一个maven项目,里面导入依赖
      • 2 在web管理的界面上面建立一个虚拟主机
        • 3 开发生产者子项目
        相关产品与服务
        轻量应用服务器
        轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门开源软件打包实现一键构建应用,提供极简上云体验。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档