JBoss Fuse - Apache Karaf

Trong chương này, chúng ta sẽ thảo luận về Apache Karaf và tại sao nó được gọi là Vùng chứa OSGi nhẹ cùng với các lợi ích và các tính năng quan trọng khác của nó.

Vấn đề JVM

Máy ảo JVM hoặc Java không hoạt động như một máy ảo thực tế. Máy sẽ cho phép bạn dừng, khởi động hoặc khởi động lại các thành phần chạy bên trong nó một cách nhanh chóng. Đôi khi nó có thể cho phép triển khai nóng ở cấp độ lớp nhưng không có cách nào bạn có thể triển khai hoặc hủy triển khai một thành phần của ứng dụng trong máy ảo của mình mà không cần khởi động lại nó.

Để giải quyết vấn đề này và cho phép tính mô-đun trong ứng dụng Java, Fuse sử dụng thời gian chạy dựa trên OSGi được gọi là Apache Karaf.

OSGi

Công nghệ OSGi là một tập hợp các thông số kỹ thuật xác định một hệ thống thành phần động cho java. Các đặc tả này cho phép một mô hình phát triển trong đó các ứng dụng được cấu tạo (động) bởi nhiều thành phần khác nhau (có thể tái sử dụng).

Lợi ích của OSGi

  • Reduced Complexity - Ứng dụng được xây dựng dưới dạng các thành phần cộng tác, ẩn các chi tiết triển khai của chúng với nhau dẫn đến giảm độ phức tạp.

  • Reusability - Nhiều thành phần có thể tận dụng cùng một thành phần được triển khai trong một vùng chứa.

  • Deployment - OSGi cung cấp hỗ trợ khởi động, dừng và cập nhật các thành phần một cách nhanh chóng với các API quản lý vòng đời của nó mà không cần khởi động lại vùng chứa.

Tính năng gói Vs

Sau đây là so sánh giữa Gói và Tính năng.

Các gói tương đương với OSGi những gì các lọ đối với JVM. Gói là phần mềm có thể triển khai trong vùng chứa OSGi. Các gói là các thành phần hoạt động cùng nhau hoặc độc lập để tạo thành một ứng dụng.

Các gói này có thể được cài đặt, gỡ cài đặt, cập nhật, bắt đầu hoặc dừng trong thời gian chạy mà không cần khởi động lại vùng chứa.

Đặc trưng

Tính năng là một cách triển khai nhiều gói cùng nhau. Đôi khi, việc triển khai các gói trong nhóm sẽ có ý nghĩa hơn. Các tính năng cho phép chúng tôi triển khai một nhóm các gói chỉ với một lệnh.

Tại sao một Container khác?

Apache Karaf là một thời gian chạy dựa trên OSGi, nó là nơi các gói Ứng dụng của chúng tôi chạy. Fuse sử dụng Apache Karaf làm thời gian chạy của nó, trong đó các gói chạy và cộng tác để cung cấp chức năng kinh doanh.

Karaf được xây dựng trên Felix và Equinox là các Khung OSGi.

Kiến trúc Karaf

Apache Karaf thêm các chức năng bổ sung sau vào thời gian chạy OSGi cơ bản.

Triển khai nóng

Karaf hỗ trợ triển khai nóng. Nó chứa một thư mục triển khai nóng. Bất kỳ thứ gì được đặt trong thư mục này sẽ được tự động triển khai và cài đặt trong Karaf dưới dạng một gói.

Ghi nhật ký

Karaf cung cấp ghi nhật ký tập trung bằng cách tạo nhật ký cho tất cả các gói trong $Fuse_home/data/log. Chúng tôi có thể chỉnh sửa cấu hình trình ghi nhật ký trongorg.ops4j.pax.logging.cfg trong $Fuse_home/etc directory.

Bảng điều khiển dành cho quản trị viên

Karaf cung cấp Bảng điều khiển dành cho quản trị viên tinh vi và sáng suốt để tương tác với phiên bản cầu chì đang chạy. Nó cũng cung cấp một bộ lệnh được cài đặt sẵn có thể được sử dụng để quản lý và giám sát các thành phần (Gói) trong thời gian chạy. Bảng điều khiển này có thể mở rộng nên nó cho phép chúng tôi thêm các lệnh mới vào bảng điều khiển bằng cách thêm các gói mới vào bảng điều khiển.

Quyền truy cập SSH

Karaf cho phép truy cập từ xa vào Bảng điều khiển dành cho quản trị viên này bằng SSH. Bất kỳ ai có bằng chứng xác thực hợp lệ đều có thể kết nối với bảng điều khiển quản trị karaf qua thiết bị đầu cuối SSH.