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

网站seo在哪里设置建设好网站

网站seo在哪里设置,建设好网站,旅游网站系统设计,服务器放多个网站Hi~#xff01;这里是奋斗的明志#xff0c;很荣幸您能阅读我的文章#xff0c;诚请评论指点#xff0c;欢迎欢迎 ~~ #x1f331;#x1f331;个人主页#xff1a;奋斗的明志 #x1f331;#x1f331;所属专栏#xff1a;RabbitMQ #x1f4da;本系列文章为个人学… Hi~这里是奋斗的明志很荣幸您能阅读我的文章诚请评论指点欢迎欢迎 ~~ 个人主页奋斗的明志 所属专栏RabbitMQ 本系列文章为个人学习笔记在这里撰写成文一为巩固知识二为展示我的学习过程及理解。文笔、排版拙劣望见谅。 发布订阅模式、路由模式、通配符模式 一、Publish/Subscribe(发布/订阅)1、引入依赖2、编写配置类3、编写生产者代码4、编写消费者代码 二、Routing (路由模式)1、引入依赖2、编写配置类3、编写生产者代码4、编写消费者代码 三、Topics (通配符模式)1、引入依赖2、编写配置类3、编写生产者代码4、编写消费者代码 一、Publish/Subscribe(发布/订阅) 在发布/订阅模型中多了一个Exchange角色. Exchange 常见有三种类型, 分别代表不同的路由规则 a) Fanout:广播将消息交给所有绑定到交换机的队列 (Publish/Subscribe模式) b) Direct:定向把消息交给符合指定routing key的队列(Routing模式) c) Topic:通配符把消息交给符合routing pattern(路由模式)的队列(Topics模式) 也就分别对应不同的工作模式 1、引入依赖 dependencies!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client --dependencygroupIdcom.rabbitmq/groupIdartifactIdamqp-client/artifactIdversion5.20.0/version/dependency /dependencies2、编写配置类 package rabbitmq.constant;public class Constants {public static final String HOST 123.57.16.61;public static final Integer PORT 5672;public static final String USERNAME study;public static final String PASSWORD study;public static final String VIRTUAL_HOST bite;//发布订阅模式public static final String FANOUT_EXCHANGE fanout.exchange;public static final String FANOUT_QUEUE1 fanout.queue1;public static final String FANOUT_QUEUE2 fanout.queue2; } 3、编写生产者代码 package rabbitmq.fanout;import com.rabbitmq.client.BuiltinExchangeType; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; import rabbitmq.constant.Constants;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(Constants.HOST);connectionFactory.setPort(Constants.PORT);connectionFactory.setUsername(Constants.USERNAME);connectionFactory.setPassword(Constants.PASSWORD);connectionFactory.setVirtualHost(Constants.VIRTUAL_HOST);Connection connection connectionFactory.newConnection();Channel channel connection.createChannel();//声明交换机/*** 交换机名称交换机类型开启可持久化关机数据不会丢失*/channel.exchangeDeclare(Constants.FANOUT_EXCHANGE, BuiltinExchangeType.FANOUT, true);//声明队列//queueDeclare 队列声明channel.queueDeclare(Constants.FANOUT_QUEUE1, true, false, false, null);channel.queueDeclare(Constants.FANOUT_QUEUE2, true, false, false, null);//交换机和队列进行绑定channel.queueBind(Constants.FANOUT_QUEUE1, Constants.FANOUT_EXCHANGE, );channel.queueBind(Constants.FANOUT_QUEUE2, Constants.FANOUT_EXCHANGE, );//发布消息String msg hello fanout...;//basicPublish (基础发布)channel.basicPublish(Constants.FANOUT_EXCHANGE, , null, msg.getBytes());System.out.println(消息发送成功);//关闭资源channel.close();connection.close();} } 点击运行 4、编写消费者代码 消费者1 package rabbitmq.fanout;import com.rabbitmq.client.*; import rabbitmq.constant.Constants;import java.io.IOException; import java.util.concurrent.TimeoutException;public class Consumer1 {public static void main(String[] args) throws IOException, TimeoutException {ConnectionFactory connectionFactory new ConnectionFactory();connectionFactory.setHost(Constants.HOST);connectionFactory.setPort(Constants.PORT);connectionFactory.setUsername(Constants.USERNAME);connectionFactory.setPassword(Constants.PASSWORD);connectionFactory.setVirtualHost(Constants.VIRTUAL_HOST);Connection connection connectionFactory.newConnection();Channel channel connection.createChannel();//声明队列//queueDeclare 队列声明 (也可以省略)channel.queueDeclare(Constants.FANOUT_QUEUE1, true, false, false, null);//消费消息DefaultConsumer consumer new DefaultConsumer(channel){Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {System.out.println(接收到消息 new String(body));}};channel.basicConsume(Constants.FANOUT_QUEUE1,true,consumer);} } 消费者2 package rabbitmq.fanout;import com.rabbitmq.client.*; import rabbitmq.constant.Constants;import java.io.IOException; import java.util.concurrent.TimeoutException;public class Consumer2 {public static void main(String[] args) throws IOException, TimeoutException {ConnectionFactory connectionFactory new ConnectionFactory();connectionFactory.setHost(Constants.HOST);connectionFactory.setPort(Constants.PORT);connectionFactory.setUsername(Constants.USERNAME);connectionFactory.setPassword(Constants.PASSWORD);connectionFactory.setVirtualHost(Constants.VIRTUAL_HOST);Connection connection connectionFactory.newConnection();Channel channel connection.createChannel();//声明队列//queueDeclare 队列声明 (也可以省略)channel.queueDeclare(Constants.FANOUT_QUEUE2, true, false, false, null);//消费消息DefaultConsumer consumer new DefaultConsumer(channel){Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {System.out.println(接收到消息 new String(body));}};channel.basicConsume(Constants.FANOUT_QUEUE2,true,consumer);} } 二、Routing (路由模式) 队列和交换机的绑定, 不能是任意的绑定了, 而是要指定⼀个BindingKey(RoutingKey的⼀种) 消息的发送方在向 Exchange 发送消息时, 也需要指定消息的 RoutingKey Exchange也不再把消息交给每⼀个绑定的key, 而是根据消息的RoutingKey进行判断, 只有队列绑定时的BindingKey和发送消息的RoutingKey 完全⼀致, 才会接收到消息 1、引入依赖 dependencies!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client --dependencygroupIdcom.rabbitmq/groupIdartifactIdamqp-client/artifactIdversion5.20.0/version/dependency /dependencies2、编写配置类 package rabbitmq.constant;public class Constants {public static final String HOST 123.57.16.61;public static final Integer PORT 5672;public static final String USERNAME study;public static final String PASSWORD study;public static final String VIRTUAL_HOST bite;//路由模式public static final String DIRECT_EXCHANGE direct.exchange;public static final String DIRECT_QUEUE1 direct.queue1;public static final String DIRECT_QUEUE2 direct.queue2; } 3、编写生产者代码 package rabbitmq.direct;import com.rabbitmq.client.BuiltinExchangeType; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; import rabbitmq.constant.Constants;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(Constants.HOST);connectionFactory.setPort(Constants.PORT);connectionFactory.setUsername(Constants.USERNAME);connectionFactory.setPassword(Constants.PASSWORD);connectionFactory.setVirtualHost(Constants.VIRTUAL_HOST);Connection connection connectionFactory.newConnection();Channel channel connection.createChannel();//声明交换机/*** 交换机名称交换机类型开启可持久化关机数据不会丢失*/channel.exchangeDeclare(Constants.DIRECT_EXCHANGE, BuiltinExchangeType.DIRECT, true);//声明队列//queueDeclare 队列声明channel.queueDeclare(Constants.DIRECT_QUEUE1, true, false, false, null);channel.queueDeclare(Constants.DIRECT_QUEUE2, true, false, false, null);//交换机和队列进行绑定channel.queueBind(Constants.DIRECT_QUEUE1, Constants.DIRECT_EXCHANGE, a);channel.queueBind(Constants.DIRECT_QUEUE2, Constants.DIRECT_EXCHANGE, a);channel.queueBind(Constants.DIRECT_QUEUE2, Constants.DIRECT_EXCHANGE, b);channel.queueBind(Constants.DIRECT_QUEUE2, Constants.DIRECT_EXCHANGE, c);//发布消息String msg_a hello direct, my routingkey is a...;//basicPublish (基础发布)channel.basicPublish(Constants.DIRECT_EXCHANGE, , null, msg_a.getBytes());String msg_b hello direct, my routingkey is b...;channel.basicPublish(Constants.DIRECT_EXCHANGE, , null, msg_b.getBytes());String msg_c hello direct, my routingkey is c...;channel.basicPublish(Constants.DIRECT_EXCHANGE, , null, msg_c.getBytes());System.out.println(消息发送成功);//关闭资源channel.close();connection.close();} } 4、编写消费者代码 消费者1 package rabbitmq.direct;import com.rabbitmq.client.*; import rabbitmq.constant.Constants;import java.io.IOException; import java.util.concurrent.TimeoutException;public class Consumer1 {public static void main(String[] args) throws IOException, TimeoutException {ConnectionFactory connectionFactory new ConnectionFactory();connectionFactory.setHost(Constants.HOST);connectionFactory.setPort(Constants.PORT);connectionFactory.setUsername(Constants.USERNAME);connectionFactory.setPassword(Constants.PASSWORD);connectionFactory.setVirtualHost(Constants.VIRTUAL_HOST);Connection connection connectionFactory.newConnection();Channel channel connection.createChannel();//声明队列//queueDeclare 队列声明 (也可以省略)channel.queueDeclare(Constants.DIRECT_QUEUE1, true, false, false, null);//消费消息DefaultConsumer consumer new DefaultConsumer(channel){Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {System.out.println(接收到消息 new String(body));}};channel.basicConsume(Constants.DIRECT_QUEUE1,true,consumer);} } 消费者2 package rabbitmq.direct;import com.rabbitmq.client.*; import rabbitmq.constant.Constants;import java.io.IOException; import java.util.concurrent.TimeoutException;public class Consumer2 {public static void main(String[] args) throws IOException, TimeoutException {ConnectionFactory connectionFactory new ConnectionFactory();connectionFactory.setHost(Constants.HOST);connectionFactory.setPort(Constants.PORT);connectionFactory.setUsername(Constants.USERNAME);connectionFactory.setPassword(Constants.PASSWORD);connectionFactory.setVirtualHost(Constants.VIRTUAL_HOST);Connection connection connectionFactory.newConnection();Channel channel connection.createChannel();//声明队列//queueDeclare 队列声明 (也可以省略)channel.queueDeclare(Constants.DIRECT_QUEUE2, true, false, false, null);//消费消息DefaultConsumer consumer new DefaultConsumer(channel){Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {System.out.println(接收到消息 new String(body));}};channel.basicConsume(Constants.DIRECT_QUEUE2,true,consumer);} } 三、Topics (通配符模式) Topics 和Routing模式的区别是: topics 模式使用的交换机类型为topic(Routing模式使用的交换机类型为direct)topic 类型的交换机在匹配规则上进行了扩展, Binding Key⽀持通配符匹配(direct类型的交换机路由规则是BindingKey和RoutingKey完全匹配) 在topic类型的交换机在匹配规则上, 有些要求: RoutingKey 是⼀系列由点( . )分隔的单词, ⽐如 stock.usd.nyse , nyse.vmw , quick.orange.rabbit BindingKey 和RoutingKey⼀样, 也是点( . )分割的字符串.Binding Key中可以存在两种特殊字符串, 用于模糊匹配 * 表⽰⼀个单词 # 表⽰多个单词(0-N个)比如: • Binding Key 为d.a.b 会同时路由到Q1 和Q2 • Binding Key 为d.a.f 会路由到Q1 • Binding Key 为c.e.f 会路由到Q2 • Binding Key 为d.b.f 会被丢弃, 或者返回给⽣产者(需要设置mandatory参数) 1、引入依赖 dependencies!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client --dependencygroupIdcom.rabbitmq/groupIdartifactIdamqp-client/artifactIdversion5.20.0/version/dependency /dependencies2、编写配置类 package rabbitmq.constant;public class Constants {public static final String HOST 123.57.16.61;public static final Integer PORT 5672;public static final String USERNAME study;public static final String PASSWORD study;public static final String VIRTUAL_HOST bite;//通配符模式public static final String TOPIC_EXCHANGE topic.exchange;public static final String TOPIC_QUEUE1 topic.queue1;public static final String TOPIC_QUEUE2 topic.queue2;3、编写生产者代码 package rabbitmq.topic;import com.rabbitmq.client.BuiltinExchangeType; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; import rabbitmq.constant.Constants;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(Constants.HOST);connectionFactory.setPort(Constants.PORT);connectionFactory.setUsername(Constants.USERNAME);connectionFactory.setPassword(Constants.PASSWORD);connectionFactory.setVirtualHost(Constants.VIRTUAL_HOST);Connection connection connectionFactory.newConnection();Channel channel connection.createChannel();//声明交换机/*** 交换机名称交换机类型开启可持久化关机数据不会丢失*/channel.exchangeDeclare(Constants.TOPIC_EXCHANGE, BuiltinExchangeType.TOPIC, true);//声明队列//queueDeclare 队列声明channel.queueDeclare(Constants.TOPIC_QUEUE1, true, false, false, null);channel.queueDeclare(Constants.TOPIC_QUEUE2, true, false, false, null);//交换机和队列进行绑定channel.queueBind(Constants.TOPIC_QUEUE1, Constants.TOPIC_EXCHANGE, *.a.*);channel.queueBind(Constants.TOPIC_QUEUE2, Constants.TOPIC_EXCHANGE, *.*.b);channel.queueBind(Constants.TOPIC_QUEUE2, Constants.TOPIC_EXCHANGE, c.#);//发布消息String msg_a hello topic, my routingkey is ae.a.f...;//basicPublish (基础发布)channel.basicPublish(Constants.TOPIC_EXCHANGE, ae.a.f, null, msg_a.getBytes());String msg_b hello topic, my routingkey is ef.a.b...;channel.basicPublish(Constants.TOPIC_EXCHANGE, ef.a.b, null, msg_b.getBytes());String msg_c hello topic, my routingkey is c.ef.b...;channel.basicPublish(Constants.TOPIC_EXCHANGE, c.ef.b, null, msg_c.getBytes());System.out.println(消息发送成功);//关闭资源channel.close();connection.close();} } 4、编写消费者代码 消费者1 package rabbitmq.topic;import com.rabbitmq.client.*; import rabbitmq.constant.Constants;import java.io.IOException; import java.util.concurrent.TimeoutException;public class Consumer1 {public static void main(String[] args) throws IOException, TimeoutException {ConnectionFactory connectionFactory new ConnectionFactory();connectionFactory.setHost(Constants.HOST);connectionFactory.setPort(Constants.PORT);connectionFactory.setUsername(Constants.USERNAME);connectionFactory.setPassword(Constants.PASSWORD);connectionFactory.setVirtualHost(Constants.VIRTUAL_HOST);Connection connection connectionFactory.newConnection();Channel channel connection.createChannel();//声明队列//queueDeclare 队列声明 (也可以省略)channel.queueDeclare(Constants.TOPIC_QUEUE1, true, false, false, null);//消费消息DefaultConsumer consumer new DefaultConsumer(channel){Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {System.out.println(接收到消息 new String(body));}};channel.basicConsume(Constants.TOPIC_QUEUE1,true,consumer);} } 消费者2 package rabbitmq.topic;import com.rabbitmq.client.*; import rabbitmq.constant.Constants;import java.io.IOException; import java.util.concurrent.TimeoutException;public class Consumer2 {public static void main(String[] args) throws IOException, TimeoutException {ConnectionFactory connectionFactory new ConnectionFactory();connectionFactory.setHost(Constants.HOST);connectionFactory.setPort(Constants.PORT);connectionFactory.setUsername(Constants.USERNAME);connectionFactory.setPassword(Constants.PASSWORD);connectionFactory.setVirtualHost(Constants.VIRTUAL_HOST);Connection connection connectionFactory.newConnection();Channel channel connection.createChannel();//声明队列//queueDeclare 队列声明 (也可以省略)channel.queueDeclare(Constants.TOPIC_QUEUE2, true, false, false, null);//消费消息DefaultConsumer consumer new DefaultConsumer(channel){Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {System.out.println(接收到消息 new String(body));}};channel.basicConsume(Constants.TOPIC_QUEUE2,true,consumer);} }
http://www.w-s-a.com/news/896902/

相关文章:

  • 单县网站惠州seo计费
  • 万网网站建设 优帮云怎样用记事本做网站
  • 注册域名后网站建设百度指数的功能
  • 怎么做伪静态网站山西网站建设设计
  • 做小型企业网站多少钱衡阳市建设局网站
  • 金华专业网站建设公司网站建设空间和服务器方式
  • 自己做的网站在浏览器上显示不安全吗wordpress revolution slider
  • 西安网站建设推广优化搜索引擎营销
  • 互联网站备案管理工作方案 工信部注册深圳公司需要什么条件
  • 网站网站服务器网站建设 物流
  • 国外开发网站手机网站建设制作
  • 怎么把自己做的网站传网上青岛工程建设监理公司网站
  • 网站301跳转效果商丘网站公司
  • 公司网站建设西安网站的架构与建设
  • 食品科技学校网站模板花溪村镇建设银行网站
  • 图片渐隐 网站头部flash地方志网站建设自查报告
  • 深圳做商城网站视觉品牌网站建设
  • 永康电子商务网站建设弹幕网站怎么做
  • 百川网站企业做网站要注意哪些
  • 球迷类的网站如何做网站建设需要哪些素材
  • 请问有重庆有做网站吗电子政务系统网站建设的基本过程
  • 建设银行管方网站官网最新版cmsv6
  • 网站开发工程师需要会写什么深圳网站(建设信科网络)
  • 台州网站搭建网站建设需求计划
  • 网站app免费下载软件大全大连百度推广哪家好
  • 网站建设的面试要求iis做的网站手机怎么访问
  • 定州市住房保障和城乡建设局网站上海网站建设排行
  • 网站发帖百度收录网站改版后不收录
  • 昆明建设局网站号码网站开发 浏览器兼容性
  • 湖北专业网站建设大全室内设计联盟app下载