2011-08-24 24 views

Trả lời

4

tôi sẽ cố gắng trả lời này như là một lời giải thích nhẹ nhàng, chứ không phải là một sự cố kỹ thuật của các tính năng:

Người ta có thể nói rằng Finagle là một thư viện tin nhắn không đồng bộ cho phép các dịch vụ kết nối với nhau một cách tự do (không gắn chặt với các tiêu chuẩn tích hợp hệ thống kiến ​​trúc) trong khi hỗ trợ nhiều giao thức.

Từ Finagle website:

Finagle là một chồng mạng cho JVM mà bạn có thể sử dụng để xây dựng đồng bộ Remote Procedure Call (RPC) client và server trong Java, Scala, hoặc bất kỳ ngôn ngữ JVM-tổ chức . Finagle cung cấp một bộ công cụ độc lập với giao thức phong phú.

Kiến trúc thông báo không đồng bộ là cấu trúc thông điệp không đồng bộ thường tuân theo các tiêu chuẩn và giao thức công nghiệp. ESB khuyến khích một hệ thống lưu lượng tin nhắn được điều khiển và định tuyến giữa các hệ thống và nơi máy chủ có thể đăng ký dịch vụ của họ và khách hàng có thể đăng ký những thông điệp mà họ quan tâm. Các dịch vụ được cung cấp bởi máy chủ có thể được đăng ký và phiên bản.

Bạn thường sẽ thấy Finagle được sử dụng ở đâu đó giữa trang web và dịch vụ phụ trợ. Tuy nhiên, bạn thường sẽ tìm thấy một ESB bên trong một công ty lớn, nơi có trách nhiệm tích hợp các hệ thống như tài chính, hỗ trợ, bán hàng, v.v.

Cả hai giải pháp đều cung cấp thông báo không đồng bộ và bộ đệm để mở rộng khác nhau, nhưng không được thiết kế để giải quyết cùng một vấn đề. Đối với ESB, bạn có thể nghĩ 'nghiêm khắc, doanh nghiệp', nhưng đối với Finagle bạn có thể nghĩ 'linh hoạt, web'.

Hope this helps

Cập nhật:

Không hẳn có liên quan, nhưng nếu bạn đang khám phá không gian này, tôi sẽ xem xét Kafka những ngày này.

2

Cả hai giải quyết vấn đề hoàn toàn khác nhau:

  • Một ESB là một middleware trung gian cung cấp chuyển đổi tin nhắn và định tuyến, thích ứng giao thức và các hoạt động giá trị gia tăng khác (như dàn nhạc, giao hàng đảm bảo, lọc idempotent ...) . Nó nằm ở giữa người tiêu dùng và nhà cung cấp dịch vụ của bạn và minh bạch (nghĩa là không có bất kỳ thay đổi nào về người tiêu dùng hoặc nhà cung cấp) cung cấp các tính năng khác nhau của nó.
  • Hệ thống RPC cung cấp công nghệ máy khách và máy chủ để thực hiện các hoạt động RPC.
+0

Bạn vui lòng tạo Finagle làm thẻ không, tôi không có đặc quyền. – Jack

+0

Để chắc chắn: đã hoàn tất. –

2

RPC và ESB là hai mẫu kiến ​​trúc. Mặc dù RPC thường là một yêu cầu trả lời và đồng bộ về bản chất, một ESB hoạt động trên khái niệm nhắn tin (giải thích đơn giản) và không đồng bộ về bản chất. ESB là nền tảng cho bất kỳ triển khai SOA nào. ESB cho phép khớp nối lỏng lẻo do đó thúc đẩy sự nhanh nhẹn thật sự. Một ví dụ đơn giản từ phối cảnh thực hiện như sau:

Dịch vụ web là một RPC điển hình. Người tiêu dùng bị ràng buộc chặt chẽ với nhà sản xuất và bất kỳ thay đổi nào trong hợp đồng về phía nhà sản xuất, sẽ yêu cầu thay đổi về phía người tiêu dùng.

Trong ESB, người tiêu dùng dịch vụ không trực tiếp gọi nhà sản xuất dịch vụ. Nó chỉ đặt thông điệp trong xe buýt và dựa trên các quy tắc (hòa giải viên), nhà sản xuất dịch vụ thích hợp sẽ xử lý nó. Nếu người tiêu dùng dịch vụ và nhà sản xuất dịch vụ nói theo các định dạng khác nhau, ESB cung cấp cơ sở để thực hiện việc chuyển đổi (như định dạng mã zip dưới dạng xxxxx-xxxx, tách tên thành họ và tên, v.v.).

Đây chỉ là giải thích đơn giản. Để biết thêm thông tin, xin vui lòng kiểm tra các liên kết sau đây:

Why do developers need an Enterprise Service Bus?

Enterprise Service Bus