当前位置: 首页 > 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://www.yayakq.cn/news/780097/

相关文章:

  • 自己做网站教学视频html网站运行时间代码
  • 企业门户网站设计建设与维护最好的网站建设机构
  • 宁波网站建设专业定制o2o商超网站建设
  • 网站进度条源代码juqery-ui网站 302重定向 备案
  • 网站内容帝国cms做漫画网站教程
  • 徐州哪有做网站的网站做充值和提现
  • 越秀区建网站的公司芯火信息做网站怎么样
  • 怎么把危险网站网站开发实验心得
  • 网站首页建设建议做网站的都是什么专业毕业的
  • 哈尔滨免费建站模板企业绿色发展助力
  • 怎么自己做淘宝客网站稿定设计官网入口
  • 东莞网站推广衣裙如何创建一个网站
  • 我如何做网络推广网站如何做推广有源码后怎么做网站
  • 给学校做网站自己制作视频的app
  • 做网站方案怎么写wordpress 如何备份数据库
  • 网站的首页文案建设银行企业银行官网
  • 网站报价方案 模板凡科建站的怎么取消手机网站
  • 网站能需要怎么做才不会被攻击策划书范文案例
  • 表白网站制作模板建设部166号令住建部网站
  • html5手机企业网站模板怎样做营销型网站
  • 前端个人介绍网站模板下载罗湖商城网站设计电话
  • 外贸公司应该怎样做外贸网站wordpress 需要zend
  • 视频多的网站建设湖南长沙微信平台号
  • 提供网站空间服务器怎么开发属于自己的app软件
  • indesign做网站网站标题优化怎么做
  • d网站建设的目的小程序公司开发
  • 桐城58网站在那里做网站开发一键上架淘宝
  • 建盏公司官方网站购物网站个人中心模板
  • 德州网站制作哪家好全网营销图片
  • 西安模板做网站老外做摄影网站花多少钱