CHƯƠNG IV: CẤU HÌNH VÀ MÔI TRƯỜNG VẬN HÀNH
Cấu hình tích hợp các công nghệ
- TRANG 1: Toàn tập cấu hình Deployment.toml
- TRANG 2: Quản lý Datasources và Kết nối Cơ sở dữ liệu
- TRANG 3: Broker và Messaging Configuration (RabbitMQ/Kafka)
- TRANG 4: Bảo mật, Keystores và Certificates
TRANG 1: Toàn tập cấu hình Deployment.toml
Tệp deployment/deployment.toml là file cấu hình duy nhất của WSO2 Micro Integrator. Mọi thông số từ Port, Memory đến Database đều được quản lý tại đây.
1.1. Cấu hình Server cơ bản
- [server]: Thiết lập
offset. Nếu trong mạng có nhiều node WSO2, mỗi node cần có một offset khác nhau để tránh xung đột cổng. - [management_api]: Cấu hình User/Password để các công cụ bên ngoài (như VS Code hoặc MI Dashboard) có thể kết nối và quản lý.
1.2. Cấu hình Connection Pool (HikariCP)
Mặc định WSO2 MI sử dụng HikariCP để quản lý kết nối Database. Các tham số tối ưu cần lưu ý:
max_active: Số lượng kết nối tối đa. Với LGSP, giá trị này nên đặt từ 30-50 tùy theo tải.min_idle: Duy trì ít nhất 5-10 kết nối chờ sẵn để tăng tốc độ phản hồi.
TRANG 2: Quản lý Datasources và Kết nối Cơ sở dữ liệu
Dự án LGSP yêu cầu 3 nguồn dữ liệu chính được định nghĩa trong block [[datasource]]:
2.1. Nguồn dữ liệu ESB_DB
Đây là nơi lưu trữ "trạng thái" của trục tích hợp.
- Vai trò: Quản lý bảng
job_schedule,sync_lock,api_logs. - Driver: Sử dụng
com.mysql.cj.jdbc.Driver(MySQL 8+). - Lưu ý: Datasource này phải trùng tên (
id = "ESB_DB") với khai báo trong các file.dbs.
2.2. Nguồn dữ liệu LGSP_NOIBO
- Vai trò: Chứa các bảng danh mục đồng bộ về (Đơn vị hành chính, TTHC...).
- Địa chỉ: Thường nằm trên cụm DB chuyên dụng có tốc độ truy xuất cao.
2.3. Nguồn dữ liệu NIFI_DB
- Vai trò: Phục vụ cho việc đẩy dữ liệu báo cáo sang hệ thống Apache Nifi.
TRANG 3: Broker và Messaging Configuration (RabbitMQ/Kafka)
3.1. Cấu hình RabbitMQ (Transport)
Để sử dụng được mô hình "Store-and-Forward" (Gửi văn bản điện tử), bạn cần kích hoạt:
- [transport.rabbitmq.sender]: Cho phép WSO2 MI đẩy tin vào Queue.
- [transport.rabbitmq.listener]: Cho phép WSO2 MI lắng nghe và xử lý tin nhắn từ Queue.
- Tham số: Cần khai báo đúng IP/Port của RabbitMQ Server và Virtual Host (thường là
/).
3.2. Cấu hình Kafka (Streaming)
Dùng cho việc đẩy Log Analytics:
- bootstrap.servers: Danh sách các Kafka Broker (IP:Port).
- key.serializer/value.serializer: Thường dùng
StringSerializer.
TRANG 4: Bảo mật, Keystores và Certificates
LGSP là hệ thống chính quyền, yêu cầu bảo mật HTTPS và mã hóa dữ liệu.
4.1. Quản lý Keystores
Nằm tại repository/resources/security/:
- wso2carbon.jks: Chứa chứng chỉ SSL của Server LGSP (Dùng cho HTTPS).
- client-truststore.jks: Chứa các Public Key của đối tác (NGSP, Cổng DVC Quốc gia) để WSO2 có thể gọi API HTTPS của họ mà không bị lỗi SSL.
4.2. Bảo mật mật khẩu (Secret Management)
Thay vì viết mật khẩu DB dạng Clear-text trong deployment.toml, ta nên dùng công cụ Secure Vault của WSO2 để mã hóa:
- Chạy lệnh
ciphertool.shđể mã hóa mật khẩu. - Sử dụng cú pháp
$secret{alias}để gọi mật khẩu trong file cấu hình.