2015-07-23 17 views
6

Gần đây đã biết về Azure Service Fabric và có vẻ là một cách hay để phát triển các ứng dụng mở rộng như một loạt các dịch vụ vi mô. Ở khắp mọi nơi nó nói rằng chúng ta cần phải có các dịch vụ web front end không trạng thái và các dịch vụ nội bộ được phân chia trạng thái. Các dịch vụ nội bộ scale by partitioning the data.Tôi có thể sử dụng cân bằng tải để mở rộng các ứng dụng Azure Service Fabric

Nhưng điều gì sẽ xảy ra với các dịch vụ giao diện người dùng đang tải? .Các cơ hội rất ít khi họ không làm gì ngoài việc dựa vào các dịch vụ nội bộ của nhà nước. Tuy nhiên, chúng ta có nên sử dụng cân bằng tải trước dịch vụ kết thúc trước không? Nếu vậy, chúng ta có thể lưu trữ quá giống nhau thông qua mô hình Stateless của Service Fabric bằng OWIN hoặc bất kỳ máy chủ web nào khác không?

Câu hỏi được hỏi trong SO nhưng dưới dạng nhận xét. Nó không nhận được trả lời như câu hỏi ban đầu là khác nhau. Azure Service Fabric usage

Trả lời

9

Có, bạn chắc chắn cũng muốn phân phối tải trên các dịch vụ không quốc tịch của mình. Điểm khác biệt chính là vì chúng không có quốc tịch, chúng có thể xử lý các yêu cầu theo kiểu vòng tròn.

Trong khi các dịch vụ trạng thái có phân vùng, ánh xạ tới từng phần của trạng thái dịch vụ, các dịch vụ không quốc tịch chỉ đơn giản có các cá thể, là các dòng vô tính giống nhau, chỉ trên các nút khác nhau. Bạn có thể đặt số lượng cá thể trong định nghĩa dịch vụ mặc định trong tệp kê khai ứng dụng. Ví dụ, tuyên bố này sẽ đảm bảo rằng luôn luôn có 5 trường hợp dịch vụ không quốc tịch của bạn chạy trong cụm:

<Service Name="Stateless1"> 
    <StatelessService ServiceTypeName="Stateless1Type" InstanceCount="5"> 
    <SingletonPartition /> 
    </StatelessService> 
</Service> 

Bạn cũng có thể thiết lập các InstanceCount -1, trong trường hợp dịch vụ Vải sẽ tạo ra một thể hiện của bạn dịch vụ phi trạng thái trên mỗi nút.

Trình cân bằng tải Azure sẽ xoay vòng lưu lượng truy cập đến của bạn trên mỗi phiên bản của bạn. Thật không may, không có cách nào tốt để mô phỏng điều này trong môi trường một hộp ngay bây giờ.

+0

Tại sao chúng ta không thể mô phỏng nó trong môi trường một hộp? Khi tôi cố gắng thêm nhiều phiên bản vào một dịch vụ với một điểm cuối web (TCP/cổng 80), nó đã phàn nàn về cổng 80 đang bận. Đó có phải là vấn đề không? – rmac

+2

Hai lý do: 1) Bộ cân bằng tải Azure nằm ngoài Vải dịch vụ và không có tương đương cục bộ. 2) Bạn không thể có nhiều quy trình nghe trên cùng một điểm cuối/cổng trên cùng một máy. –

+0

@ SeanMcKenna-MSFT tuyên bố thứ hai của chính nó là không đúng vì các cửa sổ có tính năng chia sẻ cổng TCP cho phép nhiều quá trình lắng nghe trên cùng một cổng nhưng với URI khác nhau. Dường như nếu URI có một số id duy nhất thì bạn có thể giải quyết vấn đề này. Hoặc nếu có thể, hãy lắng nghe trên các cổng tạm thời và đăng ký tự động vào một cái gì đó như nginx tại địa phương mà lắng nghe trên cổng 80 không thực hiện vòng quay cho các phiên bản cục bộ đã đăng ký. chỉ cần bão não sau khi nhìn thấy những ý kiến ​​này .... – Csaba

Các vấn đề liên quan