东莞清洁服务网站建设抓取式网站建设

news/2025/10/4 3:41:51/文章来源:
东莞清洁服务网站建设,抓取式网站建设,html图标代码大全,深圳网络服务有限公司一. MQ 简介 消息队列作为高并发系统的核心组件之一#xff0c;能够帮助业务系统结构提升开发效率和系统 稳定性#xff0c;消息队列主要具有以下特点#xff1a; 削峰填谷:主要解决瞬时写压力大于应用服务能力导致消息丢失、系统奔溃等问题系统解耦:解决不同重要程度、不…一. MQ 简介 消息队列作为高并发系统的核心组件之一能够帮助业务系统结构提升开发效率和系统 稳定性消息队列主要具有以下特点 削峰填谷:主要解决瞬时写压力大于应用服务能力导致消息丢失、系统奔溃等问题系统解耦:解决不同重要程度、不同能力级别系统之间依赖导致一死全死提升性能:当存在一对多调用时可以发一条消息给消息系统让消息系统通知相关系统蓄流压测:线上有些链路不好压测可以通过堆积一定量消息再放开来压测 目前主流的消息队列软件有 RabbitMQ、kafka、ActiveMQ、RocketMQ 等还有小众的 消息队列软件如 ZeroMQ、Apache Qpid 等。 二. RabbitMQ 2.1 RabbitMQ 简介 RabbitMQ 官网 阿里云消息队列产品 Message Queue 的需求由来已久在 19 世纪 80 年代金融交易中美国高盛等公 司采用 Teknekron 公司的产品当时的 Message queuing 软件叫做(the information busTIB,后来 TIB 被电信和通讯等公司采用然后路透社收购了 Teknekron 公 司再然后 IBM 公司开发了 MQSeries并且微软也开发了 Microsoft Message QueueMSMQ但是这些商业 MQ 供应商的问题是厂商锁定及使用价格高昂 于是 2001 年Java Message queuing 试图解决锁定和交互性的问题但对应用来 说反而更加麻烦了于是 2004 年摩根大通和 iMatrix 开始着手 Advanced Message Queuing Protocol AMQP开放标准的开发2006 年AMQP 规范发布2007 年Rabbit 技术公司基于 AMQP 标准开发的 RabbitMQ 1.0 发布。 路透社: (ReutersLSERTRNASDAQ: RTRSY)是世界上最早创办的通讯社之一也是目前英国最大的 通讯社和西方四大通讯社之一路透社是世界前三大的多媒体新闻通讯社提供各类新闻和金融 数据在128个国家运行。摩根大通集团: 业界称西摩或小摩总部位于美国纽约总资产2.5万亿美元总存款1.5万亿美 元占美国存款总额的25%分行6000多家是美国最大金融服务机构之一。iMatrix: 是一个企业级的JAVA快速开发平台。RabbitMQ 采用 Erlang 语言开发Erlang 语言由 Ericson 设计Erlang 在分布式编 程和故障恢复方面表现出色电信领域被广泛使用。 2.2 RabbitMQ 组件介绍 Broker: 接收和分发消息的应用RabbitMQ Server 就是 Message Broker Virtual host: 出于多租户和安全因素设计的把 AMQP 的基本组件划分到一个虚 拟的分组中类似于网络中的 namespace 概念当多个不同的用户使用同一个 RabbitMQ server 提供的服务时可以划分出多个 vhost每个用户在自己的 vhost 创建 exchange/queue 等。 Connection: publisher/consumer 和 broker 之间的 TCP 连接。 Channel: 如果每一次访问 RabbitMQ 都建立一个 Connection在消息量大的时候 建立 TCP Connection 的开销将是巨大的效率也较低。Channel 是在 connection 内部建立的逻辑连接如果应用程序支持多线程通常每个 thread 创建单独的 channel 进行通讯AMQP method 包含了 channel id 帮助客户端和 message broker 识别 channel所以 channel 之间是完全隔离的。Channel 作为轻量级的 Connection 极大减少了操作系统建立 TCP connection 的开销。 Exchange: message 到达 broker 的第一站根据分发规则匹配查询表中的 routing key分发消息到 queue 中去。常用的类型有direct (point-to-point), topic (publish- subscribe) and fanout (multicast)。 Queue: 消息最终被送到这里等待 consumer 取走。 Binding: exchange 和 queue 之间的虚拟连接binding 中可以包含 routing key。 Binding 信息被保存到 exchange 中的查询表中用于 message 的分发依据。 2.3 RabbitMQ 单机部署 2.3.1 添加主机名解析 RabbitMQ 强制要求安装其的主机名可以解析。 rootrabbit-server-node1:~# vim /etc/hosts ... 192.168.100.160 rabbit-server rabbit-server.suosuoli.cnrootrabbit-server-node1:~# ping rabbit-server PING rabbit-server (192.168.100.160) 56(84) bytes of data. 64 bytes from rabbit-server (192.168.100.160): icmp_seq1 ttl64 time0.010 ms ^C --- rabbit-server ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev 0.010/0.010/0.010/0.000 ms rootrabbit-server-node1:~# ping rabbit-server.suosuoli.cn PING rabbit-server (192.168.100.160) 56(84) bytes of data. 64 bytes from rabbit-server (192.168.100.160): icmp_seq1 ttl64 time0.010 ms 64 bytes from rabbit-server (192.168.100.160): icmp_seq2 ttl64 time0.023 ms ^C --- rabbit-server ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1015ms rtt min/avg/max/mdev 0.010/0.016/0.023/0.007 ms 2.3.2 安装 RabbitMQ 快速安装参考 # 使用官方的快速安装例子 rootrabbit-server-node1:~# vim install_rabbit.sh#!/bin/sh## If sudo is not available on the system, ## uncomment the line below to install it # apt-get install -y sudosudo apt-get update -y## Install prerequisites sudo apt-get install curl gnupg -y## Install RabbitMQ signing key curl -fsSL https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc | sudo apt-key add -## Install apt HTTPS transport sudo apt-get install apt-transport-https## Add Bintray repositories that provision latest RabbitMQ and Erlang 21.x releases sudo tee /etc/apt/sources.list.d/bintray.rabbitmq.list EOF ## Installs the latest Erlang 22.x release. ## Change component to erlang-21.x to install the latest 21.x version. ## bionic as distribution name should work for any later Ubuntu or Debian release. ## See the release to distribution mapping table in RabbitMQ doc guides to learn more. deb https://dl.bintray.com/rabbitmq-erlang/debian bionic erlang deb https://dl.bintray.com/rabbitmq/debian bionic main EOF## Update package indices sudo apt-get update -y## Install rabbitmq-server and its dependencies sudo apt-get install rabbitmq-server -y --fix-missing# 安装 rootrabbit-server-node1:~# bash install_rabbit.sh ... Created symlink /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service → /lib/systemd/system/rabbitmq-server.service. Processing triggers for ureadahead (0.100.0-21) ... Processing triggers for systemd (237-3ubuntu10.24) ... # 安装OK2.3.3 启动 RabbitMQ # 在ubuntu下会自动启动 rootrabbit-server-node1:~# systemctl status rabbitmq-server ● rabbitmq-server.service - RabbitMQ brokerLoaded: loaded (/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: enabled)Active: active (running) since Tue 2020-03-24 16:57:51 CST; 5min agoMain PID: 4946 (beam.smp)... # 开机启动 rootrabbit-server-node1:~# systemctl enable rabbitmq-server Synchronizing state of rabbitmq-server.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable rabbitmq-serverrootrabbit-server-node1:~# ps -ef | grep rabbit rabbitmq 4946 1 0 16:57 ? 00:00:06 /usr/lib/erlang/erts-10.7/bin/beam.smp -W w -A 64 -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -K true -- -root /usr/lib/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /usr/lib/rabbitmq/lib/rabbitmq_server-3.8.3/ebin -noshell -noinput -s rabbit boot -sname rabbitrabbit-server-node1 -boot start_sasl -kernel inet_default_connect_options [{nodelay,true}] -sasl errlog_type error -sasl sasl_error_logger false -rabbit lager_log_root /var/lograbbitmq -rabbit lager_default_file /var/log/rabbitmq/rabbitrabbit-server-node1.log -rabbit lager_upgrade_file /var/log/rabbitmq/rabbitrabbit-server-node1_upgrade.log -rabbit feature_flags_file /var/lib/rabbitmq/mnesia/rabbitrabbit-server-node1-feature_flags -rabbit enabled_plugins_file /etc/rabbitmq/enabled_plugins -rabbit plugins_dir /usr/lib/rabbitmq/plugins:/usr/lib/rabbitmq/lib/rabbitmq_server-3.8.3/plugins -rabbit plugins_expand_dir /var/lib/rabbitmq/mnesia/rabbitrabbit-server-node1-plugins-expand -os_mon start_cpu_sup false -os_mon start_disksup false -os_mon start_memsup false -mnesia dir /var/lib/rabbitmq/mnesia/rabbitrabbit-server-node1 -ra data_dir /var/lib/rabbitmq/mnesia/rabbitrabbit-server-node1/quorum -kernel inet_dist_listen_min 25672 -kernel inet_dist_listen_max 25672 -- rabbitmq 5041 1 0 16:57 ? 00:00:00 /usr/lib/erlang/erts-10.7/bin/epmd -daemon rabbitmq 5191 4946 0 16:57 ? 00:00:00 erl_child_setup 32768 rabbitmq 5216 5191 0 16:57 ? 00:00:00 inet_gethost 4 rabbitmq 5217 5216 0 16:57 ? 00:00:00 inet_gethost 4 root 5879 1136 0 17:10 pts/0 00:00:00 grep --colorauto rabbitrootrabbit-server-node1:~# lsof -i:15672 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME beam.smp 4946 rabbitmq 94u IPv4 43507 0t0 TCP *:15672 (LISTEN)2.3.4 开启 WEB 管理插件 rootrabbit-server-node1:~# rabbitmq-plugins list Listing plugins with pattern .* ...Configured: E explicitly enabled; e implicitly enabled| Status: * running on rabbitrabbit-server-node1|/ [ ] rabbitmq_amqp1_0 3.8.3 [ ] rabbitmq_auth_backend_cache 3.8.3 [ ] rabbitmq_auth_backend_http 3.8.3 [ ] rabbitmq_auth_backend_ldap 3.8.3 ... [ ] rabbitmq_management 3.8.3 ...rootrabbit-server-node1:~# rabbitmq-plugins enable rabbitmq_management Enabling plugins on node rabbitrabbit-server-node1: rabbitmq_management The following plugins have been configured:rabbitmq_managementrabbitmq_management_agentrabbitmq_web_dispatch Applying plugin configuration to rabbitrabbit-server-node1... The following plugins have been enabled:rabbitmq_managementrabbitmq_management_agentrabbitmq_web_dispatchstarted 3 plugins.2.3.5 登录管理界面 rabbitmq 从 3.3.0 开始禁止使用 guest/guest 权限通过除 localhost 外的访问直 接访问报错如下 用户名和密码都是guest [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ybwWX2xJ-1692948000972)(png/2020-03-24-17-14-00.png)] 提示用户只能在安装 rabbitmq 的服务器登录。 修改配置文件允许从其他主机登录管理界面 rootrabbit-server-node1:~# vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.8.3/ebin/rabbit.app ...39 {loopback_users, []}, # 去掉double尖括号及其内容 ... rootrabbit-server-node1:~# systemctl restart rabbitmq-server.serviceOK 2.4 RabbitMQ 集群部署 RabbitMQ 集群工作模式有两种 普通模式创建好 RabbitMQ 之后的默认模式。 普通集群模式queue 创建之后如果没有其它 policy消息实体只存在于其中 一个节点A、B 两个 Rabbitmq 节点仅有相同的元数据即队列结构但队列的 数据仅保存有一份即在创建该队列的 rabbitmq 节点A 节点上当消息进入 A 节点的 Queue 中后consumer 从 B 节点拉取时RabbitMQ 会临时在 A、B 间进行消息传输把 A 中的消息实体取出并经过 B 发送给 consumer所以 consumer 可以连接每一个节点从中取消息该模式存在一个问题就是当 A 节点 故障后B 节点无法取到 A 节点中还未消费的消息实体。 镜像模式把需要的队列做成镜像队列。 镜像集群模式把需要的队列做成镜像队列存在于多个节点属于 RabbitMQ 的 HA 方案镜像模式是在普通模式的基础上增加一些镜像策略该模式解决了上述 问题其实质和普通模式不同之处在于消息实体会主动在镜像节点间同步而不 是在 consumer 取数据时临时拉取。该模式带来的副作用也很明显除了降低系统 性能外如果镜像队列数量过多加之大量的消息进入集群内部的网络带宽将会 被这种同步通讯大大消耗掉。所以在对可靠性要求较高的场合中适用一个队列想 做成镜像队列需要先设置 policy然后客户端创建队列的时候rabbitmq 集群 根据“队列名称”自动设置是普通集群模式或镜像队列。 集群中有两种节点类型 内存节点只将数据保存到内存磁盘节点保存数据到内存和磁盘。 内存节点虽然不写入磁盘但是它执行比磁盘节点要好集群中只需要一个 磁盘节点来保存数据就足够了如果集群中只有内存节点那么不能全部停止它 们否则所有数据消息在服务器全部停机之后都会丢失。 推荐的架构设计 在一个 rabbitmq 集群里有 3 台或以上机器其中 1 台使用磁盘模式其它节 点使用内存模式内存节点访问速度更快由于磁盘 IO 相对较慢因此可作 为数据备份使用 2.4.1 环境 主机列表 主机名IPrabbit-server-node1192.168.100.160rabbit-server-node2192.168.100.162rabbit-server-node3192.168.100.164 主机域名解析 rootrabbit-server-node1:~# vim /etc/hosts rootrabbit-server-node1:~# cat /etc/hosts 192.168.100.160 rabbit-server-node1 rabbit-server1.suosuoli.cn 192.168.100.162 rabbit-server-node1 rabbit-server2.suosuoli.cn 192.168.100.164 rabbit-server-node1 rabbit-server3.suosuoli.cn# 分发到其它主机 rootrabbit-server-node1:~# scp /etc/hosts 192.168.100.162:/etc/ root192.168.100.162s password: hosts 100% 189 347.4KB/s 00:00rootrabbit-server-node1:~# scp /etc/hosts 192.168.100.164:/etc/ root192.168.100.164s password: hosts 100% 189 347.4KB/s 00:00# 确认一下 rootrabbit-server-node2:~# cat /etc/hosts 192.168.100.160 rabbit-server-node1 rabbit-server1.suosuoli.cn 192.168.100.162 rabbit-server-node1 rabbit-server2.suosuoli.cn 192.168.100.164 rabbit-server-node1 rabbit-server3.suosuoli.cnrootrabbit-server-node3:~# cat /etc/hosts 192.168.100.160 rabbit-server-node1 rabbit-server1.suosuoli.cn 192.168.100.162 rabbit-server-node1 rabbit-server2.suosuoli.cn 192.168.100.164 rabbit-server-node1 rabbit-server3.suosuoli.cn2.4.2 在各主机安装 RabbitMQ # 使用官方的快速安装例子 rootrabbit-server-nodeX:~# vim install_rabbit.sh#!/bin/sh## If sudo is not available on the system, ## uncomment the line below to install it # apt-get install -y sudosudo apt-get update -y## Install prerequisites sudo apt-get install curl gnupg -y## Install RabbitMQ signing key curl -fsSL https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc | sudo apt-key add -## Install apt HTTPS transport sudo apt-get install apt-transport-https## Add Bintray repositories that provision latest RabbitMQ and Erlang 21.x releases sudo tee /etc/apt/sources.list.d/bintray.rabbitmq.list EOF ## Installs the latest Erlang 22.x release. ## Change component to erlang-21.x to install the latest 21.x version. ## bionic as distribution name should work for any later Ubuntu or Debian release. ## See the release to distribution mapping table in RabbitMQ doc guides to learn more. deb https://dl.bintray.com/rabbitmq-erlang/debian bionic erlang deb https://dl.bintray.com/rabbitmq/debian bionic main EOF## Update package indices sudo apt-get update -y## Install rabbitmq-server and its dependencies sudo apt-get install rabbitmq-server -y --fix-missing# 安装 rootrabbit-server-nodeX:~# bash install_rabbit.sh ... Created symlink /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service → /lib/systemd/system/rabbitmq-server.service. Processing triggers for ureadahead (0.100.0-21) ... Processing triggers for systemd (237-3ubuntu10.24) ... # 安装OK2.4.3 启动 RabbitMQ ~# systemctl restart rabbitmq-server ~# systemctl enable rabbitmq-server2.4.4 创建 RabbitMQ 集群 Rabbitmq 的集群是依赖于 erlang 的集群来工作的所以必须先构建起 erlang 的 集群环境,而 Erlang 的集群中各节点是通过一个 magic cookie 来实现的这个 cookie 存放在 /var/lib/rabbitmq/.erlang.cookie 文件中文件是 400 的 权限,所以必须保证各节点 cookie 一致否则节点之间就无法通信。 2.4.4.1 停止各服务器 RabbitMQ 并同步 cookie rootrabbit-server-node1:~# systemctl stop rabbitmq-server rootrabbit-server-node2:~# systemctl stop rabbitmq-server rootrabbit-server-node3:~# systemctl stop rabbitmq-serverrootrabbit-server-node1:~# scp /var/lib/rabbitmq/.erlang.cookie rabbit-server-node2:/var/lib/rabbitmq/.erlang.cookie rootrabbit-server-node2s password: .erlang.cookie 100% 20 42.4KB/s 00:00rootrabbit-server-node1:~# scp /var/lib/rabbitmq/.erlang.cookie rabbit-server-node3:/var/lib/rabbitmq/.erlang.cookie rootrabbit-server-node3s password: .erlang.cookie 100% 20 42.4KB/s 00:002.4.4.2 启动各服务器 RabbitMQ rootrabbit-server-node1:~# systemctl start rabbitmq-server rootrabbit-server-node2:~# systemctl start rabbitmq-server rootrabbit-server-node3:~# systemctl start rabbitmq-server2.4.4.3 创建集群 将 rabbit-server-node1 作为内存节点加入 rabbit-server-node3 成为集群 执行以下命令: # 停止app rootrabbit-server-node1:~# rabbitmqctl stop_app Stopping rabbit application on node rabbitrabbit-server-node1 ... # 清除元数据 rootrabbit-server-node1:~# rabbitmqctl reset Resetting node rabbitrabbit-server-node1 ... # 加入集群以node3为集群目标 rootrabbit-server-node1:~# rabbitmqctl join_cluster rabbitrabbit-server-node3 --ram Clustering node rabbitrabbit-server-node1 with rabbitrabbit-server-node3 # 启动app rootrabbit-server-node1:~# rabbitmqctl start_app Starting node rabbitrabbit-server-node1 ...completed with 3 plugins.将 rabbit-server-node2 作为内存节点加入 rabbit-server-node3 成为集群 执行以下命令: rootrabbit-server-node2:~# rabbitmqctl stop_app Stopping rabbit application on node rabbitrabbit-server-node2 ... rootrabbit-server-node2:~# rabbitmqctl reset Resetting node rabbitrabbit-server-node2 ... rootrabbit-server-node2:~# rabbitmqctl join_cluster rabbitrabbit-server-node3 --ram Clustering node rabbitrabbit-server-node2 with rabbitrabbit-server-node3 rootrabbit-server-node2:~# rabbitmqctl start_app Starting node rabbitrabbit-server-node2 ...completed with 3 plugins.2.4.4.4 将集群设置为镜像模式 在 node1 或者 node2 执行下面的命令 rootrabbit-server-node2:~# rabbitmqctl set_policy ha-all # {ha-mode:all} Setting policy ha-all for pattern # to {ha-mode:all} with priority 0 for vhost / ...2.4.4.5 验证集群状态 rootrabbit-server-node2:~# rabbitmqctl cluster_status Cluster status of node rabbitrabbit-server-node2 ... BasicsCluster name: rabbitrabbit-server-node3Disk Nodes # 磁盘节点集群中至少有一个节点是磁盘节点用于数据持久化 rabbitrabbit-server-node3RAM Nodes # 内存节点 rabbitrabbit-server-node1 rabbitrabbit-server-node2Running Nodes # 正在运行的节点 rabbitrabbit-server-node1 rabbitrabbit-server-node2 rabbitrabbit-server-node3Versions # 软件版本 rabbitrabbit-server-node1: RabbitMQ 3.8.3 on Erlang 22.3 rabbitrabbit-server-node2: RabbitMQ 3.8.3 on Erlang 22.3 rabbitrabbit-server-node3: RabbitMQ 3.8.3 on Erlang 22.3Alarms(none)Network Partitions(none)ListenersNode: rabbitrabbit-server-node1, interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication Node: rabbitrabbit-server-node1, interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0 Node: rabbitrabbit-server-node1, interface: [::], port: 15672, protocol: http, purpose: HTTP API Node: rabbitrabbit-server-node2, interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication Node: rabbitrabbit-server-node2, interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0 Node: rabbitrabbit-server-node2, interface: [::], port: 15672, protocol: http, purpose: HTTP API Node: rabbitrabbit-server-node3, interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication Node: rabbitrabbit-server-node3, interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0 Node: rabbitrabbit-server-node3, interface: [::], port: 15672, protocol: http, purpose: HTTP APIFeature flagsFlag: drop_unroutable_metric, state: enabled Flag: empty_basic_get_metric, state: enabled Flag: implicit_default_bindings, state: enabled Flag: quorum_queue, state: enabled Flag: virtual_host_metadata, state: enabled2.4.5 WEB 界面查看集群 各个服务器启用 web 管理界面不启用 web 插件的 rabbitmq 服务器会在 web 节点提示节点 统计信息不可用(Node statistics not available) rootrabbit-server-node2:~# rabbitmq-plugins enable rabbitmq_management rootrabbit-server-node3:~# rabbitmq-plugins enable rabbitmq_management2.5 RabbitMQ 常用命令 # 新建vhost rootrabbit-server-node1:~# rabbitmqctl add_vhost stevenux Adding vhost stevenux ...# 列出vhost rootrabbit-server-node1:~# rabbitmqctl list_vhosts Listing vhosts ... name / stevenux# 列出队列 rootrabbit-server-node1:~# rabbitmqctl list_queues Timeout: 60.0 seconds ... Listing queues for vhost / ...# 删除vhost rootrabbit-server-node1:~# rabbitmqctl delete_vhost stevenux Deleting vhost stevenux ...# 新建用户 rootrabbit-server-node1:~# rabbitmqctl add_user stevenux stevenux Adding user stevenux ...# 改用户密码 rootrabbit-server-node1:~# rabbitmqctl change_password stevenux 1233211234567 Changing password for user stevenux ...rootrabbit-server-node1:~# rabbitmqctl add_vhost stevenux Adding vhost stevenux ...# 设置stevenux用户对vhost stevenux有读写权限 rootrabbit-server-node1:~# rabbitmqctl set_permissions -p stevenux stevenux .* .* .*Setting permissions for user stevenux in vhost stevenux ...三. 使用 python 与操作 RabbitMQ publisher import pika import jsoncredentials pika.PlainCredentials(stevenux, 1233211234567) connection pika.BlockingConnection(pika.ConnectionParameters(host192.168.100.160,port5672,virtual_hoststevenux,credentialscredentials)) channel connection.channel() result channel.queue_declare(queuepython-test)for i in range(10):message json.dumps({OrderId: 1000%s % i})channel.basic_publish(exchange,routing_keypython-test,bodymessage)print(message)connection.close() consumer import pika import timecredentials pika.PlainCredentials(stevenux, 1233211234567) connection pika.BlockingConnection(pika.ConnectionParameters(host192.168.100.160,port5672,virtual_hoststevenux,credentialscredentials)) channel connection.channel() channel.queue_declare(queuepython-test, durableFalse)def callback(ch, method, properties, body):ch.basic_ack(delivery_tagmethod.delivery_tag)print(body.decode())channel.basic_consume(python-test, callback) channel.start_consuming()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/926563.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

长葛住房和城乡建设局网站怎么管理购物网站

前言 ARM SOC 有别于单片机 MCU 的一点就是,ARM SOC 的 GPIO 比较少,基本上引脚都有专用的功能,因为它很少去接矩阵键盘、众多继电器、众多 LED。 但有时 ARM SOC 又需要三五个按键,这时候 LRADC 就是一个不错的选择,…

网页制作与网站建设实战教程视频公司没注册可以做网站吗

>> (右移运算) x >> y:表示将x的二进制值右移y位。 正数是直接右移y位,则高位(最左边)补y个0。 负数是求补码,然后右移y位,最高位补y个1,再求反码&#xff…

网站挂到国外服务器做网站设计

思路 构建一个单调递增的队列类型,pop和push操作在队列内部进行特殊定义(队头存储当前滑动窗口的最大值;队列中比插入元素小的队尾元素均要移除;比队尾元素小的元素直接插入队列;当滑动窗口移除的元素和队头元素相等时…

怎么在移动端网站下面做联系人雄安专业网站建设电话

粘贴一篇关于权限的文章:最近在做个东西,巧合碰到了sharedUserId 的问题,所以收集了一些资料,存存档备份。安装在设备中的每一个apk文件,Android 给每个 APK 进程分配一个单独的用户空间,其 manifest 中的 userid 就是…

广州高档网站建设微信公众号制作模板免费

安防视频监控国标视频云服务EasyGBS支持设备/平台通过国标GB28181协议注册接入,并能实现视频的实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。平台部署简单、可拓展性强,支持将接入的视频流进行全终端、全平台分发&#xff…

php网站开发职责重庆公司注册网站

MyBatis关联查询(二、一对多查询) 需求:查询所有用户信息及用户关联的账户信息。 分析:用户信息和他的账户信息为一对多关系,并且查询过程中如果用户没有账户信息,此时也要将用户信息查询出来&#xff0c…

丽水市城乡建设局网站公司网站用什么语言开发

摘要 信息技术的发展推动了管理系统的进步,目前各种行业都积极参与管理系统的建设工作。特别是疫情带来的影响,让传统行业逐渐认识到只有通过在线管理才能继续的发展。房产销售平台是为求租者提供房源必备的平台,如何找到一个好的房源是生活…

做seo必须有网站吗网站后台管理入口

最近在把以前写的一个项目改成用easyui做前端。过程中遇到了不少问题。其中一个就是datagrid不能很好的布局。想了好多办法都有局限。最后想到会不会是布局(easyui-layout)的问题,经过实验,最后问题解。 1:比如在项目中…

网站出现的问题吗宁波高端网站设计价格

1.什么是atomikos Atomikos是一个轻量级的分布式事务管理器,实现了Java Transaction API (JTA)规范,可以很方便的和Spring Boot集成,支持微服务场景下跨节点的全局事务。Atomikos公司官方网址为:https://www.atomikos.com/。其旗下…

校区网站建设30人的网站建设公司年利润是多少

基础概念公式推到可参考该专栏下的前几篇博文。 纬向破斜组织图: 下半部分(从左往右):,3上2下2上1下,右斜,飞数为1 上半部分(从下往上):,2上2下1上3下。左斜,飞数为-1 通过分析可…

设计商城商务网站营销案例最新

7. out_of_focus_deblur_filter.cpp使用维纳滤波器来恢复失焦的图像 代码的主要功能是通过使用维纳滤波器来恢复失焦的图像,它读取一个灰度图像文件,对其进行滤波操作,并将结果保存为新文件。这个过程包括计算点扩散函数(PSF),执行…

通辽市做网站公司版权申请网站

目录 1.触发器1.1.DDL触发器1.2.DML触发器1.3.创建触发器1.3.1.创建DML触发器1.3.2.创建DDL触发器1.3.3.嵌套触发器1.3.4.递归触发器1.4.管理触发器1.触发器 触发器是一种特殊的存储过程,与表紧密关联。 1.1.DDL触发器 当服务器或数据库中发生数据定义语言&#xff…

网站建设推广熊掌号鞋网站建设

🎶Leetcode 151. 反转字符串中的单词 难度:中等 ✨题目描述: 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 …

电脑做服务器建网站并让外网访问成都网页设计培训哪家好

在这里和下一级别的分析中有必要先讲一下这个h->mb.cache(没法讲,就是cache!)。 x264_macroblock_cache_load将参考帧中某位置的(重建后)数据保存进cache,供参考和反复使用。 x264_macroblock_cache_s…

建站的方式有哪些创建一个餐饮公司的模板

1. Webpack 当前Web开发面临的困境 文件依赖关系错综复杂静态资源请求效率低模块化支持不友好浏览器对高级JavaScript特性兼容程度低 1.1 webpack概述 webpack是一个流行的前端项目构建工具,可以解决当前web开发中所面临的困境. webpack提供了友好的模块化支持,以及代码压…

旅游网站模板源码驻马店阿里巴巴做网站

XXXXXX.datagrid({url: "${pageContext.request.contextPath}/xx/xx/xx,});用上述方式动态加载datagrid的数据时,通过net监听,发现调用了两遍XX方法,目前的解决方案是,将url放到datagrid初始化的时候执行。$(#XXXX).datagrid…

柳州市建设工程质量安全监督管理处网站建设银行手机不用了怎么登陆网站

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

做电子商务网站注册哪一类商标浙江建设厅网站官网

内容摘要:基于信号到达角度(AOA)的定位算法是一种常见的无线传感器网络节点自定位算法,算法通信开销低,定位精度较高。由于各种原因,估测的多个节点位置可能存在不可靠位置,提出了一种改进的基于信号到达角的定位方法&…

电子商务如何做网站销售wordpress禁止自动更新

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:泥中に咲く—ウォルピスカーター 0:34━━━━━━️💟──────── 4:46 🔄 ◀️ ⏸ ▶…

计算机考试模拟网站怎么做网站404页面设置

在mysql数据库中,null是一个经常出现的情况,关于mysql中的null,有哪些注意事项呢?下面简单总结归纳下,后续会不断补充。1. is null首先判断数据库中某一列的值是否为null,不能用等于来判断,必须…