NSQ의 Golang 메시지 큐

NSQ

NSQ 하루에 수십 억 개의 메시지를 처리 ​​할 수있는 대규모 작동하도록 설계 분산 실시간 메시징 플랫폼입니다.

그것은 분산 및 분산 토폴로지 지원 내결함성 및 고 가용성의 단일 장애 지점을 촉진하지 않으며, 신뢰할 수있는 메시지 전달 보증을 제공합니다.

장점과 단점
장점 :
1, 아주 쉽게, 바이너리 실행 파일, 어떤 맥락없이 따라 배포
너무 가벼운 구성 매개 변수가 필요 단지 간단한 구성을 직접 사용할 수 없습니다, 2
(3), 고성능 (이동 작성 )
4, 손실 된 메시지가 존재하지 않는 경우에
단점 :
1의 메세지 시퀀스
2에서, 노드 사이의 메시지없이 복사 없다
(3)에는 인증이

장면 메시지 큐

현장에서 소개

비동기 실행

데이터베이스에 성공적으로 등록 정보를 한 후, 등기 우편 동시에 전송 SMS 등록 작업을 보냅니다. 그리고 모든 작업이 실행 한 후, 클라이언트에 정보를 반환합니다. 직렬 모드와 비교하여, 병렬 모드가 효율을 향상시킬 수 있고, 실행 시간을 감소시킨다.
병렬 :

비동기 모드 :

디커플링의 응용 프로그램

장면 설명 : 사용자의 주문 후, 주문 시스템은 인벤토리 시스템에 통지 할 필요가있다.

전통적인 접근 방식은 다음과 같습니다 주문 인벤토리 시스템 시스템 호출 인터페이스를 제공합니다. 아래와 같이 :

전통적인 방법은 다음과 같은 단점이 있습니다
인벤토리 시스템 액세스 실패를 가정, 1, 주문 생성 실패의 결과로, 재고 주문을 줄이기 위해 실패
오버 주문 시스템 인벤토리 시스템과 함께 2,

그렇다면 상기 단점을 해결하기 위해? 아래 그림과 같이 메시지 큐의 도입이 필요, 메시지 큐 아키텍처를 소개한다 :

  • 주문 시스템 : 단일 사용자, 데이터 지속성에 대한 주문 처리 시스템 및 후 메시지 큐에 메시지를 기록, 주문 생성 반환 성공
  • 인벤토리 시스템 : 풀 / 푸시 모드를 사용하여는, 주문 재고 정보, 재고 운영에 다음 하나의 정보 시스템을 획득합니다.

흐름 컷 풍수

시나리오 : 스파이크 활동, 일반적으로 인해 너무 많은 트래픽, 트래픽 급증으로 이어지는은 응용 프로그램이 중단. 이 문제를 해결하기 위해 일반 필요가 프런트 엔드 응용 프로그램에서 메시지 큐를 추가합니다.

1、可以控制参与活动的人数;
2、可以缓解短时间内高流量对应用的巨大压力;
流量削锋处理方式系统图如下:

  • 服务器在接收到用户请求后,首先写入消息队列。这时如果消息队列中消息数量超过最大数量,则直接拒绝用户请求或返回跳转到错误页面;
  • 秒杀业务根据秒杀规则读取消息队列中的请求信息,进行后续处理。

추천

출처www.cnblogs.com/jasonminghao/p/12387558.html