Điểm:0

Các mối quan tâm về khả năng mở rộng với máy chủ quán rượu/phụ là gì?

lá cờ cn

Tôi đang xem xét việc thiết lập dịch vụ quán rượu/phụ với ổ cắm web. Từ những gì tôi có thể nói, các tắc nghẽn về khả năng mở rộng chủ yếu sẽ xảy ra với bộ nhớ, điều này ảnh hưởng đến số lượng ổ cắm có thể được mở cùng một lúc, vì vậy tôi nghĩ nên tách điều này ra khỏi các máy chủ khác đang chạy các dịch vụ như API. Điều này có đúng không? Tôi sẽ tưởng tượng bộ nhớ đắt hơn sức mạnh tính toán khi lưu trữ, vậy có phương pháp hay nhất nào khi tối ưu hóa loại máy chủ này để có khả năng mở rộng và chi phí không?

Mục tiêu là cung cấp cho người dùng ứng dụng web này các bản cập nhật theo thời gian thực khi các hệ thống trong trường đăng ký dữ liệu mới mà không cần phải thăm dò định kỳ phần phụ trợ. Nhưng chúng tôi không muốn tăng gấp đôi chi phí máy chủ của mình hoặc điều đó có thể không đáng. Chúng tôi đang sử dụng AWS EC2 với tính năng cân bằng tải và tự động thay đổi quy mô cho các máy chủ API hiện tại của mình.

Điểm:1
lá cờ br

Việc sử dụng bộ nhớ thực tế của một ổ cắm không nhiều.

Điều làm ngốn bộ nhớ là trạng thái liên quan đến việc máy khách nào quan tâm đến bản cập nhật nào và máy khách nào đã nhận được một bản cập nhật cụ thể.

Trong cách triển khai nguyên thủy (tức là sử dụng ngăn xếp mạng OS), trạng thái thứ hai được giữ ở dạng bộ đệm gửi đi -- vì vậy nếu một bản cập nhật được gửi tới 10.000 máy khách, dữ liệu sẽ được sao chép 10.000 lần, mỗi bản sao được thêm vào một hàng đợi gửi đi, trong đó nó được bổ sung thêm các tiêu đề cần thiết (có chứa trạng thái trên mỗi kết nối), sau đó, một bộ mô tả được xây dựng cho phần cứng hướng dẫn nó gửi một gói là sự kết hợp của các tiêu đề và tải trọng.

Bản sao tải trọng cho mỗi máy khách được lưu trong bộ nhớ cho đến khi nó được máy khách thừa nhận và đó là nơi bắt nguồn các yêu cầu về bộ nhớ. Bộ nhớ này không thể được phân trang, do đó, nó tạo ra áp lực bộ nhớ và bộ đệm cho các ứng dụng khác.

Có những triển khai triển khai các phần của ngăn xếp mạng bên trong chính chương trình máy chủ và những triển khai này có thể tránh các bản sao bằng cách đếm tham chiếu hoặc tạo lại tải trọng theo yêu cầu, cho phép bạn thoát khỏi việc sử dụng bộ nhớ ít hơn rất nhiều nhưng liên quan đến rất nhiều mã hóa phức tạp để thực sự có thể mở rộng, đặc biệt là các máy chủ nhiều ổ cắm đặt ra một số vấn đề thú vị mà ngăn xếp mạng hệ điều hành đã biết cách giải quyết.

Các tùy chọn bạn có

  1. chạy dịch vụ quán rượu/phụ trên cùng một máy chủ với ứng dụng
  2. chạy dịch vụ pub/sub trên một máy chủ chuyên dụng với hệ điều hành mạng
  3. chạy dịch vụ quán rượu/phụ trên một máy chủ chuyên dụng với mạng tùy chỉnh
  4. chạy dịch vụ pub/sub trên nhiều máy chủ chuyên dụng

là chiến lược leo thang của bạn khi dịch vụ phát triển. Chuyển từ dùng chung sang dùng riêng không yêu cầu lập kế hoạch nhiều và có thể được thực hiện khi cần thiết; một khi điều đó đã xảy ra, đã đến lúc chuẩn bị các giai đoạn tiếp theo.

Mở rộng quy mô lên nhiều máy chủ sẽ đưa tính không xác định vào hệ thống của bạn, vì khách hàng có thể nhận được các bản cập nhật theo thứ tự khác nhau, vì vậy, để bước mở rộng quy mô này thành công, khách hàng của bạn cần biết điều này và có thể đưa ra quan điểm nhất quán -- cho dù đó là tầm thường hay khó khăn phụ thuộc vào ứng dụng thực tế của bạn.

tl;dr: không cần phải tối ưu hóa sớm. Tách dịch vụ ra để bước thay đổi quy mô đầu tiên là thay đổi cấu hình đơn giản và bắt đầu tối ưu hóa ngay khi điều đó xảy ra.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.