AWS ElastiCache memcached với PHP application – some notes
Cụ thể thông tin danh sách host lấy về được lưu ở đâu trên local?
-> đang lưu trên Ram của server gọi lấy thông tin
Khi trả về dữ liệu, chỉ trả về thông tin của các các node active, hay trả về tất cả các node đang được setting
-> chỉ active node
Phần retry, có ví dụ mẫu không? Nếu có thì nhờ bên AWS share lại
-> không có ví dụ mẫu, cần thực hiện try..catch ở trong source của application
Làm sao để biết install extension memcached (do AWS phát triển) thành công
-> nếu cài đặt sẽ phải khai báo dòng “extension=amazon-elasticache-cluster-client.so” vào file php.ini, và khi php -m sẽ thấy module tên “memcached” được load (Để tránh nhầm lẫn, conflict với module php-memcached, thì cần phải remove php-memcached trước khi cài)
Đang thấy trong phpinfo (sử dụng lệnh “php -i”) có thông tin của
libmemcached, với memcached của AWS, thông tin này có bị thay đổi hay
không?
-> Em có describle thử cluster, thì version khác nhau, nên đây chỉ đơn giản là lib vesion thôi, mình muốn lấy thông tin của cache engine version thì describle.
Persistent_id có ý nghĩa gì, static mode và dynamic khác nhau thế nào?
-> Ý nghĩa persistent_id:
Mặc định memcached instances bị destroyed khi kết thúc request. Để tạo ra 1 instance cố định giữa các request, sử dụng persistent_id để chỉ định 1 ID cho instance đó. Tất cả instance được tạo chung 1 persistent_id sẽ cùng chia sẻ connection. Tham khảo thêm: https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/AutoDiscovery.Using.ModifyApp.PHP.html
Ý nghĩa modes:
Sử dụng configure mode để chỉ định việc có sử dụng tính năng auto-discovery của memcached cluster hay không:
static: Không dùng auto-discovery, người dùng có thể thêm vào 1 list các server endpoints.
dynamic: client sử dụng 1 endpoint để lấy về các thông tin configure của cluster một cách định kỳ. Điều này cho phép scale cluster up hoặc down (về số lượng nodes) mà không cần phải thay đổi PHP app.
Memo: Cách auto-discovery hoạt động: https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/AutoDiscovery.HowAutoDiscoveryWorks.html
(Dựa trên endpoint của nodes include trong metadata, để nhận biết node đc add thêm, hay delete bớt. Lưu ý: Trong thời gian quá trình delete hoặc replace node đang diễn ra: endpoint của node đang bị delete hay thay thế, vẫn có thể chưa đc cập nhật ở metadata, nhưng khi cố gắng interact với những node này sẽ fail)
Note: Auto discovery: Bình thường endpoint là dạng
clusterName.xxxxxx.cfg.usw2.cache.amazonaws.com
Nếu set CNAME để cluster chỉ còn là dạng: clusterName.local chẳng hạn, sẽ không auto discovery được vì code của AWS là dựa vào đuôi .cfg để hoạt động