인터넷의 지속적인 발전으로 인해 사용자 간의 정보 전송 방법과 채널이 점점 더 많아지고 있습니다. 오늘은 창핑 베이다 제이드 버드에서 SMS 통신 서비스 구축에 대해 살펴보겠습니다. 주요 구성 요소는 무엇입니까? 비기능적 요구사항은 주로 다음과 같습니다. 1. 안정적인 전송 보장:
두 부분으로 나뉘는데, 하나는 서비스 자체의 안정성이고, 다른 하나는 SMS 서비스 제공업체의 안정성입니다. .
p>서비스 자체의 안정성은 마이크로서비스 플랫폼이 이미 가지고 있는 일부 도구에 의해 보장될 수 있으며, 다른 하나는 여기서 논의되지 않습니다. , 그리고 외부적으로 보장되어야 하는 것들은 항상 취약하기 때문에 하나의 서비스 제공업체만 사용할 수 없으며 여러 서비스 제공업체를 사용해야 합니다.
2. 편리한 확장:
다음 포인트는 서비스 제공자를 교체해야 할 수도 있고, 서비스 제공자의 쉬운 접근을 보장해야 한다는 것입니다.
3. 자산 보호:
SMS의 한 가지 차이점 이메일, WeChat 알림 등은 비용이 더 많이 든다는 점입니다. 메시지 하나의 가격이 약 3센트로 더 비쌉니다. 긴 문자 메시지는 보호를 제한하지 않으면 여러 메시지로 분할되기 쉽습니다.
4. 기술 선택
위 요구 사항을 충족한 후에는 회사의 기존 기본 웹 서비스를 사용하면 됩니다. 정보 전송 및 기록 보고의 경우, 그 양이 매우 클 수 있으며(실제로 온라인에 접속한 후에는 3개월 동안 1,000개 미만으로 괜찮았습니다), 통계는 MySQL 등을 사용하여 특정 내용을 기반으로 할 수 있습니다. 신뢰성이 높지 않으니 ES를 선택하세요. 보안을 위해 휴대폰 번호의 일일 전송량과 전송 빈도를 제한해야 합니다. 이는 redis로 쉽게 해결할 수 있습니다. 5. 여러 서비스 제공업체에 액세스하려면 하나의 서비스 제공자는 동시에 여러 개의 SMS 기능을 제공할 수 있으며, 동일한 SMS 기능은 제공되는 모든 서비스 제공자를 차례로 호출해야 하며, 장애가 발생한 경우에도 재시도를 지원해야 합니다. . 일부 서비스 제공자는 비활성화되거나 새로운 서비스 제공자를 쉽게 추가할 수 있습니다. 6. 전송 제한 설정 휴대폰 번호 및 IP별 전송 횟수는 레이드 증분 및 타임스탬프 관련 키를 사용하여 쉽게 수행할 수 있습니다. 여기서는 전송 제한에 대해 먼저 설명하지 않습니다. 서로 다른 기능을 사용하기 때문에 서로 다른 기능을 대상으로 하며, 한 기능의 한계를 초과하면 다른 기능에 영향을 미칠 수 없습니다. 7. 사용되는 레벨은 다음과 같습니다.
기능 글로벌 횟수(횟수) -> 단일 액세스 애플리케이션 제한(횟수/화이트리스트/스위치) -> 단일 휴대폰/IP 제한(횟수/화이트리스트/스위치) -> 위험 관리 서비스(스위치), 후자의 횟수는 통계 및 비즈니스 변화에 따라 적절하게 조정되어야 합니다. 8. 성능
이 서비스는 분명히 IO 집약적이며 계산이 없습니다. 주로 호출됩니다. 다양한 외부 서비스가 IO 반환을 기다리고 있으므로 요청에 사용되는 스레드 풀을 구성할 수 있습니다. 실제로는 HTTP 연결 풀이 메인이지만 연결 시간 초과와 읽기 시간 초과는 너무 크게 설정하는 데 적합하지 않습니다.