Bài 3. Kiến trúc và cơ chế hoạt động của Vertx

bài 2, các bạn đã có cảm giác sương sương về Vert.X rồi, bài này Tui sẽ nói kỹ hơn 1 xíu về Kiến trúc và cơ chế hoạt động của Vert.X.

Hình trên là mô hình kiến trúc của Vert.X. Hướng dẫn chi tiết được hãng để trên link: https://vertx.io/docs/guide-for-java-devs/

Lõi của Vert.X dựa trên giao thức Hazelcast (trên mạng có nhiều bài, Tui tóm lược lại, nguồn):

Hazelcast là một mạng lưu trữ dữ liệu trên bộ nhớ Ram (in-memory data grid). Hazelcast đưa ra cài đặt của các interface trong Java như: Map, Queue, ExcecutorService, Lock… Nó được thiết kế rất nhẹ và dễ sử dụng. Hazelcast đảm bảo tính sẵn sàng cao (high available) và có khả năng mở rộng (scalable).  Các ứng dụng phân tán có thể sử dụng Hazelcast vào mục đích lưu dữ liệu đệm dạng phân tán (distributed caching), đồng bộ hóa, … Hazelcast được cài đặt bằng ngôn ngữ Java và client cho các ngôn ngữ Java, C/C++, C#… Hazelcast cũng có thể được xem như một giao thức lưu đệm (memcache protocol).

Bên trong có 2 thành phần quan trọng HTTP ServerNet Server

HTTP Server và Net Server Dùng để điều khiển sự kiện mạng và xử lý sự kiện. Net Server dùng cho các sự kiện và xử lý giao thức riêng và HTTP Server cho phép đăng ký trình xử lý với sự kiện HTTP như GET, POST, PUT, DELETE.

Vert.x có  3 loại thread pools:

1.Acceptor: Là 1 tiến trình để xử lý 1 socket. Và 1 tiến trình được tạo trên 1 port.

2.Event Loops: Khi một sự kiện xảy ra, nó thực thi một trình xử lý tương ứng. Khi Event được thực hiện xong, nó lặp lại đọc một Event khác. Khi mỗi sự kiện được gắn vào một tiến trình, thì mặc định Vert.x gắn 2 sự kiện cho mỗi CPU core thread.

3.Background: Được sử dụng khi Event Loop thực thi trình xử lý và yêu cầu một luồng bổ sung. Ta có thể chỉ định số lượng Thread trong backgroundPoolSize.

verticle

Khi triển khai một dịch vụ, ta kế thừa từ AbstractVerticle nó được gọi là verticle. Các verticle này khi triệu gọi sẽ được đẩy vào Event loop

Ta cũng có thể thiết lập nhiều cấu hình cho verticle cũng như có thể deploy nó nhiều lần:

Event bus

Event bus là công cụ chính để các verticles khác nhau có thể giao tiếp bất động bộ.

Trên đây là một số lý thuyết Tui tổng hợp lại, các bạn có thể xem thêm tại : https://vertx.io/docs/guide-for-java-devs/

Hẹn các bạn ở bài học tiếp theo, bài học “Verticle và cách xây dựng lớp kế thừa từ AbstractVerticle”.

Chúc các bạn thành công

One thought on “Bài 3. Kiến trúc và cơ chế hoạt động của Vertx”

Leave a Reply