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

电子商务网站建设实训报告主要内容wordpress 相关插件

电子商务网站建设实训报告主要内容,wordpress 相关插件,个人如何注册公司代理,大华天途建设集团网站1.消息队列 消息#xff1a; 在应用间传送的数据队列#xff0c;先进先出 1.2. 作用 好处#xff1a;解耦#xff0c; 容错#xff0c;削峰坏处#xff1a;降低系统可用性#xff0c;系统复杂度提高#xff0c;一致性问题#xff1b; RabbitMQ组成部分#xff1a…1.消息队列 消息 在应用间传送的数据队列先进先出 1.2. 作用 好处解耦 容错削峰坏处降低系统可用性系统复杂度提高一致性问题 RabbitMQ组成部分生产者消费者队列交换机 2. 安装部署rabbitmq --- apiVersion: v1 kind: Secret metadata:name: rabbitmq-secretnamespace: rabbitmq data:username: YWRtaW4Kpassword: MTIzNDU2Cg type: Opaque --- apiVersion: apps/v1 kind: StatefulSet metadata:name: rabbitmqnamespace: rabbitmqlabels:app: rabbitmq spec:replicas: 1selector:matchLabels:app: rabbitmqserviceName: rabbitmq-headlesstemplate:metadata:labels:app: rabbitmqspec:containers:- name: rabbitmqimage: registry.cn-hangzhou.aliyuncs.com/yuanli123/rabbitmq:3.9.22-managementports:- name: tcp-5672containerPort: 5672protocol: TCP- name: tcp-15672containerPort: 15672protocol: TCP # 不知道为什么自己使用的username会多出一个回车字符导致rabbitmq无法识别到 # env: # - name: RABBITMQ_DEFAULT_USER # valueFrom: # secretKeyRef: # name: rabbitmq-secret # key: username # - name: RABBITMQ_DEFAULT_PASS # valueFrom: # secretKeyRef: # name: rabbitmq-secret # key: passwordresources:limits:cpu: 1memory: 2Girequests:cpu: 200mmemory: 500MiimagePullSecrets:- name: regcred--- apiVersion: v1 kind: Service metadata:name: rabbitmq-headlessnamespace: rabbitmqlabels:app: rabbitmq spec:ports:- name: tcp-rabbitmq-5672port: 5672targetPort: 5672nodePort: 32672selector:app: rabbitmqtype: NodePort --- apiVersion: v1 kind: Service metadata:name: rabbitmq-externalnamespace: rabbitmqlabels:app: rabbitmq-external spec:ports:- name: http-rabbitmq-externalprotocol: TCPport: 15672targetPort: 15672selector:app: rabbitmqtype: ClusterIP--- apiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: rabbitmq-ingressnamespace: rabbitmqannotations:nginx.ingress.kubernetes.io/rewrite-target: / spec:ingressClassName: nginxrules:- host: rabbitmq.liyuan.comhttp:paths:- backend:service:name: rabbitmq-externalport:number: 15672pathType: Prefixpath: /根据上述yaml再结合修改 /etc/hosts 文件 通过 http://rabbitmq.liyuan.com:30001/#/exchanges 访问 并暴露了 192,168.31.175:32672 用于发消息 2.1.名词解释 Broker: 接收和分发消息的应用Virtual Host: 虚拟主机一个Broker可以有多个Virtual Host 每个Virtual Host都有自己一套的Exchange和QueueConnection: 生产者/消费者和Broker之间的TCP链接Channel: 发送消息的通道channel是在connection内部建立逻辑链接AMQP method包含了channel id帮助客户端和message Broker识别Broker减少建立TCP Connection的开销Exchangemessage到达broker的第一站根据分发规则查询表中的routing key分发消息到queue中去常用类型有direct, topic, fanout(multicast)Queue: 存放消息的队列BindingExchange和Queue之间的虚拟链接binding中可以包含routing keyBinding信息被保存到exchange中的查询表中用于message的分发依据 3.使用测试 rabbitmq-test 源码参考 3.1.pom.xml # pom.yaml ?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/modelVersiongroupIdorg.example/groupIdartifactIdrqbbitmq-test/artifactIdversion1.0-SNAPSHOT/versionpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependenciesdependencygroupIdcom.rabbitmq/groupIdartifactIdamqp-client/artifactIdversion5.16.0/version/dependency/dependencies /project3.2.生产者Producer // Producer.java package com.liyuan.rabbitmq;import com.rabbitmq.client.*;import java.io.IOException; import java.util.concurrent.TimeoutException;public class Producer {public static void main(String[] args) throws IOException, TimeoutException {ConnectionFactory connectionFactory new ConnectionFactory();connectionFactory.setHost(192.168.31.175);connectionFactory.setUsername(guest);connectionFactory.setPassword(guest);connectionFactory.setPort(32672);try (Connection connection connectionFactory.newConnection()) {Channel channel connection.createChannel();String exchangeName xc_exchange_name;AMQP.Exchange.DeclareOk exchangeDeclare channel.exchangeDeclare(exchangeName, BuiltinExchangeType.DIRECT, true, false, null);String queueName xc_queue_name;AMQP.Queue.DeclareOk queueDeclare channel.queueDeclare(queueName, false, false, false, null);channel.queueBind(queueName, exchangeName, queueName);String message Hello, my name is liyuan.;channel.basicPublish(exchangeName, queueName, null, message.getBytes());channel.close();}} }3.3.消费者Consumer package com.liyuan.rabbitmq;import com.rabbitmq.client.*;import java.io.IOException; import java.util.concurrent.TimeoutException;public class Consumer {public static void main(String[] args) throws IOException, TimeoutException {ConnectionFactory connectionFactory new ConnectionFactory();connectionFactory.setHost(192.168.31.175);connectionFactory.setUsername(guest);connectionFactory.setPassword(guest);connectionFactory.setPort(32672);try (Connection connection connectionFactory.newConnection()) {Channel channel connection.createChannel();String exchangeName xc_exchange_name;String queueName xc_queue_name;DeliverCallback deliverCallback new DeliverCallback() {Overridepublic void handle(String consumerTag, Delivery message) throws IOException {System.out.println(Delivered consuming: consumerTag new String(message.getBody()));}};CancelCallback cancelCallback new CancelCallback() {Overridepublic void handle(String consumerTag) throws IOException {System.out.println(Canceled: consumerTag);}};channel.basicConsume(queueName, true, deliverCallback, cancelCallback);channel.close();}} }4.rabbitmq交换机类型 4.1. BuiltinExchangeType.DIRECT 路由键与队列完全匹配交换机通过routingKey路由键将交换机和队列进行绑定消息被发送到exchange时根据消息的routingKey来进行匹配只将消息发送到完全匹配此routingKey的队列 且同一个key可以绑定多个queue因此会同时将消息发给多个queue queueNameroutingKeyqueue01“direct_key01”queue02“direct_key02” 根据上述表格的规则来发送消息当发送消息时的routingKey为以下值时以下队列会收到消息 routingKeyqueueName“direct_key01”queue01 will receive“direct_key02”queue02 will receive 4.2. BuiltinExchangeType.FANOUT 将消息分发给所有绑定了此交换机的队列 queueNameroutingKeyqueue01“fanout_key01”queue02“fanout_key01”queue03“fanout_key01” 根据上述表格的规则来发送消息当发送消息时的routingKey为以下值时以下队列会收到消息 routingKeyqueueName“fanout_key01”queue01, queue02, queue03 will receive 4.3. BuiltinExchangeType.TOPIC 类似于direct方式但是topic可以模糊匹配routingKey通过此种方式我们可以使得一个队列模糊绑定多个routingKey queueNameroutingKeyqueue01key1.key2.key3.*queue02key1.#queue03*.key2.*.key4queue04#.key3.key4 #代表0个或多个部分* 代表一个部分. : 用于分隔不同的routingKey 根据上述表格的规则来发送消息当发送消息时的routingKey为以下值时以下队列会收到消息 routingKeyqueueName“key1”queue02 will receive“key3”no queue will receive“key1.key2.key3”queue02 will receive“key1.key2.key3.key4”queue01, queue02, queue03, queue04 will receive 4.3.BuiltinExchangeType.HEADERS headers 匹配AMQP消息的header而不是路由键此外headers交换器和direct交换器完全一致但性能差了很多 消费方要求指定的headers中必须包含一个x-match的键 x-match all表示所有的键值对都匹配才能接收到消息x-match any表示只要有键值对匹配就能接收到消息 生产者按照 x-match 配置的规则发送消息到指定的queue上 queueNamex-matchqueue01{name:“liyuan01”, sex:“male”, x-match: all}queue02{name:“liyuan02”, sex:“male”, x-match: any} 通过上述规则按照指定的消息头发送消息时 x-matchqueueName{name: “liyuan01”}no queue will receive{name: “liyuan02”}queue02 will receive{name: “liyuan01”, sex:“male”}queue02, queue01 will receive
http://www.hkea.cn/news/14570279/

相关文章:

  • 500m网站页面模板不包括
  • 阳山网站建设教育培训机构报名
  • 网站 图片切换常州网站推广软件
  • discuz做商城网站江苏城乡和住房建设厅网站
  • 在线做英语题的网站中国建设银行注册网站
  • 网站的弹窗广告怎么做企业做网站需要注意什么
  • 北京网站建设 app推销
  • 杭州百度百科seo到底是什么
  • 网站建设与管理主要学什么傻瓜式免费自助建站系统
  • 上海做企业网站的公司龙华网站公司
  • 100个免费推广网站黄冈商城网站制作哪家好
  • 北郊网站建设用xampp搭建wordpress
  • access2003做网站手机h5案例 网站
  • 石狮网站定制网站被黑客攻击怎么办
  • 口味王网站建设的设计方案河南省建设厅官方网站李学军
  • 上海做网站的的公司现代营销手段有哪些
  • 做一个简单的网站wordpress 外链播放器
  • 网站建设公司的工资惠阳网站建设公司
  • 爱媛直播优化大师是什么软件
  • 黑龙江建设网站微营销 网站模板
  • 1000套网站源码装修公司网站建设的意义
  • 网站建设项目付款方式万户网络是干嘛的
  • 大庆做网站的公司大学招生网站建设
  • 西宁微信网站建设网站导航栏全屏怎么做
  • asp个人网站源码下载栅格系统做的网站
  • 青海省住房和城乡建设厅 网站衡水网站建设的地方
  • 无法跳转到建设银行网站网站中加入企业qq
  • 丰涵网站建设如何帮人做网站赚钱
  • 上海互联网网站建设公司免费咨询服务合同模板下载
  • 内江建设网站苏州网站建设sz sogou