Vì tôi không thể nhận xét nhưng tôi sẽ đăng bài này dưới dạng "câu trả lời", thêm vào câu trả lời của M.Situations.
Trong cùng một tài liệu ông liên kết có lời giới thiệu này về mà nghe được sử dụng bởi một khách hàng Kafka (https://cwiki.apache.org/confluence/display/KAFKA/KIP-103%3A+Separation+of+Internal+and+External+traffic):
Như đã trình bày trước đây, khách hàng không bao giờ nhìn thấy tên người nghe và sẽ đưa ra yêu cầu siêu dữ liệu chính xác như trước . Sự khác biệt là danh sách các thiết bị đầu cuối mà chúng lấy lại bị hạn chế đối với tên người nghe của điểm cuối nơi chúng thực hiện yêu cầu.
Điều này quan trọng tùy thuộc vào URL bạn sử dụng trong cấu hình bootstrap.servers sẽ là URL * mà máy khách sẽ lấy lại nếu nó được ánh xạ trong advertised.listeners (không biết hành vi là gì nếu người nghe không tồn tại).
Cũng lưu ý này:
Trường hợp ngoại lệ là người tiêu dùng Zookeeper-based. Những người tiêu dùng này lấy thông tin đăng ký môi giới trực tiếp từ ZooKeeper và sẽ chọn người nghe đầu tiên với PLAINTEXT làm giao thức bảo mật (giao thức bảo mật duy nhất mà họ hỗ trợ).
Là một cấu hình ví dụ môi giới (cho tất cả các nhà môi giới trong cluster):
advertised.listeners = EXTERNAL: //XXXXX.compute-1.amazonaws.com: 9990, NỘI: // ip -XXXXX.ec2.internal: 9993
inter.broker.listener.name = NỘI
listener.security.protocol.map = EXTERNAL: SSL, NỘI BỘ: plaintext
Nếu khách hàng sử dụng XXXXX.compute-1.amazonaws.com:9990 để kết nối, tìm nạp siêu dữ liệu sẽ chuyển đến nhà môi giới đó. Tuy nhiên, URL trả về để sử dụng với Điều phối viên nhóm có thể là 123.compute-1.amazonaws.com:9990* (một máy khác!). Điều này có nghĩa là khớp được thực hiện trên tên người nghe như được quảng cáo bởi KIP-103 bất kể URL thực tế (nút).
Vì bản đồ giao thức cho EXTERNAL là SSL, điều này sẽ buộc bạn phải sử dụng kho khóa SSL để kết nối.
Nếu mặt khác bạn đang ở trong AWS, giả sử bạn có thể phát hành ip-XXXXX.ec2.nội bộ: 9993 và kết nối tương ứng sẽ là bản rõ dựa trên bản đồ giao thức. Điều này đặc biệt cần thiết trong IaaS, nơi người môi giới và người tiêu dùng của tôi sống trên AWS, trong khi nhà sản xuất của tôi sống trên một trang web khách hàng, do đó cần các giao thức bảo mật và người nghe khác nhau.
CHỈNH SỬA: Đồng thời, thêm Quy tắc gửi đến giờ đây dễ dàng hơn nhiều khi bạn có các cổng khác nhau cho các khách hàng khác nhau (nhà môi giới, nhà sản xuất, người tiêu dùng).
Tôi không chắc chắn bạn có thể gán bí danh cho cả hai 'listeners' và' advertised.listeners', ít nhất với tôi trên HDP 2.5.0.3 nó không hoạt động, có lẽ đã bỏ sót điều gì đó. Điều gì làm việc cho tôi là xác định các nhóm cấu hình khác nhau và đặt quảng cáo cụ thể trên các địa chỉ IP cần thiết. Cảm ơn, – reim