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

做网络投票网站好做吗广西seo快速排名

做网络投票网站好做吗,广西seo快速排名,专业网站建设组织,网络营销的主要方式k📝个人主页:五敷有你 🔥系列专栏:中间件 ⛺️稳中求进,晒太阳 MQ的优劣: 优势 应用解耦:提升了系统容错性和可维护性异步提速:提升用户体验和系统吞吐量消峰填谷&#xff1…

  

       📝个人主页:五敷有你      

 🔥系列专栏:中间件

⛺️稳中求进,晒太阳

MQ的优劣:

优势

  1. 应用解耦:提升了系统容错性和可维护性
  2. 异步提速:提升用户体验和系统吞吐量
  3. 消峰填谷:提升系统稳定性

劣势

  1. 系统可用性降低
    1. 系统引入的外部依赖越多,系统稳定性越差,一旦MQ宕机,就会对业务造成影响,如何保证MQ的高可用
  2. 系统复杂度提高
    1. MQ的加入大大增加了系统的复杂度,以前系统间是同步的远程调用,现在是拖过MQ进行异步调用,如何保证消息没有被重复消费?怎么处理消息丢失情况?怎么保证消息传递的顺序性?
  3. 一致性问题
    1. A系统处理完业务,通过MQ给B、C、D系统发送数据,如果B系统,C系统处理成功,D系统处理失败,如何保证消息数据处理的一致性。

既然MQ有优势也有劣势,那么怎么使用MQ需要满足什么条件呢?

  1. 生产者不需要从消费者处获得反馈,引入消息队列之前直接调用,其接口的返回值应该为空,这才让明明下层的动作还没做,上层却当成动作做完了,继续往后走,即所谓异步成了可能
  2. 容许短暂的不一致性
  3. 确实是用了有效果,即解耦、提速、晓峰方面的收益,超过了加入MQ,管理MQ的成本

常见的MQ产品

RabbitMQ简介

AMQP

AMQP,即Advanced Message Queuing Protocol ,是一个网络协议,是应用层协议的一个开发标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。

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,topic,
  • Queue:消息最终被送到这里等待consumer被取走
  • Binding:exchange 和 queue 之间的虚拟连接,binding中可以包含routing key 。Binding信息被保存到exchange中的查询表中,用于message的分发依据

RabbitMQ的6中工作模式

JMS

  • JMS,即Java消息服务(JavaMessage Service) 应用程序接口,是一个Java平台中关于面向中间件的API
  • JMS是JavaEE规范的一种,类似JDBC
  • 很多中间件都实现类JMS规范.

快速入门

这个直接通过队列进行通信的

  1. 引入spring-boot-starter-amqp
  2. 配置rabbitmq服务端信息
spring:rabbitmq:host: ipport: 5672virtual-host: /username: MeetRyspassword: 123456
  1. 利用RabbitTemplate发送消息
@Autowired
private RabbitTemplate rabbitTemplate;@Test
void testSendMessage2Queue() {String queueName1 = "MeetRys01";String queueName2 = "MeetRys02";String msg = "hello word";rabbitTemplate.convertAndSend(queueName1, msg);rabbitTemplate.convertAndSend(queueName1,msg);}

        2.利用@RabbitListener注解声明要监听的队列

@Slf4j
@Component
public class MqListener {@RabbitListener(queues = "MeetRys01")public void listenSimpleQueue(String msg){System.out.println("消费者1收到了MeetRys01的消息:【" + msg +"】");}}

http://www.hrbkazy.com/news/26004.html

相关文章:

  • 深圳做网站电话阿里指数网站
  • 运城网站制作seo网站优化服务
  • 建设一个官方网站的费用宁波网站推广优化哪家正规
  • 印度电商平台网站建设策划自己做网站设计制作
  • 做网站销售这几天你有什么想法网络营销推广要求
  • 怎么做网站设计时事新闻热点摘抄
  • 安徽做网站找谁外贸网站seo教程
  • 有什么做ppt参考的网站百度seo文章
  • 哪些网站可以做免费广告推广品牌广告语
  • 17.zwd一起做网站池尾站百度小说排行榜第一名
  • 哪些网站可以做微信支付免费外网加速器
  • 做类似简书的网站刷粉网站推广马上刷
  • 阿里云网站建设——部署与发布app下载注册量推广平台
  • 廊坊模板建站代理今日最火的新闻
  • 视频一页网站怎么做手机游戏性能优化软件
  • 全球网站排行惠州搜索引擎seo
  • 最全做暖暖网站seo外链友情链接
  • 个人网站后期怎么做企业免费网站建站
  • 做购物类网站有哪些seo的关键词无需
  • 湖南微信网站公司电话号码十大免费软文推广平台
  • wordpress免签约接口网站seo关键词排名
  • 建筑网站的研究背景与意义各大引擎搜索入口
  • 沙田镇网站仿做湖南今日新闻最新头条
  • 取消wordpress还原石家庄seo管理
  • 宝鸡精品网站开发智能建站模板
  • 外贸seo是什么意思啊北京seo服务行者
  • 有没有专门做布料的网站seo站内优化站外优化
  • 仿牌做独立网站可靠吗百度关键词优化服务
  • 做网站很难吗seo学习论坛
  • 百度收录好的网站关键词优化排名软件流量词