欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:分布式 RabbitMQ基礎

柚子快報邀請碼778899分享:分布式 RabbitMQ基礎

http://yzkb.51969.com/

目錄

1同步調用

2異步調用

?3RabbitMQ介紹

4入門?

1數據隔離

2 spring amqp?

5 hello word 案例

?1引入spring-amgp依賴

?2配置RabbitMQ服務端信息

3發(fā)送消息

4接收消息

6 Work Queues

7交換機

1Fanout交換機

創(chuàng)建隊列

可以使用默認的交換機也可以自己創(chuàng)建交換機

?編輯?交換機與隊列進行綁定

?編輯?2Direct交換機

3Topic交換機

4Topic交換機?

5申明隊列和交換機?

6消息轉換器

1同步調用

按照123的順序依次執(zhí)行

?如果每個業(yè)務都用50ms,呢么整個支付服務完成,則需要的時間是幾個小demo的時間加和

所以同步調用會出現(xiàn) 擴展性差 性能下降 級聯(lián)失?。ㄒ粋€小demo失效了,整個業(yè)務都失效了)的問題,但是某些業(yè)務只能使用同步調用

2異步調用

這里的消息代理類比于外賣柜,消息發(fā)送者類比于外賣員,消息接受者類比于點外賣的人?

更改為異步調用就如下

?3RabbitMQ介紹

使用docker安裝

docker run

-e RABBITMQ DEFAULT USER=itheima\ 這里設置用戶名和密碼

-e RABBITMO DEFAULT PASS=123321\

-v mq-plugins:/plugins

--name mq\

--hostname mq\

-p15672:15672\

-p5672:56721

--network hmall\

-d\

rabbitmq:3.8-management

安裝完成后 訪問192.168.150.101:15672

基本模型

4入門?

創(chuàng)建隊列

交換機負責路由轉發(fā)

此時再看queue里邊 已經和交換機綁定

1數據隔離

通過virtual host

創(chuàng)建一個用戶

不同的virtual host對數據隔離

2 spring amqp?

5 hello word 案例

沒有交換機

?1引入spring-amgp依賴

org.springframework.boot/groupId>

spring-boot-starter-amqp

?2配置RabbitMQ服務端信息

3發(fā)送消息

@SpringBootTest

public class SpringAmqpTest

@Autowired

private RabbitTemplate rabbitTemplate;

@Test

void testSendMessage2Queue(){

String queueName "simple.queue";

String msg "hello,amqp!";

rabbitTemplate.convertAndSend (queueName,msg);

}

4接收消息

@Slf4j

@Component

public class MqListener

@RabbitListener (queues "simple.queue")

public void listensimpleQueue(string msg){

System.out.println("消費者收到了simple.queuel的消息:【"+msg+"】r);

}

?

6 Work Queues

收消息?

@RabbitListener(queues "work.queue")

public void listenworkQueuel(String msg){

System.out.println("消費者1收到了work.queue的消息:【"+msg+"】");

}

@RabbitListener (queues "work,queue")

public void listenworkQueue2(String msg){

System.out.println("消費者2收到了work.queue的消息:【"+msg+"】");

}

發(fā)消息

@Test

void testworkQueue(){

String queueName "work.queue";

for (int i 1;i <50;i++){

String msg hello,worker,message_+i;

rabbitTemplate.convertAndSend(queueName,msg);

}

}

實現(xiàn)能者多勞?

7交換機

1Fanout交換機

?廣播模式

創(chuàng)建隊列

可以使用默認的交換機也可以自己創(chuàng)建交換機

?交換機與隊列進行綁定

?2Direct交換機

綁定key

接收

發(fā)送

@Test

void testSendDirect(){

String exchangeName ="hmall direct";

string msg="紅色警報";

rabbitTemplate.convertAndSend(exchangeName,routingKey:"red",msg);

}

3Topic交換機

4Topic交換機?

topic能干的事direct也能干,但是topic更加方便

5申明隊列和交換機?

代碼實現(xiàn) 不使用可視化

基于代碼

基于注解(這個更好用 更便利 更能適合于場景)

6消息轉換器

Spring的對消息對象的處理是由org.springframework.amqp.support.converter.MessageConverter來處理的。而 默認實現(xiàn)是SimpleMessageConverter,基于JDK的ObjectOutputStream完成序列化。 存在下列問題: ·JDK的序列化有安全風險 ·DK序列化的消息太大 ·JDK序列化的消息可讀性差

解決方案:

柚子快報邀請碼778899分享:分布式 RabbitMQ基礎

http://yzkb.51969.com/

文章鏈接

評論可見,查看隱藏內容

本文內容根據網絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉載請注明,如有侵權,聯(lián)系刪除。

本文鏈接:http://m.gantiao.com.cn/post/19206503.html

發(fā)布評論

您暫未設置收款碼

請在主題配置——文章設置里上傳

掃描二維碼手機訪問

文章目錄