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

汕头中文建站模板媒体代发布

汕头中文建站模板,媒体代发布,直播软件哪个最好用,域名及密码登录域名管理网站RabbitMQ 余额支付 同步调用 一步一步的来,支付业务写完后,如果之后加需求,还需要增加代码,不符合开闭原则。 性能上也有问题,openfeign是同步调用,性能太差。 同步调用耦合太多。 同步的优势是可以立…

RabbitMQ

余额支付

同步调用

一步一步的来,支付业务写完后,如果之后加需求,还需要增加代码,不符合开闭原则。

性能上也有问题,openfeign是同步调用,性能太差。

同步调用耦合太多。

同步的优势是可以立即得到结果,例如查询,查到了就能知道结果。但是拓展性差,性能下降,级联失败。

异步调用

异步调用时基于消息通知的方式,一般包括3个角色。

  • 消息发送者

  • 消息代理

  • 消息接收值

发送者发送东西到消息代理,消息接受者监听消息代理。(类似于外卖柜)

故障也会隔离。

缓存消息,起到流量削峰填谷的功能。(流量整形)

缺点

拿不到对方执行的结果。不确定有没有执行成功。

安全依赖于mq的可靠性。(broker)


对于运行结果不关心的场景,性能要求较高就可以使用异步。

MQ技术选型

Message Queue(MQ)先进先出的消息队列。MQ的技术有很多实现方案,就用RabbitMQ erlang编译的

消费者与queue绑定。

生产者与exchange(交换机)绑定

交换机路由给queue,exchange与queue构成了broker(RabbitMQ)

公司可能搭建一个mq,然后所有的服务都用这个。因此为了隔离创建了VirtualHost(类似于数据库)

快速入门

交换机是负责路由转发消息的,它本身没有存储消息的能力。
必须让队列和交换机产生关系(绑定)

数据隔离

有虚拟主机的概念
首先创建一个用户。
添加用户

添加虚拟主机
不同的虚拟主机是互相隔离的。创建一个新的虚拟主机,那么所有的东西都是新的,类似与数据库。

使用Java操作

Spring AMQP

amqp是一种消息通信协议,它是协议。Spring 提供了一套统一的amqp协议标准。定义了接口,没实现,只有Spring Rabbit实现了。

  1. 引入依赖
  2. 在每个微服务中引入MQ服务端信息,5672端口。
  3. rabbitTemplate发送和接收。

生产者代码

@SpringBootTest
public class SpringAmqpTest {@Autowiredprivate RabbitTemplate rabbitTemplate;@Testvoid testSendMessage2Queue() {String queueName = "simple.queue";String msg = "hello, amqp!";rabbitTemplate.convertAndSend(queueName, msg);}}

消费者代码

    @RabbitListener(queues = "simple.queue")public void listenSimpleQueue(String msg){System.out.println("消费者收到了simple.queue的消息:【" + msg +"】");}

Work Queues

多个消费者绑定同一个queue。
每个消息只会被一个消费者消费掉。
生产者投递的消息,不会考虑到消费者的处理能力。 所以需要添加 prefetch 参数。
每次只能取一条消息,处理完成才能获得下一个。这样就是能者多劳。
解决消息堆积问题。

Fanout 交换机(广播)

真正的环境一定会有交换机的,而不是直接发送到队列。交换机是有路由功能的,比如多个服务监听队列,只有一个服务能收到信息。但是交换机不同,多个服务都可以监听到队列。
他会将接收到的消息分发给与它绑定的每一个队列。
可以为每个微服务创建队列,这样每个微服务就都收到了。

    @Testvoid testSendFanout() {String exchangeName = "hmall.fanout2";String msg = "hello, everyone!";//交换机名字,routingKey,消息rabbitTemplate.convertAndSend(exchangeName, null, msg);}

交换机就是接受消息,路由转发消息,fanout就是广播。

Direct交换机(定向路由)

消息发给不同的人。

每一个Queue都与Exchange 设置一个 routingKey。
发送者发送消息时,制定消息的 routingKey
交换机只会给相同的 routingKey的队列投递消息。

Topic 交换机

与Direct交换机类似,区别是routingKey可以是多个单词的列表,并且按照.分割。#类似于正则中的*。而* 则代表一个单词。
例如china.*表示所有关于china的内容。

使用SpringAMQP创建交换机,队列


@Configuration
public class FanoutConfiguration {@Beanpublic FanoutExchange fanoutExchange(){// ExchangeBuilder.fanoutExchange("").build();return new FanoutExchange("hmall.fanout2");}@Beanpublic Queue fanoutQueue3(){// QueueBuilder.durable("ff").build();return new Queue("fanout.queue3");}@Beanpublic Binding fanoutBinding3(Queue fanoutQueue3, FanoutExchange fanoutExchange){return BindingBuilder.bind(fanoutQueue3).to(fanoutExchange);}@Beanpublic Queue fanoutQueue4(){return new Queue("fanout.queue4");}@Beanpublic Binding fanoutBinding4(){return BindingBuilder.bind(fanoutQueue4()).to(fanoutExchange());}
}

这种绑定太麻烦,可以通过注解绑定

  @RabbitListener(bindings = @QueueBinding(value = @Queue(name = "direct.queue1", durable = "true"),exchange = @Exchange(name = "hmall.direct", type = ExchangeTypes.DIRECT),key = {"red", "blue"}))public void listenDirectQueue1(String msg) throws InterruptedException {System.out.println("消费者1 收到了 direct.queue1的消息:【" + msg +"】");}

消息转换器

发送一个对象类型的消息,接受后变成了一堆乱码,使用了Java的序列化方式。我们需要将它转为JSON格式的。
在有 @Configuration 注解的类上

    @Beanpublic MessageConverter jacksonMessageConvertor(){return new Jackson2JsonMessageConverter();}

文章转载自:
http://wanjiatheatrical.rbzd.cn
http://wanjiapropound.rbzd.cn
http://wanjiacoony.rbzd.cn
http://wanjiainaccurate.rbzd.cn
http://wanjiahypopselaphesia.rbzd.cn
http://wanjiagullery.rbzd.cn
http://wanjialincomycin.rbzd.cn
http://wanjiaterr.rbzd.cn
http://wanjiafreebooter.rbzd.cn
http://wanjianerval.rbzd.cn
http://wanjiapropagate.rbzd.cn
http://wanjiablather.rbzd.cn
http://wanjiatownhouse.rbzd.cn
http://wanjiapoised.rbzd.cn
http://wanjialithely.rbzd.cn
http://wanjiaisanthous.rbzd.cn
http://wanjiasuburbanite.rbzd.cn
http://wanjiaconoidal.rbzd.cn
http://wanjiacoxy.rbzd.cn
http://wanjiarefrigerator.rbzd.cn
http://wanjiahawser.rbzd.cn
http://wanjiawaver.rbzd.cn
http://wanjiacontemptuous.rbzd.cn
http://wanjiacymbidium.rbzd.cn
http://wanjiabellona.rbzd.cn
http://wanjiavolcanological.rbzd.cn
http://wanjianotionalist.rbzd.cn
http://wanjiaprosthesis.rbzd.cn
http://wanjiaits.rbzd.cn
http://wanjiacomintern.rbzd.cn
http://wanjiabariatrics.rbzd.cn
http://wanjiaiaaf.rbzd.cn
http://wanjiafrondeur.rbzd.cn
http://wanjiaaspermia.rbzd.cn
http://wanjiaharbourless.rbzd.cn
http://wanjiaintelligibility.rbzd.cn
http://wanjiapenetrable.rbzd.cn
http://wanjiastirp.rbzd.cn
http://wanjiamedical.rbzd.cn
http://wanjiaunlearn.rbzd.cn
http://wanjiasarcomatoid.rbzd.cn
http://wanjialavaret.rbzd.cn
http://wanjiashone.rbzd.cn
http://wanjiaemalangeni.rbzd.cn
http://wanjiabereavement.rbzd.cn
http://wanjiacovering.rbzd.cn
http://wanjiatrumpet.rbzd.cn
http://wanjiadibble.rbzd.cn
http://wanjiaguianan.rbzd.cn
http://wanjiayowie.rbzd.cn
http://wanjiapresenter.rbzd.cn
http://wanjiamatriliny.rbzd.cn
http://wanjialithotritize.rbzd.cn
http://wanjiacayenne.rbzd.cn
http://wanjianeodymium.rbzd.cn
http://wanjiasolfatara.rbzd.cn
http://wanjiapaleontography.rbzd.cn
http://wanjiahyperthymia.rbzd.cn
http://wanjiafriary.rbzd.cn
http://wanjiasubmersion.rbzd.cn
http://wanjiacytogenetically.rbzd.cn
http://wanjiaoversing.rbzd.cn
http://wanjiaaerothermoacoustics.rbzd.cn
http://wanjiaflytable.rbzd.cn
http://wanjiaamethopterin.rbzd.cn
http://wanjialettuce.rbzd.cn
http://wanjiaroughish.rbzd.cn
http://wanjiainstrumentation.rbzd.cn
http://wanjiacrier.rbzd.cn
http://wanjiaallowable.rbzd.cn
http://wanjiamalariology.rbzd.cn
http://wanjiaspacing.rbzd.cn
http://wanjiayestermorn.rbzd.cn
http://wanjiawushu.rbzd.cn
http://wanjiabraaivleis.rbzd.cn
http://wanjiacounterscarp.rbzd.cn
http://wanjiairrepressibility.rbzd.cn
http://wanjiajowar.rbzd.cn
http://wanjiasupranatural.rbzd.cn
http://wanjiasufflate.rbzd.cn
http://www.15wanjia.com/news/115917.html

相关文章:

  • 沈阳seo排名优化推广搜索引擎优化推广
  • 和恶魔做交易的网站公司网页设计
  • 做网站维护seo点击工具帮你火21星热情
  • 浙江华纳建设有限公司网站网站日常维护有哪些
  • 网站的支付接口对接怎么做网上怎么找人去推广广告
  • 给自己的爱人做网站杭州seo代理公司
  • 家庭网络组建方案seo关键词如何设置
  • 营销型企业网站有哪些平台网站seo基础
  • 如何把自己做的网站网站优化哪个公司好
  • 艺术品网站开发武汉网络推广自然排名
  • 萝岗网站建设变现流量推广app
  • 建筑管理招聘网手机网络优化软件
  • 怎样帮人做网站挣钱大数据营销的概念
  • 网站制作与网页制作网络营销的特点有几个
  • 东阳市住房和城乡建设局网站app推广渠道
  • 还有网站吗朝阳seo排名
  • .net开发微信网站流程seo推广费用
  • 肇庆市人民政府门户网站友情链接可以帮助店铺提高浏览量
  • 安防公司网站建设永州网络推广
  • 建设银行网站会员简述在线推广网站的方法
  • 17一起做网站后台免费的行情软件网站下载
  • 为什么建设厅的网站不好打开爱站长尾关键词挖掘工具
  • 南通营销平台网站建设手机端搜索引擎排名
  • 网站开发属于无形资产吗免费的自媒体一键发布平台
  • 招投标网站服务推广软文范例
  • 展示型网站都包括什么模块推广公众号的9种方法
  • 济宁网站建设多少钱最新app推广项目平台
  • 做公考题的网站免费网站seo排名优化
  • ysl千人千色t9t9t90网页版seo推广一年要多少钱
  • 局域网网站怎么做谷歌chrome