Nguyễn Việt Hoàn

@hoannv

Joined on Nov 3, 2023

  • Ở bài trước, ta dùng replication factor để replicate các partition và lưu trữ trên các kafka broker. Kafka sẽ có 1 và chỉ 1 replication partition là leader, chính vì thế việc read/write message sẽ đều thông qua partition này. Tại một thời điểm, mỗi partition có duy nhất một replication leader. Chỉ có thể read/write message từ replication leader. Các replication còn lại được gọi là ISR, đồng bộ message từ replication leader. Do vậy, mỗi partition có duy nhất một replication leader và một hoặc nhiều ISR - in-sync replica. image Trong trường hợp Broker 101 gặp sự cố, replication leader của partition 1 không còn hoạt động. Lúc này, một trong các ISR còn lại sẽ trở thành Leader và partition trở lại hoạt động bình thường.
     Like  Bookmark
  • Apache kafka là event streaming platform hơn cả một message broker, có 4 tính chất nổi bật sau: High scalable: Kafka là hệ thống phân tán - distributed system, có khả năng mở rộng rất nhanh và dễ dàng với zero downtime - mọi thứ vẫn hoạt động bình thường khi thêm hoặc bớt broker. High durable: message được lưu trên disk, đảm bảo nếu mất điện.. data vẫn còn nguyên. Ngoài ra, một message sẽ có nhiều bản sao lưu trên nhiều broker khác nhau, phụ thuộc vào config và set up. Nếu một broker die, flow vẫn hoạt động bình thường không bị ngắt quãng. High reliable: giống durable, lưu trữ message ở nhiều nơi. Ngoài ra có cơ chế cân bằng request trong trường hợp gặp sự cố về các broker. Đại khái là đáng tin cậy hơn các message broker hiện có trên thị trường. High performance: high throughput cho cả đầu gửi và nhận message với khả năng scale tuyệt vời. Nhờ vậy nó có thể xử lý hàng TB data mà không gặp nhiều vấn đề về performance. Topic Topic là stream of data, luồng dữ liệu của Kafka, có thể hiểu là một dãy message nối tiếp nhau.
     Like  Bookmark
  • Message broker cung cấp 2 partern trong việc điều hướng message: Point to point messaging: hay còn gọi là Queue, dạng phân phối quan hệ 1-1, giữa client và server. Mỗi message chỉ được gửi đến một endpoint duy nhất Broadcast messaging: một message có thể được gửi tới nhiều địa chỉ khác nhau, chỉ những người subcribe nội dung đó mới nhận được tin nhắn. Partern này còn được gọi là topic. Mô hình sử dụng message broker Message broker được đặt trong hệ thống bao gồm: Producer/Publisher: nơi gửi message. Message broker: hệ thống điều hướng message.
     Like  Bookmark
  • access modifiers là những từ khóa có thể được sử dụng để kiểm soát mức độ hiển thị của các trường, phương thức và hàm tạo trong một lớp. Chúng gồm 4 loại, bao gồm: Private Default Protected Public Bảng đánh giá access modifiers 1
     Like  Bookmark
  • Trong 1 class java, ta định nghĩa các thành phần thông qua file .java, các file này sau khi được biên dịch bởiJava Compiler (JVM), sẽ trở thành các bytecode và được lữu trữ trong file .class 1 Các thành phần trong class: Package statement // 1 Import statements // 2 Comments // 3a Class declaration { // 4 Variables // 5 Comments // 3b
     Like  Bookmark
  • Trong phần này, ta sẽ đi tìm hiểu về cách thực thi một chương trình java từ dòng lệnh (commandline). Các lớp Java được thực thi khi nào Lớp Java có thể thực thi khi nó chứa phương thức main, JVM sẽ tìm và thực thi các dòng code nằm trong đó. Ta có thể hiểu main như một điểm đánh dấu, giúp cho JVM tìm và thực thi code, nếu không có nó JVM sẽ không biết nên thực thi phương thức nào. Một chương trình có thể có nhiều lớp thực thi (lớp chứa phương thức main), nhưng JVM chỉ tìm 1 phương thức để thực thi. class executable Phương thức main Đây là một phương thức bắt buộc nếu bạn muốn thực thi một class.
     Like  Bookmark
  • An API is a user interface for developers. Put the necessary effort in it to ensure it’s not just functional but pleasant to use. Bài viết này sẽ nói về phương pháp thiết kế RestFul API, cũng như các lỗi thường gặp phải khi thiết kế chúng. Tìm hiểu về HTTP Method Các HTTP Method thường sẽ có 2 loại là SAFE và IDEMPOTENT. SAFE: không làm thay đổi state của server, tức là nó sẽ đọc và không làm thay đổi dữ liệu. Các method SAFE gồm: GET, HEAD, OPTIONS. Các method UNSAFE gồm PUT, DELETE, POST, PATCH. IDEMPOTENT: các method loại này có thể thực hiện n + 1 lần mà vẫn trả lại kết quả ban đầu. Vì vậy các method SAFE sẽ luôn IDEMPOTENT, còn UNSAFE thì chưa chắc
     Like  Bookmark
  • An API is a user interface for developers. Put the necessary effort in it to ensure it’s not just functional but pleasant to use. Bài viết này sẽ nói về phương pháp thiết kế RestFul API, cũng như các lỗi thường gặp phải khi thiết kế chúng. Tìm hiểu về HTTP Method Các HTTP Method thường sẽ có 2 loại là SAFE và IDEMPOTENT. SAFE: không làm thay đổi state của server, tức là nó sẽ đọc và không làm thay đổi dữ liệu. Các method SAFE gồm: GET, HEAD, OPTIONS. Các method UNSAFE gồm PUT, DELETE, POST, PATCH. IDEMPOTENT: các method loại này có thể thực hiện n + 1 lần mà vẫn trả lại kết quả ban đầu. Vì vậy các method SAFE sẽ luôn IDEMPOTENT, còn UNSAFE thì chưa chắc
     Like  Bookmark
  • SOLID là viết tắt của 5 chữ cái đầu trong 5 nguyên tắc thiết kế hướng đối tượng, giúp cho developer viết ra những đoạn code dễ đọc, dễ hiểu, dễ maintain, được đưa ra bởi Bob Martin và Michael Feathers. Việc theo sát 5 nguyên tắc này nói thì để đáp ứng cả 5 nguyên tắc e là điều không đơn giản. 5 nguyên tắc đó bao gồm: Single responsibility priciple (SRP) Open/Closed principle (OCP) Liskov substitution principe (LSP) Interface segregation principle (ISP) Dependency inversion principle (DIP) Trong bài viết này mình sẽ giới thiệu từng nguyên tắc trong 5 nguyên tắc trên cũng như cách áp dụng nó làm tăng chất lượng code trong Ruby
     Like  Bookmark