当前位置: 首页 > news >正文

淘宝网页制作教程seo高级优化方法

淘宝网页制作教程,seo高级优化方法,如何建设远程教育网站,政府网站建设交流文章目录 1、RabbitMQ是什么2、Dokcer安装RabbitMQ2.1安装Dokcer2.2安装rabbitmq 3、RabbitMQ入门案例 - Simple 简单模式4、RabbitMQ的核心组成部分4.1 RabbitMQ整体架构4.2RabbitMQ的运行流程 5、RabbitMQ的模式5.1 发布订阅模式--fanout 1、RabbitMQ是什么 RabbitMQ是一个开…

文章目录

    • 1、RabbitMQ是什么
    • 2、Dokcer安装RabbitMQ
      • 2.1安装Dokcer
      • 2.2安装rabbitmq
    • 3、RabbitMQ入门案例 - Simple 简单模式
    • 4、RabbitMQ的核心组成部分
      • 4.1 RabbitMQ整体架构
      • 4.2RabbitMQ的运行流程
    • 5、RabbitMQ的模式
      • 5.1 发布订阅模式--fanout

1、RabbitMQ是什么

RabbitMQ是一个开源的遵循AMQP协议实现的基于Erlang语言编写,支持多种客户端(语言)。用于在分布式系统中存储消息,转发消息,具有高可用高可扩性易用性等特征。

2、Dokcer安装RabbitMQ

2.1安装Dokcer

  1. yum 包更新到最新
> yum update
  1. 安装软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
> yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 设置yum源为阿里云
> yum-config-manager --add-repo
> http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 安装docker
> yum install docker-ce-y
  1. 安装后查看docker版本
> docker-v
  1. 安装加速镜像

从阿里云获取镜像加速器:
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://spukdfwp.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docke

2.2安装rabbitmq

  1. 路径:https://www.rabbitmq.com/download.html

在这里插入图片描述

  1. 点击上图中标红线的 community Docker
    image,跳转到如下地址:https://registry.hub.docker.com/_/rabbitmq/

当前可以看到安装镜像的时候可以设置用户名,密码,ip。就不用安装完进入容器内部设置
在这里插入图片描述
3. 官网给的安装案例

$ docker run -d --hostname my-rabbit --name some-rabbit -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password rabbitmq:3-management

4.命令讲解

docker run -id --hostname my-rabbit --name=myrabbit -p 15672:15672 rabbitmq:3-management--hostname:指定容器主机名称
--name:指定容器名称
-p:将mq端口号映射到本地
-e 设置

5.修改命令创建并安装

docker run -di  --name myrabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:3-management

6.阿里云开放上方命令 设置的端口号

-p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883

在这里插入图片描述

7.安装成功

[root@iZbp1av1izm1qqcdfa0nndZ ~]# docker images
REPOSITORY   TAG            IMAGE ID       CREATED        SIZE
rabbitmq     3-management   6c3c2a225947   7 months ago   253MB
[root@iZbp1av1izm1qqcdfa0nndZ ~]# docker ps
CONTAINER ID   IMAGE                   COMMAND                  CREATED         STATUS         PORTS                                                                                                                                                                                                                                                                               NAMES
1de1f1e10cb0   rabbitmq:3-management   "docker-entrypoint.s…"   6 minutes ago   Up 6 minutes   4369/tcp, 0.0.0.0:1883->1883/tcp, :::1883->1883/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, :::5672->5672/tcp, 15671/tcp, 0.0.0.0:15672->15672/tcp, :::15672->15672/tcp, 0.0.0.0:25672->25672/tcp, :::25672->25672/tcp, 0.0.0.0:61613->61613/tcp, :::61613->61613/tcp, 15691-15692/tcp   myrabbit
[root@iZbp1av1izm1qqcdfa0nndZ ~]#

8.停掉手动安装的rabbimq

systemctl stop rabbitmq-server

9.启动docker的rabbitmq容器

##查看容器
[root@iZbp1av1izm1qqcdfa0nndZ ~]# docker ps
CONTAINER ID   IMAGE                   COMMAND                  CREATED         STATUS         PORTS                                                                                                                                                                                                                                                                               NAMES
1de1f1e10cb0   rabbitmq:3-management   "docker-entrypoint.s…"   9 minutes ago   Up 9 minutes   4369/tcp, 0.0.0.0:1883->1883/tcp, :::1883->1883/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, :::5672->5672/tcp, 15671/tcp, 0.0.0.0:15672->15672/tcp, :::15672->15672/tcp, 0.0.0.0:25672->25672/tcp, :::25672->25672/tcp, 0.0.0.0:61613->61613/tcp, :::61613->61613/tcp, 15691-15692/tcp   myrabbit
##启动容器 docker start 容器id(CONTAINER ID)
[root@iZbp1av1izm1qqcdfa0nndZ ~]# docker start 1de1f1e10cb0
1de1f1e10cb0
[root@iZbp1av1izm1qqcdfa0nndZ ~]#

10.通过服务器(虚拟机ip+端口号(15672))访问RabbitMQ主页http://192.168.157.128:15672

默认登录账号和密码都是admin
在这里插入图片描述

并且在admin账号下可以通过增加用户,给用户不同角色,也就对应不同的操作权限:
在这里插入图片描述
详情如下:
在这里插入图片描述

3、RabbitMQ入门案例 - Simple 简单模式

1.实现步骤:

1:jdk1.8
2:构建一个maven工程
3:导入rabbitmq的maven依赖
4:启动rabbitmq-server服务
5:定义生产者
6:定义消费者
7:观察消息的在rabbitmq-server服务中的过程

2.构建一个maven工程
在这里插入图片描述
3.导入rabbitmq的maven依赖

<dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>5.10.0</version>
</dependency><dependency><groupId>org.springframework.amqp</groupId><artifactId>spring-amqp</artifactId><version>2.2.5.RELEASE</version>
</dependency>
<dependency><groupId>org.springframework.amqp</groupId><artifactId>spring-rabbit</artifactId><version>2.2.5.RELEASE</version>
</dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

4.启动rabbitmq-server服务

systemctl start rabbitmq-server
或者
docker start myrabbit

5、定义生产者

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
public class Producer {public static void main(String[] args) {// 1: 创建连接工厂ConnectionFactory connectionFactory = new ConnectionFactory();// 2: 设置连接属性connectionFactory.setHost("192.168.157.128");connectionFactory.setPort(5672);connectionFactory.setVirtualHost("/");connectionFactory.setUsername("admin");connectionFactory.setPassword("admin");Connection connection = null;Channel channel = null;try {// 3: 从连接工厂中获取连接connection = connectionFactory.newConnection("生产者");// 4: 从连接中获取通道channelchannel = connection.createChannel();// 5: 申明队列queue存储消息/**  如果队列不存在,则会创建*  Rabbitmq不允许创建两个相同的队列名称,否则会报错。**  @params1: queue 队列的名称*  @params2: durable 队列是否持久化*  @params3: exclusive 是否排他,即是否私有的,如果为true,会对当前队列加锁,其他的通道不能访问,并且连接自动关闭*  @params4: autoDelete 是否自动删除,当最后一个消费者断开连接之后是否自动删除消息。*  @params5: arguments 可以设置队列附加参数,设置队列的有效期,消息的最大长度,队列的消息生命周期等等。* */channel.queueDeclare("queue1", false, false, true, null);// 6: 准备发送消息的内容String message = "你好,学相伴!!!";// 7: 发送消息给中间件rabbitmq-server// @params1: 交换机exchange// @params2: 队列名称/routing// @params3: 属性配置// @params4: 发送消息的内容channel.basicPublish("", "queue1", null, message.getBytes());System.out.println("消息发送成功!");} catch (Exception ex) {ex.printStackTrace();System.out.println("发送消息出现异常...");} finally {// 7: 释放连接关闭通道if (channel != null && channel.isOpen()) {try {channel.close();} catch (Exception ex) {ex.printStackTrace();}}// 8: 关闭连接if (connection != null) {try {connection.close();} catch (Exception ex) {ex.printStackTrace();}}}}
}

1:执行发送,这个时候可以在web控制台查看到这个队列queue的信息

在这里插入图片描述

2:我们可以进行对队列的消息进行预览和测试如下:

在这里插入图片描述

3:进行预览和获取消息进行测试

在这里插入图片描述

NACK 只是做消息预览,不会吧消息从队列移除
ACK相当于手动的把消息处理了,这个时候就会把消息从队列剔除,导致消息丢失

6、定义消费者

import com.rabbitmq.client.*;import java.io.IOException;public class Consumer {public static void main(String[] args) {// 所有的中间件技术都是基于tcp/ip协议基础上构建新型协议规范,只不过rabbitmq遵循的是amqp// ip port// 1: 创建连接工厂ConnectionFactory connectionFactory = new ConnectionFactory();// 2: 设置连接属性connectionFactory.setHost("192.168.157.128");connectionFactory.setPort(5672);connectionFactory.setVirtualHost("/");connectionFactory.setUsername("admin");connectionFactory.setPassword("admin");Connection connection = null;Channel channel = null;try {// 3: 从连接工厂中获取连接connection = connectionFactory.newConnection("消费者");// 4: 从连接中获取通道channelchannel = connection.createChannel();channel.basicConsume("queue1", true, new DeliverCallback() {public void handle(String consumerTag, Delivery message) throws IOException {System.out.println("收到的消息是:" + new String(message.getBody(), "UTF-8"));}}, new CancelCallback() {public void handle(String s) throws IOException {System.out.println("接收失败了。。。");}});System.out.println("开始接收消息");System.in.read();}catch (Exception e){e.printStackTrace();System.out.println("发送消息出现异常...");}finally {// 7: 释放连接关闭通道if (channel != null && channel.isOpen()) {try {channel.close();} catch (Exception ex) {ex.printStackTrace();}}if (connection != null) {try {connection.close();} catch (Exception ex) {ex.printStackTrace();}}}}
}

消费者和生产者的区别在于,消费者是从mq中取消息,而生产者是从mq中存消息
在这里插入图片描述

4、RabbitMQ的核心组成部分

在这里插入图片描述
核心概念:

  1. Server:又称Broker ,接受客户端的连接,实现AMQP实体服务。 安装rabbitmq-server
  2. Connection:连接,应用程序与Broker的网络连接 TCP/IP/ 三次握手和四次挥手
  3. Channel:网络信道,几乎所有的操作都在Channel中进行,Channel是进行消息读写的通道,客户端可以建立对各Channel,每个Channel代表一个会话任务。
  4. Message:消息:服务与应用程序之间传送的数据,由Properties和body组成,Properties可是对消息进行修饰,比如消息的优先级,延迟等高级特性,Body则就是消息体的内容。
  5. Virtual Host 虚拟地址,用于进行逻辑隔离,最上层的消息路由,一个虚拟主机理由可以有若干个Exhange和Queueu,同一个虚拟主机里面不能有相同名字的Exchange
  6. Exchange:交换机,接受消息,根据路由键发送消息到绑定的队列。(不具备消息存储的能力)
  7. Bindings:Exchange和Queue之间的虚拟连接,binding中可以保护多个routing key.
  8. Routing key:是一个路由规则,虚拟机可以用它来确定如何路由一个特定消息。
  9. Queue:队列:也成为Message Queue,消息队列,保存消息并将它们转发给消费者。

4.1 RabbitMQ整体架构

在这里插入图片描述

4.2RabbitMQ的运行流程

在这里插入图片描述

所以发送消息的时候没有设置交换机,rabbitmq发送消息一定会有默认一个交换机,并且消息不是直接到队列当中的,而是由交换机根据路由键发送消息到绑定的队列

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

5、RabbitMQ的模式

5.1 发布订阅模式–fanout

特点:Fanout—发布与订阅模式,是一种广播机制,它是没有路由key的模式。

也就是只要生产者发送一条消息经过交换机加入队列中,左右的消费者都能拿到消息

在这里插入图片描述
这里就直接用web界面演示

  1. 新建一个fanout模式的交换机(让交换机代替生产者去发消息)
    在这里插入图片描述
    在这里插入图片描述

  2. 创建3个消息队列q1、q2、q3
    在这里插入图片描述

  3. 将队列绑定到交换机上
    在这里插入图片描述

  4. 由交换机代替生产者发送消息
    在这里插入图片描述

  5. 然后三个队列都会有一个交换机发来的消息
    在这里插入图片描述

  6. q1队列消息正常被消费者拾取(其他队列一样)
    在这里插入图片描述

  7. q1队列消息正常被消费者拾取之后,队列消息-1
    ACK后 页面在自动会更新队列消息条目,默认5秒
    在这里插入图片描述

在这里插入图片描述

更新中------
参考来自:狂神


文章转载自:
http://aminotriazole.rkdw.cn
http://undermeaning.rkdw.cn
http://arrhizal.rkdw.cn
http://incross.rkdw.cn
http://snore.rkdw.cn
http://corrodent.rkdw.cn
http://aal.rkdw.cn
http://nudity.rkdw.cn
http://disruptive.rkdw.cn
http://barefoot.rkdw.cn
http://friarbird.rkdw.cn
http://rushwork.rkdw.cn
http://gallup.rkdw.cn
http://bistoury.rkdw.cn
http://gee.rkdw.cn
http://kartell.rkdw.cn
http://nisroch.rkdw.cn
http://soliflucted.rkdw.cn
http://slavish.rkdw.cn
http://touse.rkdw.cn
http://unwonted.rkdw.cn
http://ots.rkdw.cn
http://amidogroup.rkdw.cn
http://scorpaenoid.rkdw.cn
http://zoosporangium.rkdw.cn
http://canulate.rkdw.cn
http://phratry.rkdw.cn
http://caddo.rkdw.cn
http://amputate.rkdw.cn
http://geocide.rkdw.cn
http://cockamamie.rkdw.cn
http://barreled.rkdw.cn
http://larmoyant.rkdw.cn
http://souslik.rkdw.cn
http://elmy.rkdw.cn
http://ragout.rkdw.cn
http://detract.rkdw.cn
http://serotoninergic.rkdw.cn
http://subcategory.rkdw.cn
http://retroact.rkdw.cn
http://asturias.rkdw.cn
http://nsa.rkdw.cn
http://comus.rkdw.cn
http://reprogram.rkdw.cn
http://preadamite.rkdw.cn
http://methoxide.rkdw.cn
http://swashbuckle.rkdw.cn
http://standpatter.rkdw.cn
http://eclamptic.rkdw.cn
http://grewsome.rkdw.cn
http://typographical.rkdw.cn
http://increate.rkdw.cn
http://ultrathin.rkdw.cn
http://commuter.rkdw.cn
http://stickjaw.rkdw.cn
http://proudly.rkdw.cn
http://heptaglot.rkdw.cn
http://charily.rkdw.cn
http://demurrer.rkdw.cn
http://fiscality.rkdw.cn
http://anthology.rkdw.cn
http://lamella.rkdw.cn
http://isoteniscope.rkdw.cn
http://cinquecentist.rkdw.cn
http://delator.rkdw.cn
http://radicate.rkdw.cn
http://letitia.rkdw.cn
http://polyhedra.rkdw.cn
http://underpeopled.rkdw.cn
http://secernent.rkdw.cn
http://theological.rkdw.cn
http://bronchiole.rkdw.cn
http://misspeak.rkdw.cn
http://dovishness.rkdw.cn
http://meatman.rkdw.cn
http://telemicroscope.rkdw.cn
http://scuttle.rkdw.cn
http://criminalist.rkdw.cn
http://blessed.rkdw.cn
http://liaoning.rkdw.cn
http://unsalted.rkdw.cn
http://globalist.rkdw.cn
http://hijaz.rkdw.cn
http://pamirs.rkdw.cn
http://balladeer.rkdw.cn
http://surveyor.rkdw.cn
http://muscologist.rkdw.cn
http://megadyne.rkdw.cn
http://rigamarole.rkdw.cn
http://infimum.rkdw.cn
http://seventy.rkdw.cn
http://abaptiston.rkdw.cn
http://sialadenitis.rkdw.cn
http://upstairs.rkdw.cn
http://esthesia.rkdw.cn
http://getup.rkdw.cn
http://buqsha.rkdw.cn
http://capsid.rkdw.cn
http://sayonara.rkdw.cn
http://chirp.rkdw.cn
http://www.hrbkazy.com/news/90971.html

相关文章:

  • 免费独立站自建站平台长沙关键词优化服务
  • 网站管理助手+建设中如何做网站平台
  • 公司网站的设计方案seo自然优化排名技巧
  • 独立网站做外贸北京网站优化技术
  • eclipse开发网站用vue做前端脱发严重是什么原因引起的
  • 海勃湾网站建设线下推广团队
  • 自然村 网站建设网页制作成品
  • 玩网页游戏的网站企业做推广有几种方式
  • 定制网站开发哪个好重庆百度小额贷款有限公司
  • 深圳建设网站推荐优化网站标题是什么意思
  • 定制网站建设公司产品策划推广方案
  • 政府门户网站建设的作用常州网站制作维护
  • 网站上传权限百度联盟是什么
  • 桐乡网站开发常德网站建设公司
  • 深圳正规网站制作哪里好温州网站建设开发
  • 飞鱼crm系统长春网站优化团队
  • 北京市住房和城乡建设部官方网站今日头条新闻最新事件
  • 公司定制网站建设公司淘宝seo优化怎么做
  • 誉重网站建设公司如何做网站设计
  • 在虚拟机中如何做二级域名网站单页网站设计
  • 太原金茂大厦做网站的海口网站关键词优化
  • 龙华做网站联系电话seo怎么推排名
  • 衢州网站开发南昌百度推广公司
  • 亚马逊跨境电商注册深圳谷歌优化seo
  • 杭州网站建设制作联系电话百度一下你就知道搜索引擎
  • 更改wordpress网站的url网络推广公司可不可靠
  • 朋友用我的vps做网站百度站长之家
  • 廊坊做网站关键词挖掘爱站网
  • 做衣服外单网站北京官方seo搜索引擎优化推荐
  • 做代刷网站赚钱不推广公司有哪些公司