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

网站制作在线版英文建站

网站制作在线版,英文建站,it培训机构学费一般多少,中国移动视频网站建设一.同步调用和异步调用的差别和优势 1.同步调用: 缺点: ①拓展性差:代码冗余在了一起,所以拓展性差。 ②性能下降:调用者需要等待服务提供者执行完返回结果后,才能继续向下执行,也就是说每次远…

一.同步调用和异步调用的差别和优势

1.同步调用:

 缺点:

①拓展性差:代码冗余在了一起,所以拓展性差。

②性能下降:调用者需要等待服务提供者执行完返回结果后,才能继续向下执行,也就是说每次远程调用,调用者都是阻塞等待状态。最终整个业务的响应时长就是每次远程调用的执行时长之和。

③级联失败:由于我们是基于OpenFeign调用交易服务、通知服务。当交易服务、通知服务出现故障时,整个事务都会回滚,交易失败。
这其实就是同步调用的级联失败问题。

优点:

①时效性强,等待到结果后才返回。

2.异步调用

优点:

①耦合度更低
②性能更好
③业务拓展性强
④故障隔离,避免级联失败

缺点:

①完全依赖于Broker的可靠性、安全性和性能
②架构复杂,后期维护和调试麻烦

③不确定下游业务执行是否成功

3.使用

我们要在合适的场景使用合适的调用技术

二.消息队列的一些概念

1.mq整体交互的流程图:

2.Producer和Consumer

Producer: ⽣产者, 是RabbitMQ Server的客⼾端, 向RabbitMQ发送消息

Consumer: 消费者, 也是RabbitMQ Server的客⼾端, 从RabbitMQ接收消息

Broker:其实就是RabbitMQ Server, 主要是接收和收发消息

• ⽣产者(Producer)创建消息, 然后发布到RabbitMQ中. 在实际应⽤中, 消息通常是⼀个带有⼀定业务逻辑结构的数据, ⽐如JSON字符串. 消息可以带有⼀定的标签, RabbitMQ的exchange会根据标签进⾏路由, 把消息发送给感兴趣的消费者(Consumer).

• 消费者连接到RabbitMQ服务器, 就可以消费消息了, 消费的过程中, 标签会被丢掉. 消费者只会收到消息, 并不知道消息的⽣产者是谁, 当然消费者也不需要知道.

• 对于RabbitMQ来说,⼀个RabbitMQ Broker可以简单地看作⼀个RabbitMQ服务节点, 或者RabbitMQ服务实例. ⼤多数情况下也可以将⼀个RabbitMQ Broker看作⼀台RabbitMQ服务器

3.Connection和Channel

Connection: 连接. 是客⼾端和RabbitMQ服务器之间的⼀个TCP连接. 这个连接是建⽴消息传递的基础, 它负责传输客⼾端和服务器之间的所有数据和控制信息.

Channel: 通道, 信道. Channel是在Connection之上的⼀个抽象层. 在 RabbitMQ 中, ⼀个TCP连接可以有多个Channel, 每个Channel 都是独⽴的虚拟连接. 消息的发送和接收都是基于 Channel的.

通道的主要作⽤是将消息的读写操作复⽤到同⼀个TCP连接上,这样可以减少建⽴和关闭连接的开销, 提⾼性能.

4.Virtual host

Virtual host: 虚拟主机. 这是⼀个虚拟概念. 它为消息队列提供了⼀种逻辑上的隔离机制. 对于RabbitMQ⽽⾔, ⼀个 BrokerServer 上可以存在多个 Virtual Host. 当多个不同的⽤⼾使⽤同⼀个RabbitMQ Server 提供的服务时,可以虚拟划分出多个 vhost,每个⽤⼾在⾃⼰的 vhost 创建 exchange/queue 等 

5.Queue

Queue: 队列, 是RabbitMQ的内部对象, ⽤于存储消息.

6.Exchange

Exchange: 交换机. message 到达 broker 的第⼀站, 它负责接收⽣产者发送的消息, 并根据特定的规则把这些消息路由到⼀个或多个Queue列中.

Exchange起到了消息路由的作⽤,它根据类型和规则来确定如何转发接收到的消息.

注意:只负责转发消息,不具备存储消息的能力

三.AMQP

AMQP(Advanced Message Queuing Protocol)是⼀种⾼级消息队列协议, AMQP定义了⼀套确定的消息交换功能, 包括交换器(Exchange), 队列(Queue) 等. 这些组件共同⼯作, 使得⽣产者能够将消息发送到交换器. 然后由队列接收并等待消费者接收. AMQP还定义了⼀个⽹络协议, 允许客⼾端应⽤通过该协议与消息代理和AMQP模型进⾏交互通信

RabbitMQ是遵从AMQP协议的,换句话说,RabbitMQ就是AMQP协议的Erlang的实现(当然RabbitMQ还⽀持STOMP2, MQTT2等协议). AMQP的模型结构和RabbitMQ的模型结构是⼀样的.

四.简单的使用rabbitmq的步骤

1.引入依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

2.配置yml文件

spring:rabbitmq:host: 192.168.150.101 # 你的虚拟机IPport: 5672 # 端口virtual-host: /hmall # 虚拟主机username: hmall # 用户名password: 123 # 密码

3.发送消息

@SpringBootTest
public class SpringAmqpTest {@Autowiredprivate RabbitTemplate rabbitTemplate;@Testpublic void testSimpleQueue() {// 队列名称String queueName = "simple.queue";// 消息String message = "hello, spring amqp!";// 发送消息rabbitTemplate.convertAndSend(queueName, message);}
}

4.接受消息

@Component
public class SpringRabbitListener {// 利用RabbitListener来声明要监听的队列信息// 将来一旦监听的队列中有了消息,就会推送给当前服务,调用当前方法,处理消息。// 可以看到方法体中接收的就是消息体的内容@RabbitListener(queues = "simple.queue")public void listenSimpleQueueMessage(String msg) throws InterruptedException {System.out.println("spring 消费者接收到消息:【" + msg + "】");}
}

http://www.dtcms.com/a/522023.html

相关文章:

  • 莱芜摩托车网站php网站开发程序编译软件
  • 联通公网ip申请 做网站网站广东省备案系统
  • 北京网站建设公司怎么排版2019做网站的出路
  • 高端网站建设推来客地址wordpress怎么编辑网站
  • 服务器禁止ip访问网站外网访问wordpress
  • 镇江百度网站购物网站开发uml图
  • 加密的网站使用jmeter做压测东营信息发布平台
  • jquery网站引导插件店面门头设计网站
  • 做sns网站需要什么网页程序开发采购
  • 关于网站建设与维护论文德州网站建设价格
  • 旋转器(Spinner)详细介绍
  • 做ppt找图片网站网站建设公司推广广告语
  • 昆明seo网站建设金华企业网站建站模板
  • 网站建设免费国外泰安直聘网官网
  • 网站seo分析报告案例设计官网有什么好处
  • 上海建设协会网站徐州网站外包
  • 如何检测网站死链如何在国外网站做翻译兼职
  • 设置网站关键词怎么做淘宝客模板wordpress
  • 鄂尔多斯市住房和城乡建设厅网站做微信网站价格
  • 石家庄商城网站建设网站管理员怎么做联系方式
  • ios风格网站模板新闻热点事件摘抄2022
  • 旅游网--个人网站建设 论文个人简历html代码
  • 怎么用织梦做自己的网站网站外链隐形框架
  • 网站建设经典范例wordpress extended rss
  • 网站如何做监测链接如何做国际贸易网站
  • 通付盾 公司网站建设建筑企业分公司使用总公司资质
  • Spring AI 知识点总结
  • 看p站用什么浏览器怎么做地方门户网站
  • 网站开发 需求说明书安徽省建设厅网站首页
  • 企业网站开发综合实训国内外优秀网页设计案例