2014-11-17 18 views
7

Lý do gì có chống lại (hoặc cho) sử dụng các tính năng của Bus Dịch vụ Doanh nghiệp khi xây dựng một dịch vụ tổng thể gắn với kiến ​​trúc vi dịch vụ (http://martinfowler.com/articles/microservices.html)? Tại sao chúng ta nên sử dụng ống câm và điểm cuối thông minh như trái ngược với việc sử dụng ống thông minh hơn và có thể phát triển các dịch vụ đơn giản hơn?Tại sao Kiến trúc Micro-Services không dựa trên Bus dịch vụ doanh nghiệp?

Trả lời

3

Thuật ngữ ESB đã bị quá tải, chủ yếu trong thế giới Java, có nghĩa là một phần cơ sở hạ tầng lớn và phức tạp, kết thúc việc lưu trữ một loạt các logic được triển khai kém ở vị trí trung tâm.

Các công nghệ có trọng lượng nhẹ hơn như Apache Caml hoặc NServiceBus không khuyến khích phương pháp tiếp cận này và thực sự tuân theo phương pháp "đường ống câm/điểm cuối thông minh" đã trở thành xương sống của Internet ngay từ đầu.

NServiceBus đặc biệt tập trung vào việc cung cấp một khung mức cao hơn hầu hết các thư viện tin nhắn để giúp xây dựng điểm cuối thông minh dễ dàng hơn thông qua hỗ trợ sâu hơn cho xử lý tin nhắn một lần và chỉ một lần.

Tiết lộ đầy đủ - Tôi là người sáng lập NServiceBus.

1

Vấn đề với cách sử dụng ESB là nó tạo ra sự ghép nối giữa ESB và dịch vụ bằng cách có một số logic nghiệp vụ được tích hợp vào ESB. Điều này sẽ làm cho việc triển khai một dịch vụ đơn lẻ trở nên khó khăn hơn và ngày càng làm cho ESB phức tạp hơn và khó duy trì.

5

Đây là một câu hỏi rất lớn và có thể không được trả lời hiệu quả trong định dạng Q & của SO.

Nó phụ thuộc vào những gì bạn đang làm với nó.

Nếu bạn đang xây dựng một sản phẩm đơn lẻ bao gồm nhiều mẩu chức năng nhỏ có thể được coi là độc lập thì các dịch vụ nhỏ có thể là cách để đi.

Nếu bạn là một tổ chức doanh nghiệp lớn nơi CNTT không phải là yếu tố chính của hội đồng quản trị là lợi thế cạnh tranh và bạn làm việc trong ngành công nghiệp có quy định nghiêm ngặt. các phòng ban, một số từ các vụ mua lại mới, nơi bạn không thể kiểm soát tập trung tất cả các thiết bị đầu cuối và các ứng dụng trong tổ chức của bạn, sau đó có thể bạn cần một ESB.

Tôi không muốn bị buộc tội cố gắng liệt kê TẤT CẢ lợi thế của cả hai cách tiếp cận ở đây vì chúng sẽ không đầy đủ và có thể lỗi thời nhanh chóng.

Có nói rằng, trong một nỗ lực để có ích cho OP:

Nếu bạn nhìn lên như thế nào Spotify và Netflix làm microservices bạn có thể tìm thấy nhiều thứ họ thích về phương pháp này, bao gồm nhưng không giới hạn: một cách dễ dàng triển khai màu xanh/xanh của các dịch vụ riêng lẻ, cấu trúc nhóm tách rời và cách ly các lỗi.

ESB cho phép bạn quản lý tập trung và thực thi các chính sách, như yêu cầu pháp lý, kiểm tra mọi thứ ở một nơi thay vì hy vọng mỗi nhóm có ghi nhớ về ghi nhật ký mọi thứ, cung cấp số liệu thống kê toàn cầu về tải và thời gian hoạt động cũng như nhiều thứ khác. ESB phát triển từ các doanh nghiệp lớn nơi người lái xe không phải là khách hàng phản hồi trên trang web và tốc độ đổi mới (trong số những thứ khác) nhưng Thỏa thuận mức dịch vụ, hiệu quả chi phí và quy định (trong số những thứ khác).

Có rất nhiều giá trị trong cả hai cách tiếp cận. Microservices đang được viết về rất nhiều vào lúc này, giống như ESBs đã được 10-15 năm trước đây. Có lẽ đó là một sự tiến triển, có lẽ nó chỉ là một sự thay đổi, có lẽ nó chỉ là các công ty sản phẩm tiêu dùng cần phải tiếp thị bản thân và các doanh nghiệp lớn muốn giữ thông tin riêng tư. Chúng ta có thể tìm thấy trong 10 năm nữa. Bây giờ, nó phụ thuộc rất nhiều vào những gì bạn đang làm. Như với hầu hết mọi thứ trong lập trình, tôi bắt đầu đơn giản và chỉ chuyển sang giải pháp phức tạp hơn nếu bạn cần.

1

Vì dịch vụ bị cô lập và ống được tái sử dụng.

Ý tưởng cốt lõi của dịch vụ microservices là cách ly - bất kỳ phần nào của hệ thống đều có thể được thay thế mà không ảnh hưởng đến các dịch vụ khác. Ống thông minh có nghĩa là chúng có cấu hình, chúng có trạng thái, chúng có hành vi phức tạp (thường có nghĩa là khó đoán trước). Do đó, ống thông minh ít có khả năng duy trì hành vi chính xác của chúng theo thời gian.

Nhưng - thay đổi đường ống sẽ ảnh hưởng đến mọi dịch vụ được đính kèm trong khi thay đổi dịch vụ chỉ ảnh hưởng đến các dịch vụ khác sử dụng dịch vụ đó.

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