Nội dung bài viết
Video học lập trình mỗi ngày
Chúng tôi cũng xuất phát cùng một thời điểm cũng giống như việc xuất phát của một intern khi phát triển hệ thống. Hành trình của chúng ta đều như nhau, nhưng con đường lại khác nhau.
May mắn thay con đường của chúng tôi chọn có một người ANH, người SẾP thật là tuyệt vời, còn con đường của bạn thì sao?
Dù sao mọi con đường đều dẫn đến thành ROME. Ai cũng phải đến. Nhớ rằng, chúng ta phải đến..
Hệ thống đã cải thiện rõ rệt về hiệu năng
Sau khi hệ thống banvetautet
được thực hiện với kiến trúc microservice DDD Project thì qua bao nhiêu cách TEAM đã nghiên cứu và bây giờ đã có thành quả nhất định. Có thể nói từ một intern khi tham gia dự án từ đầu đến cuối thì ít nhất các bạn cũng đã trang bị cho mình nhiều kiến thức về hệ thống đồng thời cao thông qua những skills của các section trước.
Và qua đó chúng ta có thể đúc kết ngắn gọn khi việc tăng tốc từ 5000 lên đến 25.000 req/s thông qua câu thần chú Để hỗ trợ hiệu năng của hệ thống thì phải cần bộ nhớ đệm (Cache). Nhưng ở đây tôi rất bất ngờ bởi vì một số các bạn chỉ nghe qua về cache hoặc có thể đã sử dụng vài lần trong quá trình thiết kế lập trình dự án của mình và kết luận rất dễ dàng: "Nó quá dễ.." Trước khi bạn nói nó quá dễ hay thử xem video và đọc bình luận xem nó có thực sự là dễ, hay bạn chỉ nghe qua những câu chuyện của Bà Ngoại. Nó đây Cache nó đã khiến Sếp tôi rơi lệ
Không hề dễ như bạn nói, nó chỉ dễ dàng khi bạn chưa thực sự hiều nó. Riêng về cách triển khai, mặc dù nghe nói đến cache thì rất phổ biến nhưng thật ra nó phải cân nhắc và xem xét toàn diện dựa trên các nhiệm vụ của dự án. Nói là một chuyện và va chạm là một chuyện, chính vì vậy hôm nay tôi và các bạn sẽ có buổi nói chuyện sâu hơn thông thường về "Cache".
Các vấn đề xuất hiện khi sử dụng cache
Các bạn đã xem cách thực hành xuyên suốt quá trình sử dụng cache đó là Hệ thống chúng tôi tăng tốc khi thực hiện distributed cache, nhưng sau đó chúng tôi lại đánh thức nữa đêm vì điểm nghẽn của việc thực hiện distributed cache
và sau đó team chúng tôi đã nâng cấp thêm một kiến trúc khác Hệ thống lại được bảo vệ ăn toàn nhưng vẫn có hiệu năng tốt.
Thì sau khi thêm chiến lược local cache được áp dụng, thì hiệu suất tổng thể cụ thể là trong vòng 1 giây chúng tôi đã cải thiện hiệu suất request thông qua các trình giám sát prometheus và grafana đã chứng minh những con số không hề biết nói dối. Tôi nghĩ những link tôi share vào bài viết này thì nếu có thời gian hãy dành cho nó.
Đương nhiên có rất nhiều framework opensource hỗ trợ local cache chẳng hạn như Ehcache
, Guava cache
, Caffeine Cache
đương nhiên còn nhiều nữa... Nhưng thật sự bạn hay team bạn đã sử dụng chúng hết chưa, và các bạn phải chọn lựa thì dựa trên tiêu chí nào? Nếu bạn là một senior thật sự thì có lẽ các tiêu chí các bạn đã thuộc lòng, còn nếu như là một intern mà muốn đánh bại senior thì có thể join vào cuộc họp bên tôi Sau 3 giờ họp, chúng tôi lựa chọn 5 tiêu chí local cache như sau? ở đó bạn sẽ hiểu rõ các hệ thống phải dựa vào những tiêu chí gì để lựa chọn local cache
và những cái tên nào vừa được liệt kê trên sẽ lọt vào danh sách đề cử.
Chưa dừng lại tại đó, mặc dù chiến lược local cache cải thiện hiệu quả và hiệu suất tống thể được cải thiện rất nhiều. Sau bài này, tôi sẽ đưa lên cho các bạn một chiếc video thự sự chứng minh điều đó.
Nhưng... Hãy nhớ rằng, mọi chuyện luôn có hai mặt, mặc dù sự lựa chọn local cache đã mang đến làn gió mới, nhưng các vấn đề mới cũng đã bắt đầu xuất hiện trong hệ thống chúng tôi. Vậy những vấn đề đó là gì? Chúng tôi tiếp tục vượt qua nó như thế nào? Hãy đón xem tập tiếp theo của Series: Intern đánh bại Senior thông qua DDD Project - hệ thống đồng thời cao
Không có phiên nào là hoàn hảo chỉ có phiên bản này tốt hơn phiên bản kia mà thôi.
Anonystick - PHG