2015-11-27 27 views
5

Tôi nghiên cứu về kiến ​​trúc Microservices và tôi thực sự tự hỏi điều gì đó.Microservice, amqp và đăng ký/khám phá dịch vụ

Tôi khá đồng ý với việc sử dụng (phát lại) dịch vụ khám phá để yêu cầu khả năng trên các dịch vụ nhỏ dựa trên REST. Tôi cần phải biết đâu là dịch vụ (hoặc ít nhất là mặt trước của cụm máy chủ) để thực hiện các yêu cầu. Vì vậy, nó có ý nghĩa để có thể khám phá một cổng ip: trong trường hợp đó.

Nhưng tôi đã tự hỏi điều gì có thể là mục đích của việc sử dụng dịch vụ đăng ký/khám phá khi giao dịch với AMQP (chỉ dựa trên, không có các cuộc gọi HTTP có thể)?

Ý tôi là, sử dụng AMQP giống như "Tôi cần điều đó và tôi mong ai đó trả lời tôi", tôi không phải biết ai là máy chủ gửi trả lời cho tôi.

Vì vậy, mục đích của việc sử dụng dịch vụ đăng ký/khám phá với AMQP dựa trên dịch vụ microservice là gì?

Nhờ sự giúp đỡ của bạn

+0

Câu hỏi thú vị. Tôi cũng nghĩ rằng MOM đã làm việc theo cách giống như một tính năng khám phá dịch vụ. Nó cung cấp độ trong suốt và độ đàn hồi của vị trí. MOM giống như đăng ký dịch vụ và tất cả những gì bạn cần biết là tên dịch vụ, ví dụ: tên trao đổi, và các tuyến đường MOM và tải cân bằng tin nhắn của bạn đến một trong những nhà cung cấp dịch vụ (người tiêu dùng) và sau đó nhận được câu trả lời cho bạn. Thành thật mà nói, tôi đã không nhận được các điểm được cung cấp trong câu trả lời duy nhất hiện nay. –

Trả lời

4

AMQP (bất kỳ MOM, trên thực tế) cung cấp một cách cho các quá trình giao tiếp mà không cần phải bận tâm về các địa chỉ thực tế IP, an ninh thông tin liên lạc, định tuyến, trong số những mối quan tâm khác. Điều đó không nhất thiết có nghĩa là bất kỳ quá trình nào cũng có thể tin tưởng hoặc thậm chí có bất kỳ thông tin nào về các quy trình mà nó liên lạc.

Hàng đợi tin nhắn giải quyết một nửa quá trình: cách tiếp cận dịch vụ từ xa. Nhưng họ không giải quyết nửa kia: dịch vụ nào là dịch vụ phù hợp với tôi. Nói cách khác, trong đó dịch vụ:

  • có các nguồn lực tôi cần
  • thể được tin cậy (được lưu trữ trên một máy chủ đáng tin cậy, có thực hiện dịch vụ thỏa đáng, nằm trong một quốc gia mà luật pháp địa phương phù hợp với yêu cầu của bạn, vv)
  • tính phí những gì bạn muốn thanh toán (mặc dù mọi người hiếm khi thảo luận về chi phí khi nói đến dịch vụ microservices)
  • sẽ ở đó trong suốt thời gian cần thiết để xử lý dịch vụ của bạn - hãy nhớ rằng máy chủ ngày càng trở nên dễ bay hơi. Một số máy chủ thực sự là các thùng chứa có thể tồn tại trong vài phút.

Hai vấn đề đó gần như tuyến tính độc lập. Để giải quyết vấn đề thứ hai, bạn có các nhà môi giới tài nguyên trong Grid computing. Ngoài ra còn có phân bổ tài nguyên để đảm bảo rằng mục cuối cùng ở trên được quản lý chính xác.

Có một số chiến lược thay thế như phát đa hướng ý định sử dụng dịch vụ và chờ trả lời với phiếu mua hàng. Bạn có thể có đấu giá ngược trong trường hợp này, ví dụ.

Tóm lại, quy tắc chung là nếu bạn không có kiến ​​thức tiên quyết về dịch vụ bạn sẽ sử dụng (mã hóa cứng hoặc trong một số tệp cấu hình), đại lý của bạn sẽ phải thương lượng, bao gồm dịch vụ động khám phá.

+0

Tôi đang cố gắng hết sức để hiểu các điểm trong câu trả lời của bạn.Bạn thấy MOM sẽ cung cấp tính minh bạch vị trí, độ đàn hồi và cân bằng tải, là các tính năng chính của khám phá dịch vụ. Tôi hoàn toàn không thể hiểu được nơi "có các tài nguyên tôi cần", hoặc "có thể tin cậy", vv, có thể là một vấn đề ở đây. Tôi có thể thêm bao nhiêu container chứa đồ tạm thời với người tiêu dùng mới, và họ sẽ đàn hồi đến và đi. Sử dụng các chủ đề tôi có thể kiểm soát các khía cạnh như sử dụng người tiêu dùng gần nhất hoặc rẻ nhất và MOM hầu như đã cung cấp các tính năng bảo mật. Nếu có thể giải thích thêm một chút thì sẽ tuyệt vời hơn –

+0

MOM sẽ tạo một mạng che phủ cho bạn. Nếu bạn kiểm soát tất cả các quy trình được gắn với mạng lớp phủ này, bạn có thể không cần đăng ký hoặc khám phá dịch vụ. Bạn có thể chỉ cần tạo một giao thức trong đó bạn gửi một tin nhắn quảng bá hỏi "ai có thể làm điều đó cho tôi" và tin tưởng vào câu trả lời. – Akira

+0

Nhưng câu hỏi là "trong tình huống nào tôi sẽ được hưởng lợi từ đăng ký và khám phá dịch vụ". Một câu trả lời có thể có liên quan đến việc không có sự tin tưởng trước trên tất cả những người tham gia MOM. Nếu bạn không thể hoặc không muốn tin tưởng bất cứ ai, bạn chỉ có thể tin tưởng vào sổ đăng ký. Nếu đăng ký cho thấy bạn nên sử dụng tài nguyên A, thì bạn có thể tương tác với A. Trong ví dụ của bạn, có vẻ như bạn kiểm soát tất cả người tham gia, vì vậy việc đăng ký sẽ không cung cấp bất kỳ tính năng bổ sung nào trong vấn đề này. – Akira

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