kipalog.com kipalog.com

Tìm hiểu Spring Retry

1. Spring Retry là gì? Spring Retry là một project nhỏ được tách ra từ project Spring Batch. Nếu trong quá trình thực hiện (attempt) một job mà có exception được ném ra khiến job đó bị thất bại, Spring Retry sẽ cho phép chúng ta retry (thử lại) việc thực hiện job đó tối đa N - 1 lần cho tới khi thành công. Nếu sau N - 1 lần retry mà job đó vẫn thất bại,...

kipalog.com kipalog.com

Ghi chép về Logstash (P2): Logstash Configuration

1. Cấu trúc file config Trong phần 1 của series, chúng ta có nhắc đến file logstash.conf. Đây là một file config của Logstash. File này sẽ gồm 3 phân đoạn input, filter và output tương ứng với 3 stage của pipeline: # This is a comment. You should use comments to describe # parts of your configuration. input { ... } filter { ... } output { ... } Mỗi một phân đoạn sẽ có...

kipalog.com kipalog.com

[Java Concurrent] CountDownLatch và CyclicBarrier

Trong bài viết này, chúng ta sẽ tìm hiểu java.util.concurrent.CountDownLatch và java.util.concurrent.CyclicBarrier. Đây là 2 synchronizer bổ trợ cho synchronization (đồng bộ hóa) trong Java. CountDownLatch Nguyên lý hoạt động Lớp CountDownLatch cho phép chúng ta bắt đầu thực hiện một thread X ngay sau khi tất cả các thread A1, A2, A3, ... đều đã hoàn thành. CountDownLatch...

kipalog.com kipalog.com

[Java Concurrent] Locks

Gói java.util.concurrency.locks cung cấp một cơ chế đồng bộ hóa có khả năng mở rộng và linh động hơn so với từ khóa synchronized. Trong bài viết này, chúng ta sẽ tìm hiểu 3 interface quan trọng của gói này, đó là: java.util.concurrent.locks.Lock java.util.concurrent.locks.ReadWriteLock java.util.concurrent.locks.Condition 1. Lock Nguyên lý hoạt động Sẽ có một khóa...

kipalog.com kipalog.com

[Series] Spring Core - Keep It Simple (P7): Tìm hiểu thêm về khởi tạo bean

1. @Lazy Như chúng ta đã biết, các singleton bean sẽ được khởi tạo tại thời điểm startup của ứng dụng Spring. Cơ chế khởi tạo này được gọi với cái tên quen thuộc là eager. Đối lập với eager là lazy. Trong một số trường hợp, chúng ta chỉ muốn khởi tạo singleton bean khi có request đầu tiên mà thôi (các bạn tránh nhầm lẫn với prototype bean)....

kipalog.com kipalog.com

[Series] Spring Core - Keep It Simple (P7): Tìm hiểu thêm về khởi tạo bean

1. @Lazy Như chúng ta đã biết, các singleton bean sẽ được khởi tạo tại thời điểm startup của ứng dụng Spring. Cơ chế khởi tạo này được gọi với cái tên quen thuộc là eager. Đối lập với eager là lazy. Trong một số trường hợp, chúng ta chỉ muốn khởi tạo singleton bean khi có request đầu tiên mà thôi (các bạn tránh nhầm lẫn với prototype bean)....

kipalog.com kipalog.com

[Series] Spring Core - Keep It Simple (P2): Tổng quan về Bean

Như chúng ta đã biết, bean là các đối tượng tạo nên xương sống của ứng dụng và được quản lý bởi Spring IoC Container. Trong phần 2 của series, mình sẽ đề cập đến Cách định nghĩa một bean Các bean scope Lifecycle callbacks Bean lazy initialization 1. Định nghĩa bean Trọng tâm của cách cấu hình bằng Java code là 2...

kipalog.com kipalog.com

[Series] Spring Core - Keep It Simple (P8): Kiểm tra thông tin của bean

1. BeanDefinition Trong thực tế, đôi khi chúng ta muốn có được thông tin của bean. Lúc này, chúng ta có thể sử dụng các phương thức của lớp org.springframework.beans.factory.config.BeanDefinition. Để khởi tạo BeanDefinition, chúng ta có thể làm như sau: @Autowired private ConfigurableApplicationContext ctx; BeanDefinition definition =...