Đã bao lâu rồi bạn chưa gửi tin nhắn?
1. Giới thiệu bối cảnh
Theo kiến trúc phân tán thông thường, dịch vụ "Trung tâm tin nhắn" thường tích hợp kênh "SMS" như một phương tiện quan trọng để tiếp cận thông tin. Các phương tiện thường được sử dụng khác bao gồm: "WeChat", "Ding", "E-mail" và các phương thức khác. ;
Việc thiết kế và triển khai "Trung tâm tin nhắn" đã được tóm tắt chi tiết trước đây. Bài viết này tập trung vào phương pháp kênh SMS của Trung tâm tin nhắn;
Logic triển khai SMS cũng tuân theo thiết kế cơ bản của trung tâm nhắn tin, tức là sau khi tin nhắn được tạo ra, nó sẽ được gửi và tiêu thụ thông qua trung tâm nhắn tin, đây là mô hình sản xuất và tiêu thụ điển hình;
2. Dock bên kênh
Trong hầu hết các hệ thống, việc triển khai chức năng SMS dựa vào việc đẩy SMS của bên thứ ba. Trải nghiệm "Kết nối ba bên" đã được tóm tắt trước đó và sẽ không được lặp lại ở đây;
Tuy nhiên, điều khác biệt so với đế cắm thông thường của bên thứ ba là các kênh SMS thường kết nối với nhiều tình huống gửi tin nhắn để xử lý các tình huống gửi tin nhắn khác nhau, chẳng hạn như các tình huống "mã xác minh" phổ biến, các tình huống "nhắc nhở thông báo" và "quảng cáo tiếp thị" kịch bản;
Có một số yếu tố cốt lõi cần được xem xét ở đây, chẳng hạn như vấn đề chi phí, tính ổn định của nền tảng SMS, tính kịp thời, tốc độ tiếp cận và khả năng tương tranh khác nhau cần được xem xét toàn diện;
Mã xác minh: Kịch bản này thường là mối liên kết tương tác chính giữa người dùng và sản phẩm. Nó phụ thuộc rất nhiều vào tính kịp thời và tính ổn định của tin nhắn văn bản. Nếu có vấn đề, nó sẽ ảnh hưởng trực tiếp đến trải nghiệm của người dùng;
Nhắc nhở thông báo: Tình huống này cũng liên quan chặt chẽ đến hoạt động kinh doanh, nhưng nói một cách tương đối, tính kịp thời của việc tiếp cận SMS không cao, miễn là cuối cùng người dùng cũng được tiếp cận trong một khoảng thời gian nhất định;
Xúc tiến tiếp thị: Lượng dữ liệu trong kịch bản này tương đối lớn và từ hiệu quả thực tế, có sự không chắc chắn lớn, đồng thời sẽ tập trung vào chi phí và khả năng đồng thời của kênh SMS;
3. Kênh SMS
1. Thiết kế quy trình
Nhìn tổng thể quá trình triển khai SMS, có thể chia thành ba phần: "1" kịch bản kinh doanh về các yêu cầu SMS, "2" khả năng tích hợp SMS của trung tâm nhắn tin, "3" kênh SMS của bên thứ ba để kết nối;
Kịch bản nhu cầu: Trong hệ thống sản phẩm, có nhiều kịch bản cần có tin nhắn văn bản, nhưng điều quan trọng nhất là tiếp cận người dùng, chẳng hạn như xác minh danh tính, thông báo, tiếp thị, v.v., sau đó là các thông báo nội bộ quan trọng;
Trung tâm tin nhắn: Cung cấp một phương thức giao diện thống nhất để gửi tin nhắn trong các tình huống kinh doanh khác nhau được gửi đến Trung tâm tin nhắn để duy trì và quản lý thống nhất. Logic đẩy tương ứng được điều chỉnh theo nguồn và đích của tin nhắn. phương pháp ;
Việc gắn kênh: Tùy thuộc vào tình huống nhu cầu cụ thể, nếu chỉ có nhu cầu gắn mã xác minh, bạn chỉ có thể tích hợp một kênh hoặc bạn có thể gắn nhiều kênh SMS của bên thứ ba từ góc độ chi phí. khả năng mở rộng trong quá trình thiết kế;
2. Logic cốt lõi
Chỉ từ góc độ quản lý SMS, độ phức tạp logic không cao lắm mà phụ thuộc rất nhiều vào việc xử lý các chi tiết. Nhiều điểm tinh tế không được chú ý có thể dẫn đến lỗi đẩy;
Trên thực tế, trong toàn bộ logic, ngoại trừ sự phụ thuộc kịp thời của chức năng "mã xác minh", "hàng đợi MQ" có thể được chọn để tách rời trong các tình huống liên hệ SMS khác. Thiết kế của trung tâm nhắn tin cũng có độ phức tạp quy trình cao. Khả năng sử dụng, hình ảnh chỉ tập trung mô tả tình huống nhắn tin;
3. Tình huống sử dụng
3.1 Mã xác minh
Về kịch bản "mã xác minh" trong chức năng "SMS", cá nhân tôi cảm thấy nó phức tạp nhất trong các ứng dụng thông thường, có thể liên quan đến các vấn đề tích hợp "tài khoản" và "kinh doanh" liên quan;
[Nhận mã xác minh].
Quá trình này tương đối ngắn, chỉ cần hoàn thành việc xác minh số điện thoại di động, nó có thể được thực hiện bình thường theo logic đẩy SMS;
Điều cần giải thích ở đây là để đảm bảo tính bảo mật của hệ thống, tính kịp thời của mã xác minh thường được đặt và chỉ được sử dụng một lần. Tuy nhiên, đôi khi người dùng có thể đăng ký mã xác minh nhiều lần do bị chậm trễ. các vấn đề. Bộ nhớ đệm có thể rất hiệu quả. Cấu trúc dữ liệu quản lý tình huống này;
[Tiêu thụ mã xác minh].
Việc sử dụng mã xác minh rất đơn giản. Nhiều sản phẩm hiện tại đã làm suy yếu khái niệm đăng nhập và đăng ký trong thiết kế. Miễn là cơ chế mã xác minh được sử dụng, các tài khoản mới và quy trình kinh doanh liên quan sẽ được tạo theo mặc định;
Bất kể tình huống kinh doanh nào dựa vào "mã xác minh", khi xử lý quy trình, trước tiên bạn phải xác minh xem "mã xác minh" có chính xác hay không trước khi bạn có thể đánh giá liệu quy trình có được thực hiện theo hướng xuống hay không. Trong một số trường hợp nhạy cảm, nó cũng sẽ hạn chế. số lượng mã xác minh không chính xác để ngăn chặn các vấn đề về bảo mật tài khoản;
3.2 Phạm vi tiếp cận SMS
Cho dù đó là "nhắc nhở thông báo" hay "quảng cáo tiếp thị", bản chất là theo đuổi mục tiêu tiếp cận thông tin cuối cùng. Hầu hết các nhà khai thác SMS đều có thể cung cấp khả năng này, nhưng các phương pháp xử lý trong hệ thống rất khác nhau;
Trong một số quy trình kinh doanh, tin nhắn SMS cần được gửi đến người dùng. Về yêu cầu tiếp thị và quảng cáo, tin nhắn SMS thường được gửi theo đợt. Trong một số yêu cầu, có thể có vấn đề với thống kê tỷ lệ chuyển đổi trong logic nội bộ. là cần thiết để theo dõi các tin nhắn SMS có liên quan;
4. Thiết kế mô hình
Do SMS được tích hợp vào dịch vụ trung tâm tin nhắn nên các mô hình cấu trúc dữ liệu liên quan của nó đều được sử dụng lại để quản lý tin nhắn. Để biết chi tiết cụ thể, vui lòng tham khảo nội dung của "Trung tâm tin nhắn" và sẽ không lặp lại ở đây;
Từ góc độ kỹ thuật, nó liên quan đến các mô hình sản xuất và tiêu dùng cổ điển, kết nối nền tảng của bên thứ ba, quản lý máy trạng thái và tác vụ, v.v. Là dịch vụ cơ bản của kiến trúc phân tán, trung tâm nhắn tin cũng phải xem xét một mức độ nhất định về khả năng tái sử dụng trong thiết kế của nó .
5. Mã nguồn tham khảo
Tài liệu lập trình: https://gitee.com/cicadasmile/butte-java-note Kho ứng dụng: https://gitee.com/cicadasmile/butte-flyer-parent
Cuối cùng, bài viết về thiết kế và triển khai kênh "SMS" kết thúc tại đây. Nếu bạn muốn biết thêm về thiết kế và triển khai kênh "SMS", vui lòng tìm kiếm các bài viết về CFSDN hoặc tiếp tục duyệt các bài viết liên quan. mong bạn sẽ ủng hộ blog của mình trong tương lai nhé! .
Tôi là một lập trình viên xuất sắc, rất giỏi!