Tin mới nhất

Menu

Browsing "Older Posts"

Bài Viết Về Chủ Đề " Database "

Chia Sẻ Khóa Học PostgreSQL Replication, High Availability HA Và Scalability [Khóa 6342 A]

14 tháng 11 2024 / No Comments

Các giải pháp về Scaling Postgres với Master-Slave Replication, PgBouncer, PgPool II, HAProxy, Partitioning, Sharding.

Những gì bạn sẽ học được:

  • ✓ Đánh giá nhu cầu scaling của bạn.
  • ✓ Cách scale read bằng cách sử dụng Replication và Load-Balancing.
  • ✓ Giải pháp Replication nào là tốt nhất cho một trường hợp sử dụng cụ thể.
  • ✓ Cách quản lý các database connection với PgBouncer connection pooler.
  • ✓ Cách sử dụng nhiều PostgreSQL instance trên đám mây (Google Cloud).
  • ✓ Cách để để đạt được High-Availability.
  • ✓ Cách thực hiện Automatic Failover bằng PgPool II.
  • ✓ Cách scale write bằng cách sử dụng Partitioning và Sharding.

PostgreSQL là một trong những hệ thống quản lý cơ sở dữ liệu mạnh mẽ và dễ sử dụng nhất. Nó có sự hỗ trợ mạnh mẽ từ cộng đồng và đang được phát triển tích cực với bản phát hành mới hàng năm.

PostgreSQL hỗ trợ các tính năng tiên tiến nhất có trong các tiêu chuẩn SQL. Nó cũng cung cấp các khả năng NoSQL và các kiểu dữ liệu và extension rất phong phú. Tất cả những điều này làm cho PostgreSQL trở thành một giải pháp rất hấp dẫn trong các hệ thống phần mềm.

Trong khóa học này, chúng ta sẽ thảo luận về vấn đề xây dựng các giải pháp có khả năng mở rộng dựa trên PostgreSQL bằng cách sử dụng tài nguyên của một số server. Có một hạn chế tự nhiên đối với các hệ thống như vậy, về cơ bản, luôn có sự thỏa hiệp giữa hiệu suất, độ tin cậy và tính nhất quán. Có thể cải thiện một khía cạnh, nhưng các khía cạnh khác sẽ bị ảnh hưởng. Trong khóa học này, chúng ta sẽ xem cách tìm ra sự phù hợp nhất cho các trường hợp sử dụng của mình để chúng ta biết chính xác khía cạnh nào cần mở rộng và tránh những sự đánh đổi thường gặp của các hệ thống phân tán.

Scaling PostgreSQL là một hành trình. Bạn nên kết thúc khóa học này với sự chuẩn bị tốt hơn để đánh giá nhu cầu scaling của mình và hiểu cách scale read và cách scale write.

Mỗi giải pháp được trình bày trong khóa học này sẽ cải thiện một số khía cạnh của chủ đề scalability, nhưng mỗi giải pháp sẽ làm tăng thêm độ phức tạp và có thể có một số hạn chế hoặc ràng buộc.

Chúng ta phải đặt đúng câu hỏi để có được các yêu cầu của hệ thống và đây là lý do tại sao chúng tôi dành toàn bộ một bài giảng để xem xét những câu hỏi mà chúng ta phải tự đặt ra trước khi bắt đầu Hành trình Scaling.

Sau khóa học này, chúng ta sẽ có sự chuẩn bị tốt hơn và hiểu cách scale read.

Chúng tôi có một số tùy chọn để replication, tùy thuộc vào việc chúng tôi ưu tiên hiệu suất hay tính linh hoạt.

Có thể sử dụng Replication như một giải pháp backup hoặc standby trong trường hợp main server gặp sự cố.

Replication cũng có thể được sử dụng để cải thiện hiệu suất của một hệ thống phần mềm bằng cách phân bổ load trên nhiều database server.

Sau đó, nếu chúng ta có một loại replication tại chỗ, chúng ta có thể tự hỏi liệu chúng ta có muốn cho phép nhiều máy tính cùng phục vụ cùng một dữ liệu hay không.

Để đạt được điều này, chúng ta cần có một cơ chế phân phối các request. Chúng ta sẽ xem xét ở đây hai tùy chọn phổ biến nhất hiện có.

Tiếp theo, nếu số lượng kết nối cơ sở dữ liệu lớn, thì có lẽ chúng ta sẽ muốn sử dụng một connection pooler. Một lần nữa, chúng ta sẽ đề cập đến hai tùy chọn ở đây.

Chúng ta cũng sẽ xem cách scale write và cách dự đoán mức tăng trưởng lưu lượng truy cập bằng cách thêm hàng đợi vào kiến ​​trúc của bạn.

Sau đó, chúng ta sẽ kiểm tra phân vùng cho những trường hợp phải xử lý các big table.

Ngoài ra, chúng ta sẽ check sharding để scale write và tất cả các quyết định phức tạp đi kèm.

Cuối cùng, chúng ta sẽ sớm thấy giải pháp multi-master, đây là một khái niệm tương đối mới và có vẻ đầy hứa hẹn.

Nếu mục tiêu của chúng ta chỉ là đạt được High availability hoặc khả năng tiếp tục hoạt động ngay cả khi một phần của cluster bị lỗi, chúng ta có thể chỉ kiểm tra những giải pháp đó.

Yêu cầu tiên quyết đối với HA là phải đưa ra một chiến lược replication.

Sau đó, chúng ta có thể sử dụng các công cụ để cho phép máy chủ thứ hai tiếp quản nhanh chóng nếu máy chủ chính bị lỗi.

1. Giới thiệu về Scaling PostgreSQL:

  • ✓ Tại sao nên scale PostgreSQL?
  • ✓ Vertical Scaling là gì?
  • ✓ Horizontal Scaling là gì?
  • ✓ Read vs Write Bound Workload.
  • ✓ Tại sao Statistics lại cần thiết?
  • ✓ Làm thế nào để kích hoạt và tạo ra Statistics? (Thực hành).
  • ✓ Làm thế nào để scale Postgres for Reads?
  • ✓ Replication giúp scale như thế nào?
  • ✓ Load-Balancer là gì?
  • ✓ Làm thế nào để cale Postgres for Writes?
  • ✓ Làm thế nào để sử dụng Queues?
  • ✓ Partitioning và Sharding có thể giúp scaling như thế nào?
  • ✓ Giải pháp Multi-Master là gì?

2. Hiểu những hạn chế của việc Scaling PostgreSQL:

  • ✓ Giải thích định lý CAP.
  • ✓ PostgreSQL vs. Cassandra.
  • ✓ Use case: CA Systems.
  • ✓ Use case: AP Systems.

3. Làm thế nào để sử dụng Streaming Replication?

  • ✓ Streaming Replication là gì?
  • ✓ Asynchronous vs. Synchronous Replication.
  • ✓ Làm thế nào để Initialise Primary Database? (Thực hành).
  • ✓ Cấu hình Primary for Replication như thế nào? (Thực hành).
  • ✓ Làm thế nào để cấu hình Replica Instance? (Thực hành).
  • ✓ Testing Replication Setup (Thực hành).

4. Làm thế nào để sử dụng Logical Replication?

  • ✓ Logical Replication trong Postgres là gì?
  • ✓ Thiết lập Logical Replication từng bước.
  • ✓ Làm thế nào để thiết lập server cho Logical Replication? (Thực hành)
  • ✓ Làm thế nào để tạo bản sao dữ liệu có chọn lọc? (Thực hành).
  • ✓ Làm thế nào để tạo Publication? (Thực hành).
  • ✓ Làm thế nào để tạo Subscription? (Thực hành).
  • ✓ Giới hạn của Postgres về Logical Replication.
  • ✓ Làm thế nào để Monitoring Logical Replication? (Thực hành).
  • ✓ Các trường hợp sử dụng tốt nhất để sử dụng Logical Replication.

5. Làm thế nào để sử dụng PgBouncer?

  • ✓ PgBouncer là gì?
  • ✓ Các khái niệm cơ bản về connection pooling.
  • ✓ Làm thế nào để xây dựng một PgBouncer Setup? (Thực hành).
  • ✓ Làm thế nào để cài đặt và cấu hình PgBouncer? (Thực hành).
  • ✓ Làm thế nào để tạo một configuration file cơ bản cho PgBouncer? (Thực hành).
  • ✓ Làm thế nào để kết nối với PgBouncer? (Thực hành).
  • ✓ Giải thích về Settings nâng cao cho Performance.
  • ✓ Có những Pool Mode có sẵn nào?
  • ✓ Thực hiện một benchmark với PgBouncer (Thực hành).

6. Làm thế nào để scale PostgreSQL trong Google Cloud?

  • ✓ Giới thiệu.
  • ✓ Các thành phần chính trên Google Cloud.
  • ✓ Đặc điểm chính của kiến ​​trúc.
  • ✓ Làm thế nào để tạo PostgreSQL Instances trên Google Cloud? (Thực hành).
  • ✓ Làm thế nào để tạo một Google Cloud Engine (GCE) cho HAProxy? (Thực hành).
  • ✓ Làm thế nào để cấu hình HAProxy cho Load-Balancing? (Thực hành).
  • ✓ Testing Load-Balancing.

7. Làm thế nào để sử dụng PostgreSQL Partitioning?

  • ✓ PostgreSQL Partitioning là gì?
  • ✓ Những Table nào cần Partitioning?
  • ✓ Table nên được phân vùng như thế nào? 
  • ✓ Declarative vs. Inheritance Partitioning
  • ✓ Làm thế nào để tạo một Partitioned Table? (Thực hành).
  • ✓ Partitioning Methods.

8. Làm thế nào để Shard PostgreSQL?

  • ✓ Sharding là gì?
  • ✓ Pain-Points of Sharding?
  • ✓ Second Level Sharding là gì?
  • ✓ Good Sharding là gì?
  • ✓ Làm thế nào để query trên nhiều Shards?

9. Làm thế nào để setup High Availability (HA) trên PostgreSQL?

  • ✓ Tại sao cần High Availability?
  • ✓ Các bước để đạt được High Availability.
  • ✓ Những câu hỏi cần thiết trước khi thiết lập High Availability.
  • ✓ Log-Shipping Replication.
  • ✓ Streaming Replication và Logical Replication.
  • ✓ Cascading Replication.
  • ✓ Synchronous vs. Asynchronous Replication.
  • ✓ Automatic Failover and Always-on Strategy.
  • ✓ Ví dụ về Simple HA Solution.
  • ✓ Ví dụ về Better HA Solution.

10. Làm thế nào để sử dụng PgPool II?

  • ✓ PgPool II là gì?
  • ✓ Các tính năng của Pgpool-II.
  • ✓ Làm thế nào để cấu hình Pgpool-II với Streaming Replication? (Thực hành).
  • ✓ Làm thế nào để setup Streaming Replication? (Thực hành).
  • ✓ Cấu hình Pgpool-II cho Load Balancing như thế nào? (Thực hành).
  • ✓ Testing load-balancing & read/write separation (Thực hành).
  • ✓ Làm thế nào để cấu hình Pgpool cho PostgreSQL High-Availability? (Thực hành).
  • ✓ Làm thế nào để cấu hình PostgreSQL Primary Server? (Thực hành).
  • ✓ Cấu hình Pgpool-II Server như thế nào? (Thực hành).
  • ✓ Làm thế nào để cấu hình PostgreSQL Replica Server? (Thực hành).
  • ✓ Testing Failover (Thực hành).
  • ✓ Làm thế nào để restore các failed node? (Thực hành).

Khóa học này dành cho ai:

  • ✓ Software Engineer quan tâm đến việc thiết kế các giải pháp Scalable và ✓ HA trên PostgreSQL.
  • ✓ Database Administrator.
  • ✓ Mọi người quan tâm đến việc xây dựng các ứng dụng PostgreSQL tốt hơn.


NHẬN GET EBOOK TRÊN AMAZON THEO YÊU CẦU




Copyright Disclaimer:
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
Tuyên bố miễn trừ bản quyền:
Trang web này không lưu trữ bất kỳ tệp nào trên máy chủ của nó. Chúng tôi chỉ lập chỉ mục và liên kết đến nội dung được cung cấp bởi các trang web khác. Vui lòng liên hệ với các nhà cung cấp nội dung để xóa nội dung bản quyền nếu có và gửi email cho chúng tôi, chúng tôi sẽ xóa các liên kết hoặc nội dung có liên quan ngay lập tức.