Chắc chắn chúng ta sẽ phải thêm một tuyến phòng thủ tiếp theo để bảo về Redis, tôi nói. Vậy cái gì có performance tốt hơn Redis cache nữa... Bỗng thằng em INTERN cất tiếng nói, Anh em thấy thế này, giọng nó khá trong trẻo..
Đươ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?
Cách đảm bảo dữ liệu không bị trùng lặp trong các tình huống đồng thời cao. Trước tiên hãy xem câu hỏi và sau đó mỗi chúng ta tự hỏi: "Minhd đã từng gặp phải những tình huống này chưa? Hoặc có thể tương lai sẽ gặp thì mình sẽ thực hiện như thế nào?"
Sau cuộc phỏng vấn đó, tôi dành một chút thời gian để suy nghĩ lại về những gì anh ấy nói. Công nhận về MYSQL việc viết câu lệnh rất đơn giản chỉ xoay quanh bốn cụm từ `SELECT`, `UPDATE`, `DELETE`, `INSERT INTO` tôi tin rằng đây là điều mà mọi lập trình viên có chút kinh nghiệm đều có thể hiểu và làm được. Nhưng hôm nay sao nó lại quá lạ lùng như vậy…
Lúc này hệ thống đã lên tới `6000 request/second`, điều đó có nghĩa là hệ thống bán vé tàu của chúng tôi phát huy sức mạnh với nhiều người quan tâm. Ngáp một hơi lấy tinh thân đi ngủ thôi... Cuộc đời lập trình viên đẹp đến thế là cùng... NHƯNG
Ở phần trước chúng ta đã đến cập đến tuyền phòng thủ đầu tiên trong hệ thống [DDD bán vé tàu TẾT - Đồng thời cao], ở đó có một khái niệm cân được quan tâm đó là `circuitBreaker` và `RateLimiter`. Cốt lõi là `circuitBreaker` nó sẽ phát huy tác dụng trong trường hợp đó chính là quấy bán vé quá tải thì phải lập tức chuyển qua trạng thái OPEN.
Như vậy thì ở video trước chúng ta đã lập nên tuyền phòng thủ đầu tiên sử dụng công cụ `Resilience4j` được Netflix khuyên các hệ thống nên thay thế cho `Hystrix`. Vì `Hystrix` đang được maintenance. Tất nhiên các dự án cũ đang còn sử dụng Hystrix thì vẫn có thể sử dụng chúng nhằm giảm lỗi trong hệ thống.
Trong dự án bán vé tàu Tết với Spring Boot, chúng tôi sẽ chia ứng dụng thành 5 module chính: start, application, controller, infrastructure, và domain. Hãy quan sát và suy nghĩ..
Trên thực tế, việc xây dựng bán vé TÀU TẾT về cơ bản là một ứng dụng toàn diện của công nghệ có tính đồng thời cao trong các tình huống cụ thể. Ví dụ như mới tổ chức bán vé vào dịp tết, chuẩn bị bán vé liveshow MỸ TÂM, hoặc bán Iphone 17... Các kịch bản có tính đồng thời cao và khả năng thiết kế kiến trúc có tính tương tranh cao là khả năng then chốt không thể thiếu đối với các nhà phát triển. ..
INTERVIEW BACKEND vị trí Fresher BE như sau: Làm thế nào bảo vệ hệ thống cụ thể là nhiệm vụ API FORGOT PASSWORD khi có nhiều request trong một thời gian ngắn hạn.
Các lập trình viên nhìn chung có niềm đam mê lớn với công nghệ nên họ sẽ chắc chắn dành nhiều tâm sức cho việc học kỹ thuật lâpk trình trong suốt sự nghiệp của mình. Hơn nữa, các lập trình viên không chỉ cần thành thạo ngôn ngữ phát triển trong công việc mà còn phải thành thạo hàng loạt middleware mà các công nghệ đang triển khai. Ví dụ: Nếu bạn là kỹ sư phát triển back-end, bạn không chỉ cần thành thạo 1-2 ngôn ngữ back-end mà còn cả database, cache, message queue, sync..
Tôi bắt đầu lập trình bằng javascript cách đây 6 tháng và đây là ngôn ngữ duy nhất tôi biết cho đến nay. Tôi không thực sự hứng thú với frontend và tôi đã quen thuộc với các công nghệ được sử dụng để phát triển phía backend. Tôi muốn ngôn ngữ tiếp theo của mình là ngôn ngữ được sử dụng rộng rãi cho phát triển backend chủ thuần túy trong ngành và tôi không thể quyết định giữa JAVA, Go, C#, PHP, python. Ngôn ngữ nào có thể mang lại cho tôi nhiều cơ hội nhất để bắt đầu hành trình của mình trong những năm tiếp theo của lập trình viên.