Tại sao Magento không thể tắt bộ đệm khi Redis thất bại


9

Tôi đang làm việc với Magento 1.9.0.1, và thỉnh thoảng các máy chủ Redis của chúng tôi lưu trữ bộ đệm Magento, (AWS ElastiCache) sẽ ngừng hoạt động. Khi điều này xảy ra, Magento lỗi nghiêm trọng cho đến khi Redis có sẵn một lần nữa.

Đây có thể là một câu hỏi khó trả lời nhanh chóng, nhưng điều tôi thắc mắc là tại sao Magento không thể hoạt động như bộ nhớ cache bị vô hiệu hóa khi nó không thể kết nối với Redis, thay vì gây ra lỗi nghiêm trọng?

Tôi không biết bất kỳ cài đặt hoặc bất kỳ mô-đun nào cung cấp cho Magento khả năng này, nhưng trên bề mặt, điều đó có vẻ không khó. Magento sử dụng local.xmlđể tìm ra cách kết nối với cơ sở dữ liệu và các phụ trợ bộ đệm. Sau đó, nó kết nối với cơ sở dữ liệu và xem xét các tùy chọn bộ đệm để biết có sử dụng bộ đệm hay không. Nếu được cơ sở dữ liệu yêu cầu sử dụng bộ đệm đã cho, nó sẽ chuyển một số cờ (có thể là biến toàn cục hoặc thuộc tính của một đơn vị) và sử dụng phụ trợ bộ đệm cho phần còn lại của yêu cầu. Không thể thực hiện Magento để tắt tính năng này trong yêu cầu đó nếu xảy ra lỗi kết nối?

Một trang web chậm là tốt hơn so với một lỗi nghiêm trọng.

Chỉnh sửa: Rõ ràng một số người không hiểu những gì tôi hỏi hoặc không thực sự đọc bài đăng này.

  1. Có một mô-đun sẽ cung cấp cho Magento khả năng hoạt động mà không có lỗi nghiêm trọng khi Redis không khả dụng, khi Redis đang được sử dụng làm phương thức lưu trữ bộ đệm chính.

  2. Nếu không, ai đó có thể khai sáng cho tôi tại sao điều này là không thể hoặc rất khó?


Đây là một câu hỏi hoàn toàn tốt. Tôi đã đối mặt với cùng một vấn đề và có cùng một câu hỏi. Tại sao không thể magento nhận ra rằng máy chủ Redis không hoạt động và chuyển sang bộ đệm magento truyền thống thay vì gây ra lỗi nghiêm trọng.
Vinu D

1
@Tyler V, bỏ phiếu để mở lại, không thấy làm thế nào điều này không rõ ràng hoặc lạc đề có vẻ như là một vấn đề thú vị và một câu hỏi hợp lệ. Tôi không biết về một mô-đun giải quyết vấn đề này, nó có thể không phải là thứ mà Magento dễ dàng thực hiện và sẽ yêu cầu một mô-đun được phát triển cho việc này. Tôi đoán bạn sẽ cần nghiên cứu cách gọi bộ đệm trong Magento trước khi phát triển mô-đun.
Holly

Giải pháp đơn giản nhất sẽ là một cron ping Redis và nếu không có câu trả lời, hoán đổi local.xml bằng một biến thể sử dụng bộ đệm ẩn tệp.
Paul Grigoruta

Câu trả lời:


2

Tất cả bạn phải làm chỉ là sửa 3 vấn đề / vấn đề:

  1. Tại sao redis thất bại? Lưu lượng truy cập lớn, lỗi, vấn đề bộ nhớ, mạng?
  2. Thời gian chờ và thử lại cài đặt cho kết nối?
  3. Ngăn xếp của bạn được cập nhật?

Rõ ràng bạn có thể thay đổi một số mã và đặt logic của bạn thay vì lỗi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.