xin chào các anh chị đã ghé qua kênh tiếp giờ và script nếu như đây là lần đầu tiên các anh chị ghé qua kênh thì kênh Tik JavaScript luôn chia sẻ những kiến thức mới trong quá trình lập trình của mình cũng như là luôn đưa ra những tình huống vấn đề và kênh tiếp giờ và clip giải quyết cái vấn đề lập trình đó trong một thời gian ngắn nhất và đưa ra những giải pháp tốt nhất cho đến hiện nay và nếu như các anh chị mà đã quen thuộc với kênh tip ra và script rồi thì chúng ta đi luôn vào video tiếp theo trong series thiết kế hệ thống phân tán thì ở video thứ nhất thì chúng ta đã nói đến cái thuộc cái vấn đề mà sơ khai Khi một người sát đất server một người setup dự án của mình thì người ta sẽ làm như thế nào đặc tính hiệu quả lên hàng đầu và sau đó khi mà càng ngày thời gian vấn đề kinh doanh của họ càng tăng đồng nghĩa với việc lợi nhuận tăng nhưng mà cái số lượng người dùng tăng dữ liệu luân chuyển rất rất là nhanh query person Tức là qps đại tăng thì lúc đó họ sẽ thay đổi cái kiến trúc phần mềm cũng như thay đổi cốt cái cốt ở đây chúng ta chưa Bàn tới nhưng mà chúng ta đã bàn tới thay đổi thiết kế phần mềm ngang dọc rồi hệ thống tìm kiếm như thế nào thì chúng ta đã có ở video thứ hai Còn ở video này chúng ta không thể thiếu đó chính là hai đó chính là tính khả dụng cao nó đây là một tiêu chí để đánh giá hệ thống cũng như là một tiêu chí thiết kế hệ thống cho nên các bạn không thể bỏ qua và tôi cũng không thể bỏ qua khi mà chúng ta đã làm quen với hai video trước vậy Bây giờ chúng ta đi tìm hiểu 3 cái vấn đề sau của video này con nó có tính chất rất là quan trọng nếu như không có cái tính khả dụng cao của hệ thống thì chúng ta hệ thống chúng ta dễ bị gãy và lập tức bị có thể là bị diệt vong chúng ta làm rõ ba cái vấn đề trong ngày Thứ nhất là hai là cái gì và triển khai nó khắc phục nó như thế nào và cách thứ ba đó là chúng ta có một cái công thức để mà chúng ta công thức tính toán trong vòng một thời gian thì server hệ thống của chúng ta cho phép được đai bao nhiêu giây tức là hệ thống của chúng ta ngừng bao nhiêu giây Ok Bây giờ chúng ta đi phần thứ nhất đó chính là 2 là cái gì đầu tiên nó chính là cái nguồn gốc trong định lý cáp của Eric brew Nếu như các bạn Nếu như các bạn mà đọc sách về khoa học máy tính thì chắc các bạn cũng không thể không biết đại ca này đó chính là đại ca này là một trong những là giáo sư danh dự nổi tiếng trong cái ngành khoa học máy tính của Đại học California ông cũng chính là cái Phó chủ tịch của hạ tầng của Google ông nghiên cứu rất là nhiều cái vấn đề xoay quanh [âm nhạc] nó quá Ok xuất sắc người ta gọi là hát OK thì cái hi này hay là tính sẵn sàng cao là nó dùng chỉ để khả năng của một hệ thống thực hiện các chức năng đó mà không bị gián đoạn tích nghĩa là nó cố gắng khả năng làm sao tối thiểu nhất khi hệ thống bị chết tức nghĩa là nó luôn luôn làm cho hệ thống chạy mượt nhưng mà có chết thì chết đói khoảng thời gian cho phép mà chúng ta sẽ có một công thức riêng Ok thì tiếp tục Nó là một cái ha Nó là một trong những tiêu chí để thiết kế hệ thống nhà các bạn một hệ thống của season sẵn sàng cao có thể chạy lâu hơn bền bỉ hơn các hệ thống khác ăn nhau là ăn chỗ này rồi bây giờ chúng ta đi tiếp vậy hát trong cuộc sống như thế nào tức là tính khả dụng hay tính sẵn sàng cao cuộc sống như thế nào thì đầu tiên Các bạn nhìn vào cái hình ảnh này giúp tôi đó các bạn có thể hình dung chưa Đó là cái lốp xe dự phòng bất cứ ô tô nào cũng có một lúc dự phòng Mọi người thuật toán đều áp dụng vào cuộc sống Nhật Bản từ cuộc sống mà ra thôi như các bạn đã xem Series 3 tầng thì các bạn cũng biết mỗi cái 3 tầng đều có một cái ví dụ trong cuộc sống và từ cuộc sống và triển khai ra chúng ta có thể nhìn hình ảnh này chúng ta mua một cái xe ô tô thì chúng ta sẽ đến một cái lốp vào một lúc gọi là lúc như là khi xe của chúng ta dừng thủng lốp hoặc là gì đó giống như hệ thống kiến trúc rừng thì chúng ta phải có một cái lớp để mà thay đương nhiên khi mà thay lốp nó sẽ có một khoảng thời gian rất là ngắn đúng không Khoảng thời gian rất là ngắn Tất nhiên là khi mà dừng xe là cho phép giới thiệu tầm 10 phút thì các bạn phải thay lúc xong để mà ra xe tiếp tục di chuyển thì cho nên cái nó cũng vậy thì nó có một cái công thức tính cái thời gian cho phép trong hệ thống sử dụng trong vòng 1 năm hoặc là thời gian chúng ta đo lường theo cái quy định mỗi doanh nghiệp có thể doanh nghiệp một tháng có thể doanh nghiệp một năm có thể doanh nghiệp 2 năm có thể doanh nghiệp 10 năm thì tùy theo Nhưng nó có một công thức riêng chút nữa chúng ta chúng ta sẽ bàn ha Ok đây có thể lốp khác nhau như tôi đã nói là dữ liệu khác nhau đúng không tính nhất quán khác nhau nhưng cái lốp hai cái lốp này không phải giống nhau nha nó có thể lốp hắn khác nhưng nó phải chạy được tất nhiên là dữ liệu không cần nhập mới nhất ví dụ lốp của lớp của gì đó lớp của Mitsubishi và lốp của lốp nổi tiếng là của của cái hãng gì mà nổi tiếng mà của Michelin đó là nó khác nhau nhưng mà nó tốc độ nhưng mà nó vẫn chạy được đảm bảo cái yêu cầu đó là được đây Khả sử dụng là thời gian xảy ra thấp nhất nếu thay lốp nếu mà thay nhiều thì có thể chúng ta vứt cái xe đồng nghĩa với việc thiết kế hệ thống hệ thống mà chúng ta mà bị lỗi nhiều hoặc là một năm dừng đến mấy ngày mấy tháng thì coi như là cái hệ thống đó không không có tính khả dụng cao không có tính sẵn sàng cao thì tương lai của nó cũng sẽ đổ bể mà thôi các bạn cứ nôm Na các bạn hiểu như thế này mỗi lần Facebook hoặc là google mà dừng tầm 1 phút thì ngày mai là các bạn sẽ thấy tràn ngập trên mạng trên các báo chí nào là Facebook bị sập nào là Google bị sập đó các bạn thấy không cái tầm quan trọng của người ta như là như thế cho nên là hạn chế bớt cái việc sever định nghĩa về phải nói thời gian cho phép trích của hệ thống Đây là cái thuật toán để mà chúng ta căn một cái thời gian để chúng ta cho phép của hệ thống chết đầu tiên tôi lấy cái hình ảnh trên wiki Để chúng ta biết cái valiburity là cái gì tức Nghĩa là nó có định nghĩa cái thuật toán với cái là oan lái Online này tonight 2 tương tự như vậy thì cái phone này là cái phổ biến nhất trong cái hệ thống bảo trì hệ thống để mà cho phép kiến trúc của chúng ta đai trong khoảng thời gian đó vậy file là gì Tức là năm con số 9 ra đồng nghĩa với việc là 99,99% CV hệ thống phải hoạt động tất nhiên là tức là nó cho phép nó cho phép không phải 1% không phải 001% chết mà thôi các bạn có tin điều đó xảy ra không có đấy các bạn cho nên nó có một cái có nguyên tắc của thiết kế hệ thống là như vậy vậy Bây giờ chúng ta đi vào cái giải thích cái vấn đề như thế này này ví dụ đau đau tim là 115 cho phép cái thời gian chết bao nhiêu lần ví dụ như là chúng ta lấy cái file nice là nó 5 phút 26 giây 5 phút 26 giây Đúng là 5 phút 26 giây này 1,31 giây là là mỗi quý ví dụ là mỗi tuần mỗi tháng là chỉ có 26 xe cần 26 rưỡi thôi còn mỗi tuần là 6 hơn 6 secon cho phép vậy công thức đó tính như thế nào thì chúng ta Tôi đã làm ở đây rồi Tức là file này đó là như vậy Final tiếng là 99,9,99% thì tính để tính thời gian hoạt động của chấp nhận có công thức sau công thức như thế này tổng thời gian hoạt động mong muốn là nếu như các bạn mà Nếu như các bạn mà chọn cái Ford Night hay là cái find Night thì chúng ta lấy 100% trừ đi chúng ta nhân cho 1100 chết thì chúng ta sẽ có 0,999 và nhân cho tổng thời gian mong muốn sẽ bằng thời gian ngừng hoạt động chấp nhận được thì bây giờ tôi lấy ví dụ Các bạn đây chúng ta có một năm một năm 365 ngày mà nhân 24 giờ mỗi ngày và nhân 60 phút mỗi giờ thì chúng ta sẽ có được 500 5.200 500 phút đúng không thì chúng ta sẽ lấy công thức như thế này chúng ta lấy cái thời gian hoạt động một năm trừ cho file five Night hoặc fort nhân cho tổng thời gian hoạt động một năm thì chúng ta sẽ có năm mấy năm phẩy 25 phút đó thì giống như cái bàn hoạt động này đúng không đó giống như bạn hoạt động này thôi các bạn tính toán ra đấy Cái này thì tôi nói để các bạn biết công thức điểm tính toán cho phép cục hệ thống bị dyes Ok thì 5 phút 0,25 phút tương đương với hệ thống đai cho phép là 5 phút 15 giây 5 phút này chúng ta có 0,25 phút thì cái này 15 giây tức là 1/4 phút là phải 15 giây đúng không Thì nếu là một tuần chúng ta sẽ nếu là một tuần thì chúng ta sẽ có cái thời gian này mà chia cho 12 tháng chia cho 4 mỗi tháng 4 tuần là chúng ta có 6 giây ha Ok thì các bạn theo tính theo công thức đó là ok Bây giờ ba cách triển khai Đây là vấn đề chính trong cái video này bằng cách triển khai nó ra một là tất nhiên là chúng ta triển khai cái cup thứ hai primary + secondary và thứ ba primmy + primary người ta gọi là ba cái kiến trúc này là kiến trúc hiện nay được áp dụng không không có cái hệ thống nào mà không có kiến trúc này cả Vậy chúng ta đi từng kiến trúc nó như thế nào ha đầu tiên chúng ta xem hình ảnh ví dụ như là ở video trước chúng ta đang nói về Push và Bun đó là cái new cái status khi mà khi mà một sa tế tức là người ta viết người ta update này thì người ta ghi đọc và ghi ở có thể là cái primary Tức là cái database chính là đọc đây và còn người ta có một cái database để make up các bạn nên nhớ nha Cái load nó khác cái hai beauty nha nó khác nhau chứ không phải là giống nhau nha Rồi bây giờ chúng ta một người sẽ đọc và viết ở cái chính và khi mà cái chính cái data p9 nó sẽ backup nó sẽ reply nó sẽ qua cái backup và khi nào Cái data bị lỗi thì người ta sẽ đi vào cái database để mà lấy đúng không Tự nhiên là hình như là cái sơ đồ cho cho chúng ta thấy nó được bảo toàn nó được nó được dự phòng bằng cái mục database mà Makeup thì cái dữ liệu khi mà cái nút Chính nó bị lỗi cái nút chính Tức là cái data bị lỗi thì chúng ta cần chuyển sang cái công cái database dự phòng gọi là make up cái hạn chế của cái lý do này là tính tính nhất quán có thể là chưa có và nó ra mây không được cập nhật mới và nó có thể là gây lãng phí tài nguyên phần cứng cái này rất là mâu thuẫn với cái định lý này tôi thấy tức là khi mà đã xác định là đã xác định là 99,99% không bị lỗi thì bất chấp để làm cái gì hoặc là chúng ta cho đai luôn đi tầm 1 2 giây sau là nó phục hồi lại thôi nhưng mà không thiết kế hệ thống không gian phép cái điều đó cho nên là chúng ta phải làm việc theo đúng cái nguyên tắc đúng Ok tiếp tục buổi thứ hai cái mùi thứ hai đó là primary secondy Nếu như các bạn mà đã làm ôngo DB thì cái này là rõ nhất hoặc là máy quay thì cái này là quá rõ luôn không cần phải nói nhiều cái kiến trúc này là tông trông như tương tự kiến trúc dự phòng chính kia đó nhưng nhưng các bạn để ý này những cái bản để ý này Cái thằng này chúng ta không nét đứt nha đây chúng ta phải để nét đứt là khi mà bị lỗi thì chúng ta mới truy cập vào đây Còn Đây là nét liền này các bạn có thể viết các bạn viết chắc chắn là viết ở đâu database Chính như cái video hay mà tôi đã nói các bạn viết là phải viết chính nhưng mà đọc có thể đọc cả hai không sao cả còn hai thằng này đồng bộ lẫn nhau nha Nhưng hai thằng này nó có đủ trễ khi sao chép dữ liệu từ chính qua phụ dữ liệu mà dữ liệu đọc thì nếu đọc ở đây thì có thể là không không có dữ liệu này nhưng mà hai thằng đều đọc cho nên là nó vừa dự phòng vừa dự phòng vừa mới cấp Ok rất là tuyệt đúng không còn cái thứ ba cái thứ ba đó chính là primary and primary tức là chúng ta hai cây giống nhau tương tự thằng nào cũng chính cả chúng ta chia ra chúng ta chia ra Ví dụ như là chúng ta ghi status YouTube này nếu mà giả sử giới giới tháng 9 thì chúng ta đi vào đây hoặc là trên tháng 9 chúng ta đi vào đây tùy tùy theo đâu cũng là chính cho nên chúng ta đọc viết thoải mái và cái cái mô hình này được sử dụng nhiều nhất Mặc dù nó rất là tốn kém Nhưng các bạn biết nó có một cái nhược điểm là gì không Đương nhiên là ưu điểm của nó là tăng thông lượng cho chúng ta này tăng tốc độ truy vấn này tăng tốc độ khả năng khả năng chịu sẵn sàng cao tính khả dụng cao nhưng nó có một số hạn nói ví dụ hạn chế sau đây là hạn chế rất là đặc biệt đó là Nếu cả hai cái database này cùng cập nhật một sản phẩm thì trạng thái cuối cùng của nó là như thế nào chúng ta không thể đoán trước đúng cho nên các bạn sử dụng kiến trúc này một cách rất cẩn thận nếu mà chúng ta triển khai trên amazon ec2 thì có theo cái thứ hai thì 90% thì là rất là khả dụng nhưng kiến trúc này người ta thống kê là tăng từ 90 đến 99%, tính khả dụng cao và tính sẵn sàng cao đó là 2 avail mà tôi muốn nó đến cho các bạn còn còn các bạn muốn cốt đúng không Thì chúng ta chắc để sau để chúng ta đang nói với kiến trúc hệ thống phân tán là chúng ta chỉ có mô hình thôi Còn cái triển khai nó không phải là nó quá phức tạp cái thứ nhất cái thứ hai nó là chúng ta không tôi không đủ tiền mà để mà đăng ký server để mà làm cho các bạn đâu Ok vậy thì video hôm nay kết thúc tại đây và video tiếp theo chúng ta sẽ trả lời một số câu hỏi tại vì các bạn comment rất là nhiều trên kênh YouTube thì tôi cũng sẽ là một số video để mà trả lời câu hỏi và Cái quan trọng là tôi sẽ làm một cái video Để mà giải thích cái khuya code tính từ cái looking khi mà Dũng shopee là khi mà các bạn lúc in bản quyền cước đưa điện thoại lên thì cái cái luồng đi nó như thế nào cách làm thế nào hoặc là trên Zalo chẳng hạn thì chúng ta sẽ đi cái sơ đồ đó cho chúng ta để các bạn biết nó có những thành phần gì và mỗi thành phần có phải làm gì không Xin chào và hẹn gặp lại các bạn ở video tiếp theo