Đánh giá và tối ưu hiệu suất cụm Pulsar
Giới thiệu
Trong thời gian gần đây, tôi đang thực hiện công việc liên quan đến quản lý hệ thống MQ (Pulsar), bao gồm một phần là nâng cấp hàng loạt các chức năng liên quan đến hàng đợi tin nhắn như:
Tạo tự động một cụm kiểm tra.
Chạy một số bài kiểm thử để kiểm tra các chức năng mà chúng ta sử dụng trên môi trường sản xuất, đồng thời tạo báo c ...
Đăng vào ngày 8 tháng 9 lúc 02:12
Phát hiện vòng lặp trong chuyển động của robot
Trong bài toán này, chúng ta cần xác định liệu một robot di chuyển trên mặt phẳng vô hạn có bị mắc kẹt trong một vòng lặp hay không. Robot bắt đầu tại vị trí (0, 0) và ban đầu hướng về phía Bắc.
Các lệnh mà robot có thể nhận được bao gồm:
"G": Di chuyển về phía trước 1 đơn vị.
"L": Rẽ trái 90 độ.
"R": Rẽ phải 90 đ ...
Đăng vào ngày 7 tháng 9 lúc 10:18
Một số bài tập thực hành về Stream API trong Java
Bài tập 1: Lọc dữ liệu số
Khởi tạo một danh sách chứa các số nguyên từ 1 đến 10. Thực hiện lọc để chỉ giữ lại các số chẵn và lưu kết quả vào một danh sách mới.
import java.util.*;
import java.util.stream.Collectors;
public class StreamFilterExample {
public static void main(String[] args) {
// Tạo danh sách số nguyên
List&l ...
Đăng vào ngày 5 tháng 9 lúc 19:52
Kiểm Soát Truy Cập Trong Java: Phạm Vi Hoạt Động Của Public, Protected, Default Và Private
Trong lập trình Java, việc quản lý phạm vi truy cập của các thành phần trong lớp là yếu tố then chốt để đảm bảo tính đóng gói và bảo mật mã nguồn. Java cung cấp bốn bổ từ truy cập giúp lập trình viên xác định rõ ràng mức độ hiển thị của thuộc tính, phương thức và lớp.
Phân Loại Và Mức Độ Hiển Thị
Mỗi bổ từ sẽ quy định một ranh giới truy cập khá ...
Đăng vào ngày 3 tháng 9 lúc 11:21
Lớp trừu tượng và giao diện trong Java
Lớp trừu tượng
Khi một lớp cha cần khai báo phương thức nhưng chưa xác định cách triển khai, ta có thể biến lớp này thành lớp trừu tượng bằng từ khóa abstract.
Điểm khác biệt chính giữa lớp trừu tượng và lớp thông thường: Lớp trừu tượng không thể khởi tạo trực tiếp. Lớp trừu tượng có thể chứa phương thức trừu tượng.
Mối quan hệ giữa lớp trừu tư ...
Đăng vào ngày 3 tháng 9 lúc 10:09
Mẫu thiết kế Adapter trong Java
Một giao diện MediaPlayer mặc định chỉ hỗ trợ phát tệp âm thanh định dạng mp3. Tuy nhiên, trong trường hợp hiện tại chúng ta cần mở rộng khả năng để phát các tệp định dạng vlc và mp4.
Làm thế nào để thực hiện điều này?
Chúng ta sẽ sử dụng một giao diện mới tên là AdvancedMediaPlayer, có khả năng xử lý cả hai định dạng vlc và mp4.
Làm sao để tíc ...
Đăng vào ngày 2 tháng 9 lúc 03:18
Xây dựng và triển khai Microservice Java JAR bằng Dockerfile
Việc đóng gói các ứng dụng Java Microservice thành Docker image giúp đơn giản hóa quá trình triển khai và đảm bảo tính nhất quán giữa các môi trường. Dưới đây là hướng dẫn chi tiết cách tạo Dockerfile và vận hành một tệp JAR trong môi trường container.
1. Chuẩn bị thư mục dự án
Trước tiên, hãy tạo một không gian làm việc để chứa tệp Dockerfile ...
Đăng vào ngày 1 tháng 9 lúc 20:18
Mẫu Thiết Kế Prototype Trong Java: Sao Chép Đối Tượng Và Quản Lý Nguyên Mẫu
Tổng quan về Mẫu Prototype
Mẫu thiết kế Prototype (Nguyên mẫu) là một mẫu thuộc nhóm Creational (Tạo đối tượng), cho phép tạo ra các đối tượng mới bằng cách sao chép (clone) một đối tượng hiện có thay vì khởi tạo từ đầu. Đối tượng được sao chép này được gọi là "prototype".
Khi nào nên sử dụng?
Mẫu này đặc biệt hữu ích khi chi phí để khởi tạo m ...
Đăng vào ngày 1 tháng 9 lúc 17:13
Xử lý xung đột dữ liệu giao dịch bằng Distributed Lock trên Redis và Khám phá hiệu năng nội bộ
Bối cảnh kỹ thuật
Khi hệ thống giao dịch đạt đến quy mô nhất định, áp lực truy cập gia tăng dẫn đến nhiều vấn đề về tính toàn vẹn dữ liệu. Một trường hợp điển hình là hiện tượng đơn hàng bị tạo lặp. Dù số lượng tiền và sản phẩm giống hệt nhau nhưng lại tồn tại hai bản ghi với thời gian sinh ra chênh lệch chỉ vài chục mili giây.
Nếu nguyên nhân ...
Đăng vào ngày 31 tháng 8 lúc 19:38
Mẫu Thiết Kế Proxy: Điều Khiển Truy Cập Đối Tượng
Mẫu thiết kế Proxy là một trong những mẫu cấu trúc (Structural Pattern) trong lập trình hướng đối tượng. Mục đích chính của nó là cung cấp một đối tượng đại diện hoặc "placeholder" cho một đối tượng khác, nhằm kiểm soát hoặc bổ sung các hành vi trước/sau khi truy cập đối tượng gốc. Ví dụ, khi cần đo thời gian thực thi của một phương thức, proxy ...
Đăng vào ngày 30 tháng 8 lúc 13:41