Tích hợp Dubbo với ZooKeeper
ZooKeeper
ZooKeeper có thể được sử dụng như một trung tâm đăng ký cho Dubbo.
Dubbo không thực hiện bất kỳ sửa đổi nào đối với máy chủ Zookeeper, chỉ cần cài đặt máy chủ Zookeeper gốc. Tất cả logic trung tâm đăng ký được thích ứng khi gọi khách hàng Zookeeper.
Cài đặt
Truy cập Trang phát hành ZooKeeper và tải phiên bản phù hợp, sau đó giải nén vào máy cục bộ.
Cấu hình
vi conf/zoo.cfg
Nếu không cần thiết lập cụm, nội dung của zoo.cfg
sẽ như sau 2:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/dubbo/zookeeper-3.3.3/data
clientPort=2181
Nếu cần thiết lập cụm, nội dung của zoo.cfg
sẽ như sau 3:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/dubbo/zookeeper-3.3.3/data
clientPort=2181
server.1=10.20.153.10:2555:3555
server.2=10.20.153.11:2555:3555
Sau đó, đặt tệp myid
trong thư mục data 4:
mkdir data
vi myid
Tệp myid
xác định id của máy chủ, tương ứng với số sau server.
trong zoo.cfg
. Nội dung của máy chủ đầu tiên là 1, của máy chủ thứ hai là 2, ví dụ:
1
Khởi động
Trên Linux, chạy bin/zkServer.sh
; trên Windows, chạy bin/zkServer.cmd
để khởi động ZooKeeper.
Dòng lệnh
telnet 127.0.0.1 2181
dump
Hoặc:
echo dump | nc 127.0.0.1 2181
Sử dụng:
dubbo.registry.address=zookeeper://10.20.153.10:2181?backup=10.20.153.11:2181
Hoặc:
<dubbo:registry protocol="zookeeper" address="10.20.153.10:2181,10.20.153.11:2181" />
- ZooKeeper là một dự án con của Apache Hadoop, có độ tin cậy tương đối cao, được khuyến nghị sử dụng trong môi trường sản xuất.
- Thay đổi thư mục data thành thư mục thực tế của bạn.
- Thay đổi thư mục data và địa chỉ server thành thông tin máy chủ triển khai thực tế của bạn.
dataDir
trongzoo.cfg
ở trên.- http://zookeeper.apache.org/doc/r3.3.3/zookeeperAdmin.html
Dubbo
Dubbo sử dụng cách cấu hình hoàn toàn bằng Spring, tích hợp một cách minh bạch vào ứng dụng, không có bất kỳ sự xâm nhập API nào vào ứng dụng, chỉ cần sử dụng Spring để tải cấu hình Dubbo là đủ. Dubbo dựa trên mở rộng Schema của Spring để tải.
Nếu bạn không muốn sử dụng cấu hình Spring, bạn có thể gọi thông qua API.
Nhà cung cấp dịch vụ
Để biết thêm chi tiết về quy trình cài đặt đầy đủ, vui lòng xem: Cài đặt nhà cung cấp ví dụ
Định nghĩa interface dịch vụ
DemoService.java 1:
Triển khai interface trên phía nhà cung cấp
DemoServiceImpl.java 2:
Sử dụng Spring để khai báo và tiết lộ dịch vụ
provider.xml:
Nếu sử dụng ZooKeeper làm trung tâm đăng ký, bạn có thể thay đổi dubbo:registry thành zookeeper://127.0.0.1:2181
Tải cấu hình Spring
Provider.java:
Người tiêu thụ dịch vụ
Để biết thêm chi tiết về quy trình cài đặt đầy đủ, vui lòng xem: Cài đặt người tiêu thụ mẫu
Tham chiếu dịch vụ từ xa bằng cấu hình Spring
consumer.xml:
Nếu sử dụng ZooKeeper làm trung tâm đăng ký, bạn có thể thay đổi dubbo:registry thành zookeeper://127.0.0.1:2181
Tải cấu hình Spring và gọi dịch vụ từ xa
Consumer.java 3:
- Interface này cần được đóng gói riêng, được chia sẻ giữa nhà cung cấp và người tiêu thụ
- Ẩn triển khai của nhà cung cấp dịch vụ
- Cũng có thể sử dụng IOC để tiêm vào
FAQ
Đề nghị sử dụng phiên bản zookeeper đăng ký trung tâm khách hàng dubbo-2.3.3
trở lên.
Tài liệu tham khảo
Dubbo
Github | Hướng dẫn sử dụng | Hướng dẫn phát triển | Hướng dẫn quản trị
ZooKeeper