[MMO] Centrifugo - Thêm Centrifugo cho XenForo 2.3 2.3.1
Thêm tích hợp với Centrifuge.
Centrifugo là một dịch vụ tự lưu trữ có thể xử lý các kết nối qua nhiều loại hình vận chuyển trong thời gian thực và cung cấp một API xuất bản đơn giản. Centrifugo tích hợp tốt với bất kỳ ứng dụng nào - không cần thay đổi kiến trúc ứng dụng hiện có để giới thiệu các tính năng thời gian thực. Chỉ cần để Centrifugo giải quyết các kết nối liên tục.
Hiệu suất tuyệt vời
Centrifugo được xây dựng bằng ngôn ngữ Go với một số tối ưu hóa thông minh bên trong. Nó có hiệu suất tốt - thử nghiệm đứng với một triệu kết nối WebSocket và 30 triệu tin nhắn được gửi mỗi phút với phần cứng tương đương với một máy chủ hiện đại.
Tính năng phong phú
Nhiều tính năng tích hợp có thể giúp xây dựng một ứng dụng thời gian thực hấp dẫn trong một khoảng thời gian giới hạn. Centrifugo cung cấp các loại đăng ký khác nhau, lịch sử kênh nóng, hiện diện tức thì, cuộc gọi RPC. Ngoài ra còn có khả năng cho các sự kiện kết nối proxy tới phần phụ trợ của ứng dụng qua HTTP hoặc GRPC và hơn thế nữa.
Các công cụ Redis, KeyDB, Tarantool hoặc Nats broker được tích hợp sẵn giúp bạn có thể mở rộng kết nối trên các máy khác nhau. Với độ sắc nét nhất quán của Redis, KeyDB và Tarantool, bạn có thể xử lý hàng triệu kết nối đang hoạt động với các yêu cầu phần cứng hợp lý.
Được sử dụng trong sản xuất
Được bắt đầu từ gần 10 năm trước, Centrifugo (và thư viện Centrifuge cho Go được xây dựng bên trên) là một máy chủ trưởng thành được nhiều công ty trên thế giới sử dụng thành công trong sản xuất: Badoo, Ably, ManyChat, Grafana và những nơi khác.
Nhắn tin thời gian thực là gì?
Nhắn tin thời gian thực có thể giúp xây dựng các ứng dụng tương tác nơi các sự kiện có thể được gửi đến người dùng gần như ngay lập tức sau khi được phần mềm phụ trợ của ứng dụng ghi nhận bằng cách đẩy dữ liệu vào kết nối liên tục - do đó đạt được độ trễ phân phối tối thiểu.
Trò chuyện, bình luận trực tiếp, trò chơi nhiều người chơi, chỉ số phát trực tuyến có thể được xây dựng trên hệ thống nhắn tin thời gian thực.
Centrifugo xử lý các kết nối liên tục từ máy khách qua WebSocket hai chiều, SockJS và SSE một chiều (EventSource), HTTP-streaming, GRPC vận chuyển và cung cấp API để xuất bản tin nhắn cho khách hàng trực tuyến trong thời gian thực.
Khả năng mở rộng
Một điều quan trọng khác là khả năng mở rộng. Khi ứng dụng của bạn phát triển - ngày càng có nhiều người dùng thiết lập kết nối liên tục với điểm cuối thời gian thực của bạn. Một máy chủ hiện đại có thể xử lý hàng nghìn kết nối đang mở nhưng sức mạnh của một quy trình là có hạn - cuối cùng bạn sẽ hết CPU hoặc bộ nhớ khả dụng. Vì vậy, tại một số thời điểm, bạn có thể phải mở rộng kết nối của người dùng trên một số máy. Một lý do khác để mở rộng kết nối trên một số máy là tính khả dụng cao (khi một máy chủ không hoạt động).
Có nhiều giải pháp nhắn tin thời gian thực trên Github và các dịch vụ trực tuyến trả phí. Nhưng chỉ một vài trong số chúng cung cấp khả năng mở rộng ra khỏi hộp - hầu hết chúng chỉ hoạt động trong một quy trình. Không muốn nói rằng Centrifugo là máy chủ duy nhất có quy mô. Vẫn còn nhiều lựa chọn thay thế như Socket.IO, SocketCluster, Pushpin và rất nhiều lựa chọn khác. Quan điểm là khả năng mở rộng quy mô là một trong những điều chính bạn nên nghĩ đến khi tìm kiếm giải pháp thời gian thực hoặc xây dựng nó từ đầu. Bạn thực sự không thể dự đoán ứng dụng của mình sẽ cạn kiệt tài nguyên có sẵn trên một máy tính nhanh như thế nào - khả năng mở rộng phần mềm không phải là tối ưu hóa quá sớm và trong hầu hết các trường hợp, việc có giải pháp có thể mở rộng sẽ chỉ đơn giản là cung cấp cho bạn nhiều chỗ hơn để cải thiện chức năng ứng dụng.
Nhiều dịch vụ trực tuyến cũng có khả năng mở rộng quy mô. Nhưng hãy nhìn vào giá cả - hầu hết các giải pháp đó đều khá đắt. Trong trường hợp của pushher.com , bạn đang trả 500 đô la một tháng nhưng chỉ nhận được tối đa 10k kết nối và số lượng tin nhắn hàng tháng rất hạn chế mà bạn nên quan tâm. Điều này thật là buồn cười. Tất nhiên Centrifugo tự lưu trữ và bạn phải sử dụng dung lượng máy chủ của mình để chạy nó. Nhưng chi phí không thể so sánh trong nhiều trường hợp.
Centrifugo cân bằng tốt với Redis PUB / SUB, hỗ trợ tính năng phân tích sắc nét nhất quán của Redis phía ứng dụng và tích hợp với Redis Sentinel để có tính khả dụng cao. Đã phục vụ tới 500 nghìn kết nối với Centrifugo có 10 nhóm nút Centrifugo cho các kết nối trong Kubernetes và chỉ một phiên bản Redis chỉ tiêu thụ 60% lõi bộ xử lý đơn lẻ!
Ngoài ra còn có một yêu cầu ongoing pull để bổ sung khả năng mở rộng PUB / SUB với máy chủ Nats làm nhà môi giới.
Chúc các bạn thành công.
Thêm tích hợp với Centrifuge.
Centrifugo là một dịch vụ tự lưu trữ có thể xử lý các kết nối qua nhiều loại hình vận chuyển trong thời gian thực và cung cấp một API xuất bản đơn giản. Centrifugo tích hợp tốt với bất kỳ ứng dụng nào - không cần thay đổi kiến trúc ứng dụng hiện có để giới thiệu các tính năng thời gian thực. Chỉ cần để Centrifugo giải quyết các kết nối liên tục.
Hiệu suất tuyệt vời
Centrifugo được xây dựng bằng ngôn ngữ Go với một số tối ưu hóa thông minh bên trong. Nó có hiệu suất tốt - thử nghiệm đứng với một triệu kết nối WebSocket và 30 triệu tin nhắn được gửi mỗi phút với phần cứng tương đương với một máy chủ hiện đại.
Tính năng phong phú
Nhiều tính năng tích hợp có thể giúp xây dựng một ứng dụng thời gian thực hấp dẫn trong một khoảng thời gian giới hạn. Centrifugo cung cấp các loại đăng ký khác nhau, lịch sử kênh nóng, hiện diện tức thì, cuộc gọi RPC. Ngoài ra còn có khả năng cho các sự kiện kết nối proxy tới phần phụ trợ của ứng dụng qua HTTP hoặc GRPC và hơn thế nữa.
Các công cụ Redis, KeyDB, Tarantool hoặc Nats broker được tích hợp sẵn giúp bạn có thể mở rộng kết nối trên các máy khác nhau. Với độ sắc nét nhất quán của Redis, KeyDB và Tarantool, bạn có thể xử lý hàng triệu kết nối đang hoạt động với các yêu cầu phần cứng hợp lý.
Được sử dụng trong sản xuất
Được bắt đầu từ gần 10 năm trước, Centrifugo (và thư viện Centrifuge cho Go được xây dựng bên trên) là một máy chủ trưởng thành được nhiều công ty trên thế giới sử dụng thành công trong sản xuất: Badoo, Ably, ManyChat, Grafana và những nơi khác.
Nhắn tin thời gian thực là gì?
Nhắn tin thời gian thực có thể giúp xây dựng các ứng dụng tương tác nơi các sự kiện có thể được gửi đến người dùng gần như ngay lập tức sau khi được phần mềm phụ trợ của ứng dụng ghi nhận bằng cách đẩy dữ liệu vào kết nối liên tục - do đó đạt được độ trễ phân phối tối thiểu.
Trò chuyện, bình luận trực tiếp, trò chơi nhiều người chơi, chỉ số phát trực tuyến có thể được xây dựng trên hệ thống nhắn tin thời gian thực.
Centrifugo xử lý các kết nối liên tục từ máy khách qua WebSocket hai chiều, SockJS và SSE một chiều (EventSource), HTTP-streaming, GRPC vận chuyển và cung cấp API để xuất bản tin nhắn cho khách hàng trực tuyến trong thời gian thực.
Khả năng mở rộng
Một điều quan trọng khác là khả năng mở rộng. Khi ứng dụng của bạn phát triển - ngày càng có nhiều người dùng thiết lập kết nối liên tục với điểm cuối thời gian thực của bạn. Một máy chủ hiện đại có thể xử lý hàng nghìn kết nối đang mở nhưng sức mạnh của một quy trình là có hạn - cuối cùng bạn sẽ hết CPU hoặc bộ nhớ khả dụng. Vì vậy, tại một số thời điểm, bạn có thể phải mở rộng kết nối của người dùng trên một số máy. Một lý do khác để mở rộng kết nối trên một số máy là tính khả dụng cao (khi một máy chủ không hoạt động).
Có nhiều giải pháp nhắn tin thời gian thực trên Github và các dịch vụ trực tuyến trả phí. Nhưng chỉ một vài trong số chúng cung cấp khả năng mở rộng ra khỏi hộp - hầu hết chúng chỉ hoạt động trong một quy trình. Không muốn nói rằng Centrifugo là máy chủ duy nhất có quy mô. Vẫn còn nhiều lựa chọn thay thế như Socket.IO, SocketCluster, Pushpin và rất nhiều lựa chọn khác. Quan điểm là khả năng mở rộng quy mô là một trong những điều chính bạn nên nghĩ đến khi tìm kiếm giải pháp thời gian thực hoặc xây dựng nó từ đầu. Bạn thực sự không thể dự đoán ứng dụng của mình sẽ cạn kiệt tài nguyên có sẵn trên một máy tính nhanh như thế nào - khả năng mở rộng phần mềm không phải là tối ưu hóa quá sớm và trong hầu hết các trường hợp, việc có giải pháp có thể mở rộng sẽ chỉ đơn giản là cung cấp cho bạn nhiều chỗ hơn để cải thiện chức năng ứng dụng.
Nhiều dịch vụ trực tuyến cũng có khả năng mở rộng quy mô. Nhưng hãy nhìn vào giá cả - hầu hết các giải pháp đó đều khá đắt. Trong trường hợp của pushher.com , bạn đang trả 500 đô la một tháng nhưng chỉ nhận được tối đa 10k kết nối và số lượng tin nhắn hàng tháng rất hạn chế mà bạn nên quan tâm. Điều này thật là buồn cười. Tất nhiên Centrifugo tự lưu trữ và bạn phải sử dụng dung lượng máy chủ của mình để chạy nó. Nhưng chi phí không thể so sánh trong nhiều trường hợp.
Centrifugo cân bằng tốt với Redis PUB / SUB, hỗ trợ tính năng phân tích sắc nét nhất quán của Redis phía ứng dụng và tích hợp với Redis Sentinel để có tính khả dụng cao. Đã phục vụ tới 500 nghìn kết nối với Centrifugo có 10 nhóm nút Centrifugo cho các kết nối trong Kubernetes và chỉ một phiên bản Redis chỉ tiêu thụ 60% lõi bộ xử lý đơn lẻ!
Ngoài ra còn có một yêu cầu ongoing pull để bổ sung khả năng mở rộng PUB / SUB với máy chủ Nats làm nhà môi giới.
Chúc các bạn thành công.
Nguồn: Internet
Đính kèm
Bài viết liên quan
Được quan tâm
Bài viết mới