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

高端建设网站哪家专门做特卖网站

高端建设网站,哪家专门做特卖网站,东莞网站建设对比,秦皇岛建设里小区目录 Work queues 工作队列模式 Pub/Sub 订阅模式 Routing路由模式 Topics通配符模式 工作模式总结 Work queues 工作队列模式 C1和C2属于竞争关系#xff0c;一个消息只有一个消费者可以取到。 代码部分只需要用两个消费者进程监听同一个队里即可。 两个消费者呈现竞争关…目录 Work queues 工作队列模式 Pub/Sub 订阅模式 Routing路由模式 Topics通配符模式  工作模式总结 Work queues 工作队列模式 C1和C2属于竞争关系一个消息只有一个消费者可以取到。 代码部分只需要用两个消费者进程监听同一个队里即可。 两个消费者呈现竞争关系。 用一个生产者推送10条消息 for(int i0;i10;i){String bodyihello rabbitmq!!!;channel.basicPublish(,work_queues,null,body.getBytes());} 两个监听的消费者接收情况如下。  Pub/Sub 订阅模式 一个生产者发送消息后有两个消费者可以收到消息。 生产者把消息发给交换机交换机再把消息通过Routes路由分发给不同的队列。 //发送消息 public class producer_PubSub {public static void main(String[] args) throws IOException, TimeoutException {//1.创建连接工厂ConnectionFactory factorynew ConnectionFactory();//2.设置参数factory.setHost(); //设置ip地址。默认为127.0.0.1factory.setPort(5672); //端口 默认值5672factory.setVirtualHost(/itcast); //设置虚拟机 默认值/factory.setUsername(yhy); //用户名默认值guestfactory.setPassword(); //密码默认值guest//3.创建连接ConnectionConnection connection factory.newConnection();//4.创建ChannelChannel channel connection.createChannel();/** exchangeDeclare(String exchange, BuiltinExchangeType type, boolean durable, boolean autoDelete, boolean internal, MapString, Object arguments)* 参数:* 1.exchange : 交换价名称* 2.type : 交换机类型 有四种* DIRECT(direct), 定向FANOUT(fanout), 扇形(广播)发送消息到每一个与之绑定队列TOPIC(topic), 通配符的方式HEADERS(headers); 参数匹配*3.durable :是否持久化* 4.autoDelete:是否自动删除* 5.internal: 内部使用。一般false* 6.arguments:参数* *///5.创建交换机String exchangeNametest_fanout;channel.exchangeDeclare(exchangeName, BuiltinExchangeType.FANOUT,true,false,false,null);//6.创建队列String queue1Nametest_fanout_queue1;String queue2Nametest_fanout_queue2;channel.queueDeclare(queue1Name,true,false,false,null);channel.queueDeclare(queue2Name,true,false,false,null);/** queueBind(String queue, String exchange, String routingKey)* 参数:* queue:队列名* exchange:交换机名称* routingKey:路由键绑定规则* 如果交换机类型为fanoutroutingKey设置为* *///7.绑定队列和交换机channel.queueBind(queue1Name,exchangeName,);channel.queueBind(queue2Name,exchangeName,);String body日志信息:调用了findAll方法;//8.发送消息channel.basicPublish(exchangeName,,null,body.getBytes());//9.释放资源channel.close();connection.close();} } 运行之后两个队列里面就会多一条消息 两个消费者的代码大同小异只是绑定的队列名不同这里只给其中一个 public class consumer_PubSub1 {public static void main(String[] args) throws IOException, TimeoutException {//1.创建连接工厂ConnectionFactory factorynew ConnectionFactory();//2.设置参数factory.setHost(); //设置ip地址。默认为127.0.0.1factory.setPort(5672); //端口 默认值5672factory.setVirtualHost(/itcast); //设置虚拟机 默认值/factory.setUsername(yhy); //用户名默认值guestfactory.setPassword(); //密码默认值guest//3.创建连接ConnectionConnection connection factory.newConnection();//4.创建ChannelChannel channel connection.createChannel();String queue1Nametest_fanout_queue1;String queue2Nametest_fanout_queue2;/** basicConsume(String queue, boolean autoAck, Consumer callback)* 参数:* 1.队列名称* 2.autoAck:是否自动确认* 3.callback:回调对象* *///6.接收消息Consumer consumernew DefaultConsumer(channel){/** 回调方法当收到消息后会自动执行该方法* 1.consumerTag:标识* 2.envelope :获取一些信息交换机路由key...* 3.properties: 配置信息* 4.body: 数据* */Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { // System.out.println(consumerTag:consumerTag); // System.out.println(Exchange:envelope.getExchange()); // System.out.println(RoutingKey:envelope.getRoutingKey()); // System.out.println(properties:properties);System.out.println(body:new String(body));System.out.println(将日志信息打印到控制台......);}};channel.basicConsume(queue1Name,true,consumer);//不需要关闭资源} } 控制台输出有 Routing路由模式 对于特定级别的信息会发送到别的队列如上图的error在发送消息时也会有一个routing只要和后面的队列对应上就可以发送到对应队列。  生产者代码 //发送消息 public class producer_Routing {public static void main(String[] args) throws IOException, TimeoutException {//1.创建连接工厂ConnectionFactory factorynew ConnectionFactory();//2.设置参数factory.setHost(); //设置ip地址。默认为127.0.0.1factory.setPort(5672); //端口 默认值5672factory.setVirtualHost(/itcast); //设置虚拟机 默认值/factory.setUsername(yhy); //用户名默认值guestfactory.setPassword(); //密码默认值guest//3.创建连接ConnectionConnection connection factory.newConnection();//4.创建ChannelChannel channel connection.createChannel();/** exchangeDeclare(String exchange, BuiltinExchangeType type, boolean durable, boolean autoDelete, boolean internal, MapString, Object arguments)* 参数:* 1.exchange : 交换价名称* 2.type : 交换机类型 有四种* DIRECT(direct), 定向FANOUT(fanout), 扇形(广播)发送消息到每一个与之绑定队列TOPIC(topic), 通配符的方式HEADERS(headers); 参数匹配*3.durable :是否持久化* 4.autoDelete:是否自动删除* 5.internal: 内部使用。一般false* 6.arguments:参数* *///5.创建交换机String exchangeNametest_direct;channel.exchangeDeclare(exchangeName, BuiltinExchangeType.DIRECT,true,false,false,null);//6.创建队列String queue1Nametest_direct_queue1;String queue2Nametest_direct_queue2;channel.queueDeclare(queue1Name,true,false,false,null);channel.queueDeclare(queue2Name,true,false,false,null);/** queueBind(String queue, String exchange, String routingKey)* 参数:* queue:队列名* exchange:交换机名称* routingKey:路由键绑定规则* 如果交换机类型为fanoutroutingKey设置为* *///7.绑定队列和交换机//队列1绑定errorchannel.queueBind(queue1Name,exchangeName,error);//队列2绑定error,infowarningchannel.queueBind(queue2Name,exchangeName,info);channel.queueBind(queue2Name,exchangeName,error);channel.queueBind(queue2Name,exchangeName,warning);String body日志信息:调用了findAll方法,级别:info,error,warning;//8.发送消息channel.basicPublish(exchangeName,error,null,body.getBytes());//9.释放资源channel.close();connection.close();} } 消费者代码两个消费者就绑定队列名不一样 public class consumer_Routing1 {public static void main(String[] args) throws IOException, TimeoutException {//1.创建连接工厂ConnectionFactory factorynew ConnectionFactory();//2.设置参数factory.setHost(); //设置ip地址。默认为127.0.0.1factory.setPort(5672); //端口 默认值5672factory.setVirtualHost(/itcast); //设置虚拟机 默认值/factory.setUsername(yhy); //用户名默认值guestfactory.setPassword(); //密码默认值guest//3.创建连接ConnectionConnection connection factory.newConnection();//4.创建ChannelChannel channel connection.createChannel();String queue1Nametest_direct_queue1;String queue2Nametest_direct_queue2;/** basicConsume(String queue, boolean autoAck, Consumer callback)* 参数:* 1.队列名称* 2.autoAck:是否自动确认* 3.callback:回调对象* *///6.接收消息Consumer consumernew DefaultConsumer(channel){/** 回调方法当收到消息后会自动执行该方法* 1.consumerTag:标识* 2.envelope :获取一些信息交换机路由key...* 3.properties: 配置信息* 4.body: 数据* */Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { // System.out.println(consumerTag:consumerTag); // System.out.println(Exchange:envelope.getExchange()); // System.out.println(RoutingKey:envelope.getRoutingKey()); // System.out.println(properties:properties);System.out.println(body:new String(body));System.out.println(将日志信息存储到数据库);}};channel.basicConsume(queue1Name,true,consumer);//不需要关闭资源} } Topics通配符模式  发送消息时设定的routingkey会和后面的routingkey进行匹配。 生产者代码: //发送消息 public class producer_Topic {public static void main(String[] args) throws IOException, TimeoutException {//1.创建连接工厂ConnectionFactory factorynew ConnectionFactory();//2.设置参数factory.setHost(); //设置ip地址。默认为127.0.0.1factory.setPort(5672); //端口 默认值5672factory.setVirtualHost(/itcast); //设置虚拟机 默认值/factory.setUsername(yhy); //用户名默认值guestfactory.setPassword(); //密码默认值guest//3.创建连接ConnectionConnection connection factory.newConnection();//4.创建ChannelChannel channel connection.createChannel();/** exchangeDeclare(String exchange, BuiltinExchangeType type, boolean durable, boolean autoDelete, boolean internal, MapString, Object arguments)* 参数:* 1.exchange : 交换价名称* 2.type : 交换机类型 有四种* DIRECT(direct), 定向FANOUT(fanout), 扇形(广播)发送消息到每一个与之绑定队列TOPIC(topic), 通配符的方式HEADERS(headers); 参数匹配*3.durable :是否持久化* 4.autoDelete:是否自动删除* 5.internal: 内部使用。一般false* 6.arguments:参数* *///5.创建交换机String exchangeNametest_topic;channel.exchangeDeclare(exchangeName, BuiltinExchangeType.TOPIC,true,false,false,null);//6.创建队列String queue1Nametest_topic_queue1;String queue2Nametest_topic_queue2;channel.queueDeclare(queue1Name,true,false,false,null);channel.queueDeclare(queue2Name,true,false,false,null);/** queueBind(String queue, String exchange, String routingKey)* 参数:* queue:队列名* exchange:交换机名称* routingKey:路由键绑定规则* 如果交换机类型为fanoutroutingKey设置为* *///7.绑定队列和交换机// routing key 系统的名称.日志的级别。//需求:所有error级别的日志存入数据库所有order系统的日志存入数据库channel.queueBind(queue1Name,exchangeName,#.error);channel.queueBind(queue1Name,exchangeName,order.*);channel.queueBind(queue2Name,exchangeName,*.*);String body日志信息:调用了findAll方法;//8.发送消息channel.basicPublish(exchangeName,goods.error,null,body.getBytes());//9.释放资源channel.close();connection.close();} }消费者代码 public class consumer_Topic1 {public static void main(String[] args) throws IOException, TimeoutException {//1.创建连接工厂ConnectionFactory factorynew ConnectionFactory();//2.设置参数factory.setHost(); //设置ip地址。默认为127.0.0.1factory.setPort(5672); //端口 默认值5672factory.setVirtualHost(/itcast); //设置虚拟机 默认值/factory.setUsername(yhy); //用户名默认值guestfactory.setPassword(); //密码默认值guest//3.创建连接ConnectionConnection connection factory.newConnection();//4.创建ChannelChannel channel connection.createChannel();String queue1Nametest_topic_queue1;String queue2Nametest_topic_queue2;/** basicConsume(String queue, boolean autoAck, Consumer callback)* 参数:* 1.队列名称* 2.autoAck:是否自动确认* 3.callback:回调对象* *///6.接收消息Consumer consumernew DefaultConsumer(channel){/** 回调方法当收到消息后会自动执行该方法* 1.consumerTag:标识* 2.envelope :获取一些信息交换机路由key...* 3.properties: 配置信息* 4.body: 数据* */Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { // System.out.println(consumerTag:consumerTag); // System.out.println(Exchange:envelope.getExchange()); // System.out.println(RoutingKey:envelope.getRoutingKey()); // System.out.println(properties:properties);System.out.println(body:new String(body));System.out.println(将日志信息存储到数据库);}};channel.basicConsume(queue1Name,true,consumer);//不需要关闭资源} } 工作模式总结
http://www.pierceye.com/news/3856/

相关文章:

  • 西宁做网站君博专注建设银行德阳分行网站
  • wordpress菜单相对地址公司网站如何seo
  • 网站建设用户体验企业查询显示利好什么意思
  • 做网站是学什么专业wordpress打开install
  • 制作网站低价wordpress如何做优化
  • 网站关键词连接符云速成美站
  • 网站建设排版页面番禺网站建设设计
  • 哈尔滨网站开发建设公司wordpress转化为中文版
  • 商城购物网站建设jsp做的零食店网站
  • 快站怎么搭建淘客链接wordpress7牛云插件
  • 前端特效网站如何汉化wordpress主题
  • 举报网站建设网络公司好听的名字
  • 婴贝儿网站建设网站开发公司的生产
  • 什么是网站易用性爱城市网app官方下载
  • 登封市城乡建设路网站今天的新闻主要内容
  • 什么网站允许搭建网络文化经营许可证在哪里办
  • 网站开发前台wordpress主题带商城
  • 乐都企业网站建设公司个人网站页面设计作品
  • 展示营销类网站网站上传不了图片不显示不出来
  • 网站建设要外汇网站建设
  • 有网络网站打不开html设计软件
  • 网站降权如何恢复网站建设源码是什么
  • 河北建设部网站企业网站的作用和意义
  • 河南省住房和城乡建设厅网站主页南通网站建设方案开发
  • 自己做网站怎么编代码引流推广怎么做
  • 北京网站建设 网站维护python做网站需要什么
  • 如何 套用模板做网站网站策划方案实例
  • appcms程序怎么做网站做公众号的软件
  • 义乌微信网站建设费用菏泽住房与城乡建设官网
  • 户外商品网站制作wordpress多站点 用户