--Canary Release ist eine Bereitstellungsmethode, mit der eine neue Version einer Anwendung nur für einen Teil mehrerer Server freigegeben wird.
Es ist unklar, ob jemand zu diesem Zeitpunkt auf Rails 5.0.x (und mit einer kanarischen Version) upgraden wird, aber ich hoffe, es hilft jemandem: bete:
Da der Inhalt für diejenigen gedacht ist, die teilweise mit Ruby und Rails vertraut sind, werden grundlegende Erklärungen wie Sitzung und Rack in Rails weggelassen.
2.0.7
Durch das Rails 4.2.x-> 5.0.x-Upgrade wird das Rack-Juwel auf 2.0.8 oder höher aktualisiert. (Es gibt eine destruktive Änderung in der Generierungslogik von session_id
in Rack 2.0.7-> 2.0.8)
See. https://github.com/rack/rack/blob/master/CHANGELOG.md#208---2019-12-08
Lib / Rack / Session / Abstract / In [Rack 2.0.7 ... 2.0.8 Unterschied](https://github.com/rack/rack/compare/2.0.7 ... 2.0.8) Es ist sehr leicht zu verstehen, wenn Sie sich in id.rb
, lib /ack / session / memcache.rb
umschauen.
_session_id
(von Rails benannt gespeichert. /middleware/session/abstract_store.rb#L31)) wurde als Schlüssel für den Sitzungsspeicher verwendet (Redis, Memcached usw.)public_id
ist gleich _session_id
)Aus den oben genannten Gründen ist es kein Problem, wenn Sie eine neue Version von Rack Gem auf allen Servern gleichzeitig bereitstellen, jedoch in einer Umgebung, in der Rack Gems von 2.0.7 oder weniger und 2.0.8 oder mehr auf jedem Server gemischt sind (Canary Release-Umgebung), "session" Kann nicht mehr erhalten werden.