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

网站建设文化服务公司网络编程课程

网站建设文化服务公司,网络编程课程,营销型网站建设开发,茌平企业做网站推广文章目录 一、Hello World#xff08;简单#xff09;模式1.导入依赖2.消息生产者3.消息消费者 二、Work Queues#xff08;工作#xff09;模式1.抽取工具类2.启动两个工作线程3.启动一个发送线程4.结果 总结 一、Hello World#xff08;简单#xff09;模式 在下图中简单模式1.导入依赖2.消息生产者3.消息消费者 二、Work Queues工作模式1.抽取工具类2.启动两个工作线程3.启动一个发送线程4.结果 总结 一、Hello World简单模式 在下图中“ P”是我们的生产者“ C”是我们的消费者。中间的框是一个队列-RabbitMQ 代 表使用者保留的消息缓冲区 博主这里使用JAVA实现。 1.导入依赖 !--指定 jdk 编译版本-- buildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdconfigurationsource8/sourcetarget8/target/configuration/plugin/plugins /build dependencies!--rabbitmq 依赖客户端--dependencygroupIdcom.rabbitmq/groupIdartifactIdamqp-client/artifactIdversion5.8.0/version/dependency!--操作文件流的一个依赖--dependencygroupIdcommons-io/groupIdartifactIdcommons-io/artifactIdversion2.6/version/dependency /dependencies2.消息生产者 public class Producer {private final static String QUEUE_NAME hello;public static void main(String[] args) throws Exception {//创建一个连接工厂ConnectionFactory factory new ConnectionFactory();factory.setHost(192.168.10.130);factory.setUsername(guest);factory.setPassword(guest);//channel 实现了自动 close 接口 自动关闭 不需要显示关闭try(Connection connection factory.newConnection();Channel channel connection.createChannel()) {/*** 生成一个队列* 1.队列名称* 2.队列里面的消息是否持久化 默认消息存储在内存中* 3.该队列是否只供一个消费者进行消费 是否进行共享 true 可以多个消费者消费* 4.是否自动删除 最后一个消费者端开连接以后 该队列是否自动删除 true 自动删除* 5.其他参数*/channel.queueDeclare(QUEUE_NAME,false,false,false,null);String messagehello world;/*** 发送一个消息* 1.发送到那个交换机* 2.路由的 key 是哪个* 3.其他的参数信息* 4.发送消息的消息体*/channel.basicPublish(,QUEUE_NAME,null,message.getBytes());System.out.println(消息发送完毕);}} }3.消息消费者 public class Consumer {private final static String QUEUE_NAME hello;public static void main(String[] args) throws Exception {ConnectionFactory factory new ConnectionFactory();factory.setHost(192.168.10.130);factory.setUsername(guest);factory.setPassword(guest);Connection connection factory.newConnection();Channel channel connection.createChannel();System.out.println(等待接收消息....);//推送的消息如何进行消费的接口回调DeliverCallback deliverCallback(consumerTag,delivery)-{String message new String(delivery.getBody());System.out.println(message);};//取消消费的一个回调接口 如在消费的时候队列被删除掉了CancelCallback cancelCallback(consumerTag)-{System.out.println(消息消费被中断);};/*** 消费者消费消息* 1.消费哪个队列* 2.消费成功之后是否要自动应答 true 代表自动应答 false 手动应答* 3.消费者未成功消费的回调*/channel.basicConsume(QUEUE_NAME,true,deliverCallback,cancelCallback);}}二、Work Queues工作模式 工作队列(又称任务队列)的主要思想是避免立即执行资源密集型任务而不得不等待它完成。 相反我们安排任务在之后执行。我们把任务封装为消息并将其发送到队列。在后台运行的工作进 程将弹出任务并最终执行作业。当有多个工作线程时这些工作线程将一起处理这些任务。 1.抽取工具类 public class RabbitMqUtils {//得到一个连接的 channelpublic static Channel getChannel() throws Exception{//创建一个连接工厂ConnectionFactory factory new ConnectionFactory();factory.setHost(192.168.10.130);factory.setUsername(guest);factory.setPassword(guest);Connection connection factory.newConnection();Channel channel connection.createChannel();return channel;} }2.启动两个工作线程 public class Worker01 {private static final String QUEUE_NAMEhello;public static void main(String[] args) throws Exception {Channel channel RabbitMqUtils.getChannel();DeliverCallback deliverCallback(consumerTag,delivery)-{String receivedMessage new String(delivery.getBody());System.out.println(接收到消息:receivedMessage);};CancelCallback cancelCallback(consumerTag)-{System.out.println(consumerTag消费者取消消费接口回调逻辑);};System.out.println(C2 消费者启动等待消费......);channel.basicConsume(QUEUE_NAME,true,deliverCallback,cancelCallback);} }3.启动一个发送线程 public class Task01 {private static final String QUEUE_NAMEhello;public static void main(String[] args) throws Exception {try(Channel channelRabbitMqUtils.getChannel();) {channel.queueDeclare(QUEUE_NAME,false,false,false,null);//从控制台当中接受信息Scanner scanner new Scanner(System.in);while (scanner.hasNext()){String message scanner.next();channel.basicPublish(,QUEUE_NAME,null,message.getBytes());System.out.println(发送消息完成:message);}}} }4.结果 通过程序执行发现生产者总共发送 4 个消息消费者 1 和消费者 2 分别分得两个消息并且 是按照有序的一个接收一次消息 总结 以上就是RabbitMQ 核心部分之简单模式和工作模式的相关知识希望对你有所帮助。
http://www.zqtcl.cn/news/214713/

相关文章:

  • 网站建设 更新 维护淮北矿业工程建设公司网站
  • 网站开发 平台宝应做网站
  • 网站开发开题报告广州的兼职网站建设
  • 辽宁同鑫建设网站网站后期维护费用
  • 政法网站建设有哪些不足广州网站建设信息科技有限公司
  • 营销型网站 平台海口智能建站价格
  • 网站空间过期电商网站建设比较好的
  • seo公司 彼亿营销舆情优化公司
  • diango是做网站的后端吗网页怎么做成app
  • 思勤传媒网站建设公司如何查询网站的外链
  • 网站设计思路文案范文专业手机网站建设多少钱
  • 有部分网站打不开网站服务内容怎么写
  • 百度安全网站检测好看的免费的小说网站模板
  • 锡山区住房和城乡建设局网站免费ppt模板下载简约
  • 建设银行 杭州招聘网站建设工程有限公司是干什么的
  • 做网站必须购买空间吗?3点新闻发布
  • 济南集团网站建设流程东莞做网站公司首选
  • 有需要做网站推广找我网站怎么 备案
  • 怎么把网站放到服务器上站长工具seo综合查询外部链接数量
  • 做网站上市的公司开一家公司最低注册资金
  • 仙居谁认识做网站的有哪些好的网站建设
  • 互动广告机网站建设怀集网站建设
  • 好的 做网站的软件公司pinterest app下载
  • 公司网站报价邯郸软件定制
  • 产品毕业设计代做网站资料库网站源码
  • 交易类网站做支付宝功能建设银行网站收款怎么打明细
  • 广州找人做网站做网站网关备案
  • 网站的布局方式有哪些内容免费ppt模板下载公众号
  • 色91Av做爰网站获胜者网站建设
  • 企业做网站要多少钱简单网页设计模板网站