Triển khai máy khách/máy chủ

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Báo cáo sự cố Xem nguồn

Hệ thống Bazel được triển khai dưới dạng quy trình máy chủ tồn tại lâu dài. Điều này cho phép công cụ này thực hiện nhiều thao tác tối ưu hoá mà không thể thực hiện được khi triển khai theo hướng hàng loạt, chẳng hạn như lưu vào bộ nhớ đệm các tệp BUILD, biểu đồ phần phụ thuộc và các siêu dữ liệu khác từ bản dựng này đến bản dựng tiếp theo. Điều này giúp tăng tốc độ của các bản dựng gia tăng và cho phép nhiều lệnh khác nhau, chẳng hạn như buildquery, chia sẻ cùng một bộ nhớ đệm của các gói được tải, giúp truy vấn rất nhanh.

Khi chạy bazel, bạn đang chạy ứng dụng. Máy khách tìm máy chủ dựa trên cơ sở đầu ra, theo mặc định được xác định bởi đường dẫn của thư mục không gian làm việc cơ sở và userid của bạn. Vì vậy, nếu tạo trong nhiều không gian làm việc, thì bạn sẽ có nhiều cơ sở dữ liệu đầu ra, do đó có nhiều quy trình máy chủ Bazel. Nhiều người dùng trên cùng một máy trạm có thể tạo đồng thời trong cùng một không gian làm việc vì số lượng người dùng đầu ra của họ sẽ khác nhau (mã nhận dạng người dùng khác nhau). Nếu không thể tìm thấy thực thể máy chủ đang chạy, thì ứng dụng sẽ bắt đầu một thực thể mới. Quy trình máy chủ sẽ dừng sau một khoảng thời gian không hoạt động (theo mặc định là 3 giờ và có thể sửa đổi được bằng cách sử dụng tuỳ chọn khởi động --max_idle_secs).

Trong hầu hết các trường hợp, người dùng không thể nhìn thấy thực tế là có một máy chủ đang chạy, nhưng đôi khi cũng cần lưu ý điều này. Ví dụ: nếu bạn đang chạy các tập lệnh thực hiện nhiều bản dựng tự động trong các thư mục khác nhau, điều quan trọng là phải đảm bảo rằng bạn không tích lũy nhiều máy chủ không hoạt động; bạn có thể làm điều này bằng cách tắt chúng một cách rõ ràng khi đã hoàn tất hoặc bằng cách chỉ định khoảng thời gian chờ ngắn.

Tên của một quy trình máy chủ Bazel xuất hiện trong đầu ra của ps x hoặc ps -e f dưới dạng bazel(dirname), trong đó dirname là tên cơ sở của thư mục bao quanh thư mục gốc của thư mục không gian làm việc. Ví dụ:

ps -e f
16143 ?        Sl     3:00 bazel(src-johndoe2) -server -Djava.library.path=...

Thao tác này giúp bạn dễ dàng xác định quy trình máy chủ nào thuộc về một không gian làm việc nhất định. (Lưu ý rằng với một số tuỳ chọn khác đối với ps, các quá trình của máy chủ Bazel có thể chỉ được đặt tên là java.) Có thể dừng máy chủ Bazel bằng lệnh shutdown.

Khi chạy bazel, trước tiên, ứng dụng sẽ kiểm tra để đảm bảo rằng máy chủ là phiên bản thích hợp; nếu không, máy chủ sẽ bị dừng và một máy chủ mới đã được khởi động. Điều này đảm bảo rằng việc sử dụng một quy trình máy chủ chạy trong thời gian dài không ảnh hưởng đến phiên bản thích hợp.