के बीच स्विच करें मान लें कि हमारे पास 2 रेडिस सर्वर बैकप्लेन्स हैं, एक मास्टर के रूप में और दूसरा स्लेव के रूप में।सिग्नलआर - विभिन्न रेडिस बैकप्लेन
प्रत्येक वेब अनुप्रयोग आदेश जुड़ा ग्राहकों को सामग्री पुश करने के रूप में यह होता है में और ताकि उन्हें बैकप्लेन से कनेक्ट करने में SignalR उपयोग कर रहा है मैं Application_Start
GlobalHost.DependencyResolver.UseRedis(host, port, "", new[] {"signalr.key"});
RouteTable.Routes.MapHubs();
अब में उपयोग कर रहा हूँ मामले मास्टर में Redis Backplane विफल रहता है , मैं स्लेव रेडिस सर्वर को मास्टर को बढ़ावा देना चाहता हूं और वेब सर्वर से सभी मौजूदा कनेक्शन को नए मास्टर रेडिस सर्वर पर स्विच करना चाहता हूं।
आदेश दास सर्वर मास्टर बढ़ावा देने के लिए मैं निम्नलिखित कोड
using (var conn = new RedisConnection(host, port, allowAdmin: true))
{
if (conn.ServerType != ServerType.Master)
{
conn.Open();
var makeMaster = conn.Server.MakeMaster();
var info = conn.Wait(conn.GetInfo());
conn.Wait(makeMaster);
}
}
कि काम करने के लिए लगता है का उपयोग कर रहा हूँ।
क्या आप कृपया मेरी मदद कर सकते हैं कि मैं अपने वेब एप्लिकेशन को कैसे सूचित कर सकता हूं कि बैकप्लेन ने मेरे कनेक्ट किए गए ग्राहकों के बीच संचार बनाए रखने के लिए नए से कैसे कनेक्ट किया है?
यह मास्टर को स्विच करने के लिए भी काम करता है लेकिन फिर मुझे सिग्नलर को सूचित करने का कोई तरीका नहीं मिल रहा है कि बैकप्लेन में बदलाव आया था। शायद मुझे हब्स या कुछ और "रीमेप" करने की ज़रूरत है, लेकिन जो भी मैंने कोशिश की है वह काम नहीं कर रहा है। – ppolyzos