2016-07-30 16 views
7

nhóm của tôi và tôi thực sự muốn đưa Google Pub/Sub vào ứng dụng của mình vì nó sẽ giải quyết một số vấn đề về ghép nối. Vấn đề chúng tôi đang gặp phải là làm thế nào để làm các bài kiểm tra tích hợp cục bộ kết hợp với máy chủ java appengine dev.Chiến lược thử nghiệm Google Pub/Sub cho máy chủ java GAE cục bộ

Những gì tôi đã làm như vậy cho đến nay:

  1. khởi động emulator quán rượu tiểu và thiết lập PUBSUB_EMULATOR_HOST biến môi trường
  2. bắt đầu ứng dụng của chúng trong máy chủ java dev mà tạo ra các chủ đề và đăng ký và sau đó gửi một số tin nhắn cho các chủ đề.

tôi giả sử tôi đang làm một cái gì đó sai vì:

  • các chủ đề và số đăng ký được tạo ra trong đám mây (chắc chắn họ nên đã tạo ra trong giả lập pubsub?)
  • thông điệp đã đẩy và chúng tôi nhận được thông báo Id trở lại nhưng không có điểm cuối nào đạt được hoặc lỗi được báo cáo trong đám mây hoặc trình mô phỏng.

Từ đây tôi khá chắc chắn rằng trình giả lập không được máy chủ dev chọn.

Tôi cũng có một số câu hỏi sâu hơn về chiến lược thử nghiệm của chúng tôi. Là thử nghiệm hội nhập địa phương thực sự khả thi trong ngày và tuổi tác với ngày càng nhiều dịch vụ trở nên ràng buộc với các đám mây. Chúng ta có nên tập trung hơn vào các bộ thử nghiệm tích hợp đang chạy trên các cá thể đám mây không? Nếu như vậy làm thế nào một trong những sẽ đảm bảo rằng các nhà phát triển có sự tự tin trong mã của họ trước khi triển khai vào một môi trường thử nghiệm đám mây, và điều này sẽ không làm tăng vòng lặp phản hồi đáng kể?

CẬP NHẬT

Sử dụng lớp học trên Google Java API Khách hàng PubSub builder tôi đã có thể tiêm một url (localhost: 8010) từ một cấu hình địa phương mà bây giờ cho phép tôi để thành công bố để giả lập địa phương.

Pubsub client = new Pubsub.Builder(httpTransport, jsonFactory, initializer) 
.setApplicationName(getProjectId()) 
.setRootUrl(rootUrl).build(); 

Tôi buộc cổng được sử dụng để đơn giản hóa việc thiết lập cho phần còn lại của nhóm thay vì phải phụ thuộc vào cổng thay đổi động.

gcloud beta emulators pubsub start --host-port localhost:8010 

Hiện chủ đề, đăng ký và tin nhắn đang được tạo thành công trên trình mô phỏng. Thật không may, tôi vẫn không nhận được tin nhắn được đẩy tới các điểm cuối đã đăng ký.

UPDATE 2

phiên bản gcloud 120.0.0 dường như cải thiện tình hình nhưng tôi bây giờ nhận được lỗi sau:

{ 
    "code" : 400, 
    "message" : "Payload isn't valid for request.", 
    "status" : "INVALID_ARGUMENT" 
} 
+0

Tôi đã gửi báo cáo lỗi cho google: https://code.google.com/p/cloud-pubsub/issues/detail?id=39 –

Trả lời

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