рддреНрд░реБрдЯрд┐: рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди redis1.tfs рд╕реЗред tfs: 6379 рд╡рд┐рдлрд▓ - рд╕реЙрдХреЗрдЯ рдореЗрдВ рд░реЗрдбрд┐рд╕рдХреНрд▓рд╛рдЗрдВрдЯ.рдСрди_рд░реЛрд░ (/var/www/a/b/c/node_modules/redis/index.js:196/24) рдкрд░ ECONNRESET рдкрдврд╝реЗрдВред
рд╕реЙрдХреЗрдЯ.рдорд┐рдЯ рдкрд░ (рдИрд╡реЗрдВрдЯ .js: 95: 17)
at net.js: 441: 14
/var/www/a/b/c/node_modules/newrelic/node_modules/continuation-local-storage/node_modules/async-listener/glue.js:188:31
/var/www/a/b/c/node_modules/newrelic/node_modules/continuation-local-storage/node_modules/async-listener/glue.js:188:31
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ ред_tickDomainCallback (рдиреЛрдб .js: 486: 13)
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ред
рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ Node.js рдХреЗ рдмрд╛рд╣рд░ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдореБрджреНрджреЗ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣ рддреНрд░реБрдЯрд┐ "ECONNRESET" рд╣реИ, рдЬрдм Node.js рдХрд╛ рджреВрд░рд╕реНрде рдХрдиреЗрдХреНрд╢рди рд╕реЙрдХреЗрдЯ рдХреЛ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдк рдиреЛрдб рдФрд░ рд░реЗрдбрд┐рд╕ рдХреЗ рдмреАрдЪ рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рдиреЛрдб / рдиреЛрдб_реНрд░реЗрдбрд┐рд╕ / рд░реЗрдбрд┐рд╕ рд╕рд░реНрд╡рд░ рдХрд╛ рдХреНрдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ?
рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ NewRelic рдПрдЬреЗрдВрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рд╣рдореЗрд╢рд╛ рдПрдЬреЗрдВрдЯ рдХреЗ рдмрд┐рдирд╛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред cc / @wraithan
рдЙрди рд▓рд╛рдЗрдиреЛрдВ рд╕рд┐рд░реНрдл рд╕реАрдПрд▓рдПрд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╣ рдмрд╛рдд рд╣реИред рдПрдХ рд░реЗрдкреНрд░реЛ рдХреЗ рдЕрдзрд┐рдХ рдХреЗ рд╕рд╛рде рдореИрдВ рдиреНрдпреВ рдЕрд╡рд╢реЗрд╖ рдПрдЬреЗрдВрдЯ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрд╛рд╣рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЖрд╢реНрд╡рд╕реНрдд рд╣реВрдВ рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред
рдореИрдВрдиреЗ NewRelic рдПрдЬреЗрдВрдЯ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛, рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рд╣реЛрддреА рд╣реИред рд▓рдЧрднрдЧред рд╣рд░ 3 рдорд┐рдирдЯ рдореИрдВ рдпрд╣ рджреБрд░реНрдШрдЯрдирд╛ рд╣реЛ рд░рд╣реА рд╣реИред рдиреАрдЪреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рд▓реЙрдЧ рд╣реИрдВред
рдШрдЯрдирд╛рдУрдВред js: 72
рдПрд░ рдлреЗрдВрдХ; // рдЕрдирд╣реЗрд▓реНрджреА 'рддреНрд░реБрдЯрд┐' рдШрдЯрдирд╛
^
рддреНрд░реБрдЯрд┐: рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди redis1.tfs рд╕реЗред tfs: 6379 рд╡рд┐рдлрд▓ - ECONNRESET рдкрдврд╝реЗрдВ
RedisClient.on_error (/var/www/a/b/c/node_modules/redis/index.js:196:24) рдкрд░
рд╕реЙрдХреЗрдЯ рдкрд░ред
рд╕реЙрдХреЗрдЯ.рдорд┐рдЯ рдкрд░ (рдИрд╡реЗрдВрдЯ .js: 95: 17)
at net.js: 441: 14
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ ред_tickDomainCallback (рдиреЛрдб .js: 486: 13)
рддреНрд░реБрдЯрд┐: рд╣рдореЗрд╢рд╛ рдХреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЗ рд╕рд╛рде рдмрд╛рд╣рд░ рдирд┐рдХрд▓реА: 8
рддреНрд░реБрдЯрд┐: рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреБрдирд░рд╛рд░рдВрдн рдкреНрд░рдпрд╛рд╕ # 50
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ Node.JS - v0.10.35, node_redis - 0.12.1 рдФрд░ рд░реЗрдбрд┐рд╕ - 2.8.4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдореИрдВ рдиреЛрдб рдореЗрдВ рд╕реАрдзреЗ рдЖрдИрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реЗрдбрд┐рд╕ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдореБрдЭреЗ рднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдмрд╕ рдХреБрдЫ рд╣реА рд╕рдордп рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдЕрдкрдиреЗ /etc/hosts
рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдмрд╕ рд╣рд▓ рд╣реЛ рдЧрдпрд╛ред рдпрд╣ рдЧрд╛рдпрдм рдерд╛:
127.0.0.1 localhost
@ ayazpasha2434 рд╕рдорд╛рдзрд╛рди рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реЛрдВ рдХреА рддрд░рд╣ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╣ рдиреЛрдб рдХреЗ рдмрд╛рд╣рд░ рдФрд░ env / shell / OS / VM рдореЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред рдереЛрдбрд╝рд╛ рдкреАрдЫреЗ рд╣рдЯреЗрдВ рдФрд░ рдШреВрд░реЗрдВред
@sarathms рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд░реЗ рд╣реЛрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдпрд╣ рдореИрдкрд┐рдВрдЧ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд░реЗрдбрд┐рд╕ рдорд╢реАрди рдПрдХ рд░рд┐рдореЛрдЯ рд╣реИред рдмрд╕ рдХреНрд░реЙрд╕-рдЪреЗрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рд░реЗрдбрд┐рд╕ рдорд╢реАрди рдореЗрдВ рднреА рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдореИрдкрд┐рдВрдЧ рд╣реИред рдлрд┐рд░ рднреА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред
рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ ред рдпрд╣рд╛рдБ рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ
рдШрдЯрдирд╛рдУрдВред js: 72
рдПрд░ рдлреЗрдВрдХ; // рдЕрдирд╣реЗрд▓реНрджреА 'рддреНрд░реБрдЯрд┐' рдШрдЯрдирд╛
^
рддреНрд░реБрдЯрд┐: рдкрдм-рд░реЗрдбрд┐рд╕ -10606.us-рдкреВрд░реНрд╡-1-1.1.ec2.garantiadata рд╕реЗ рд▓рд╛рд▓ рдХрдиреЗрдХреНрд╢рдиред com: 10606 рд╡рд┐рдлрд▓ - RedisClient.on_error (C: UsersGigiDesktopeduknow_api_ver_1authnode_m рдкрд░ ECONNRESET рдкрдврд╝реЗрдВ
odulesredisindex.js: 196: 24)
рд╕реЙрдХреЗрдЯ рдкрд░ред
рд╕реЙрдХреЗрдЯ.рдорд┐рдЯ рдкрд░ (рдИрд╡реЗрдВрдЯ .js: 95: 17)
at net.js: 441: 14
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ред tickCallback (рдиреЛрдбред js: 442: 13)
@ ayazpasha2434 рдЗрд╕ рд▓рд╛рдЗрди рдиреЗ рдореЗрд░реА рддреНрд░реБрдЯрд┐ рд╣рд▓ рдХрд░ рджреА
client.on ('рдПрд░рд░', рдлрдВрдХреНрд╢рди (рдЗрд░реЗрдЯ) {рдХрдВрд╕реЛрд▓.рд░реЛрд░ (рдЗрд░реЗрдЯ)})
@ ayazpasha2434 рдХреНрдпрд╛ @Waterloo рдиреЗ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЙрддреНрддрд░ рджрд┐рдпрд╛ рд╣реИ?
рдЖрдкрдХреЗ рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИ рдФрд░ рдпрд╣ рдиреЛрдб рд░реЗрдбрд┐рд╕ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд▓рдЧрддреА рд╣реИред рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдРрдк рдЕрдм рдХреНрд░реИрд╢ рди рд╣реЛ (рдФрд░ рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рд╕рдВрд▓рдЧреНрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред
JAVA рд╕рд░реНрд╡рд░ рдкрд░ http (рдЙрдкрдпреЛрдЧ рдкреЛрд╕реНрдЯ) рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдкрд░ рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реБрдИред {[рддреНрд░реБрдЯрд┐: ECONNRESET рдкрдврд╝реЗрдВ]
рдХреЛрдб: 'ECONNRESET',
рдЧрд╝рд▓рддреА: 'ECONNRESET',
syscall: 'рдкрдврд╝рд╛',
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛: рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд}
рддреНрд░реБрдЯрд┐: ECONNRESET рдкрдврд╝реЗрдВ
Export._errnoException (use.js: 856: 11) рдкрд░
TCP.onread (net.js: 546: 26) рдкрд░
рдбрдмрд▓ рдХреЙрд▓рдмреИрдХ!
POST / user_archives / create / save 500 45.306 ms - 386
рддреНрд░реБрдЯрд┐: ECONNRESET рдкрдврд╝реЗрдВ
Export._errnoException (use.js: 856: 11) рдкрд░
TCP.onread (net.js: 546: 26) рдкрд░
@ biggu0 рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рдХрдиреЗрдХреНрд╢рди рд╕реЗ \ n рд╣реИред рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ ECONNRESET рдЖрдк рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рд╣рддреЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ stackoverflow ред
рдирдорд╕реНрддреЗ ,
рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рднреА рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд░реЗрдбрд┐рд╕ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рднреА рд░реЗрдбрд┐рд╕ рд╕реНрдиреИрдкрд╢реЙрдЯ рд▓реЗ рд░рд╣рд╛ рд╣реИ рдФрд░ рдбрд┐рд╕реНрдХ рдХрдиреЗрдХреНрд╢рди рдкрд░ рд╕реНрдЯреЛрд░реЗрдЬ рд░реАрд╕реЗрдЯ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд╕рд╛рдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рд░реЗрдбрд┐рд╕ рдбреАрдмрдЧ рд▓реЙрдЧ рдХреЗ рд╕рд╛рде рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЧ рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рд╕рдордп рдмрд┐рд▓реНрдХреБрд▓ рдореЗрд▓ рдЦрд╛ рд░рд╣рд╛ рд╣реИред
рдиреАрдЪреЗ redis.conf рдореЗрдВ рд╕реНрдиреИрдкрд╢реЙрдЯ рд╕реЗрдЯрд┐рдВрдЧ рд╣реИ
рдмрдЪрд╛рдУ 900 1
300 10 рдмрдЪрд╛рдПрдВ
60 10000 рдмрдЪрд╛рдПрдВ
рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдореБрдЭреЗ рдЕрдХреНрд╕рд░ рдХрдиреЗрдХреНрд╢рди рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рднреА рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИред
RedisClient.emit рдкрд░ рдИрдЖрд░рдЖрд░ (рдИрд╡реЗрдВрдЯреНрд╕.js: 188: 7)
RedisClient.on_error (/home/vcap/app/node_modules/redis/index.js:394:14) рдкрд░ ERR
RedisClient рдореЗрдВ рдИрдЖрд░рдЖрд░ред
рдИрдПрдордЖрд░рдИрдЖрд░рдПрдирдЖрд░рдПрдирдЖрд░рдЯреА рдкрд░ рдИрдЖрд░рдЖрд░ (net.js: 1281: 8)
рд╕реЙрдХреЗрдЯ рдореЗрдВ рдИрдЖрд░рдЖрд░ред
ERR рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ ред_tickCallback (рдЖрдВрддрд░рд┐рдХ / рдкреНрд░рдХреНрд░рд┐рдпрд╛ / next_tick.js: 98: 9)
рдИрдЖрд░рдЖрд░ рддреНрд░реБрдЯрд┐: XXXXXXXXX рдХреЗ рд▓рд┐рдП рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди
TCP.onread рдкрд░ ERR (net.js: 572: 26)
ERR рдкрд░ _combinedTickCallback (рдЖрдВрддрд░рд┐рдХ / рдкреНрд░рдХреНрд░рд┐рдпрд╛ / next_tick.js: 74: 11)
EmitOne рдкрд░ рдИрдЖрд░рдЖрд░ (рдИрд╡реЗрдВрдЯреНрд╕.js: 96: 13)
рдирд┐рд░реНрдпрд╛рдд рдкрд░ ERR._errnoException (use.js: 1022: 11)
рд╕реЙрдХреЗрдЯ.рдИрдорд┐рдЯ рдкрд░ рдИрдЖрд░рдЖрд░ (рдИрд╡реЗрдВрдЯреНрд╕.рдЬреЗрдПрд╕: 188: 7)
рддреНрд░реБрдЯрд┐ рдорд┐рд▓рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрди: рдХрдиреЗрдХреНрдЯ рд╣реЛ рд░рд╣рд╛ рд╣реИред
рдХрдиреЗрдХреНрд╢рди рдЦреЛрдиреЗ рдХрд╛ рдХреНрдпрд╛ рдореБрджреНрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд╣рд╛рдп рд╡рд╛рдЯрд░рд▓реВ,
рдЬрд╣рд╛рдБ рдЖрдк рдЗрд╕ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рдбрд╛рд▓рддреЗ рд╣реИрдВред рдХреНрд▓рд╛рдЗрдВрдЯ ('рдПрд░рд░', рдлрдВрдХреНрд╢рди (рдЗрд░реЗрдЯ) {рдХрдВрд╕реЛрд▓.рд░реЛрд░ (рдЗрд░реЗрдЯ)})
рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрдерди рдХреЗрд╡рд▓ рдЖрдкрдХреА рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рд╛рдВрддреНрд╡рдирд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдФрд░ рдХреБрдЫ рдирд╣реАрдВред
рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ?
рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рджреЗрдВред
рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рдж!!!
рдирдорд╕реНрддреЗ
рдореИрдВ рднреА рдЗрд╕реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
рдШрдЯрдирд╛рдУрдВред js: 160
рдПрд░ рдлреЗрдВрдХ; // рдЕрдирд╣реЗрд▓реНрджреА 'рддреНрд░реБрдЯрд┐' рдШрдЯрдирд╛
^
рддреНрд░реБрдЯрд┐: ECONNRESET рдкрдврд╝реЗрдВ
рдЗрд╕рд╕реЗ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ:
рдореИрдВ рднреА рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдореИрдВ рдПрдХ рд╣реБрдХ рдХреЗ рд╕рд╛рде sails.js рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдиреЛрдб рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рд╕рд░реНрд╡рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдХрдиреЗрдХреНрд╢рди рд╣реИ, рд╣рдо рд░реЗрдбрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрд╢реНрд╡рд┐рдХ рдкрд╛рд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ
redisClient = redis.createClient({
host: redisConfig.host,
port: redisConfig.port,
db: redisConfig.db,
retry_strategy: (retryOptions) => {
if (retryOptions.error && retryOptions.error.code === 'ECONNREFUSED') {
// End reconnecting on a specific error and flush all commands with
// a individual error
return new Error('The server refused the connection');
}
if (retryOptions.total_retry_time > 1000 * 60 * 60) {
// End reconnecting after a specific timeout and flush all commands
// with a individual error
return new Error('Retry time exhausted');
}
if (retryOptions.attempt > 3) {
// End reconnecting with built in error
return undefined;
}
sails.log.debug('Handling redis retry strategy', {
error: retryOptions.error,
totalRetryTime: retryOptions.total_retry_time,
attempt: retryOptions.attempt
});
// Reconnect after
return Math.min(retryOptions.attempt * 100, 3000);
}
});
рдпрд╣рд╛рдБ рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рд╣реИ
рдЧрд░реНрднрдкрд╛рдд: рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди рдЦреЛ рдЧрдпрд╛ рдФрд░ рдХрдорд╛рдВрдб рдирд┐рд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛ред рдпрд╣ RedisClient.flush_and_error (/var/sample-app/node_modules/redis/index.js:362:23 рдкрд░ RedisClient .connection_gone (/ var / рдирдореВрдирд╛-рдРрдк / node_modules / redis / index) рдкрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред js: 664: 14) n рдкрд░ RedisClient.on_error (/var/sample-app/node_modules/redis/index.js:410:10) рд╕реЙрдХреЗрдЯ рдкрд░ред
рд╣рдорд╛рд░рд╛ рдиреЛрдб рдРрдк рдПрдХ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдпрд╣ EC2 рд▓рд╛рдЗрдирдХреНрд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд░реЗрдбрд┐рд╕ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдЧрд╛ред
рд╣рдо рднреА рдЗрд╕реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╣рдордиреЗ рд╕реНрдЯрдирд▓рд╛рдЗрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдХреЛ рд░реЗрдбрд┐рд╕ рдХреЛ рдкреНрд░реЙрдХреНрд╕реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрдирд▓рд╛рдЗрди рд░рдЦрд╛ рд╣реИред
fips = рдирд╣реАрдВ
pid = /var/run/stunnel.pid
debug = 7
рд╡рд┐рдХрд▓реНрдк = NO_SSLv3
рдЖрдЙрдЯрдкреБрдЯ = /var/log/stunnel.log
[redis-cli]
рдЧреНрд░рд╛рд╣рдХ = рд╣рд╛рдБ
рд╕реНрд╡реАрдХрд╛рд░ = 127.0.0.1:6379
connect = redi sendpoint: 6379
рдкреНрд░рддреНрдпреЗрдХ рджреЛ рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдиреЛрдб рдЗрди рдиреАрдЪреЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╣рдо рдЗрдиреНрд╣реЗрдВ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВред
127.0.0.1:6379 рдкрд░ рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдлрд▓ - ECONNRESET рдкрдврд╝реЗрдВ
TCP.onStreamRead (рдЖрдВрддрд░рд┐рдХ / stream_base_commons.js: 111: 27)
рддреНрд░реБрдЯрд┐: 127.0.0.1:6379 рдкрд░ рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдлрд▓ - ECONNRESET рдкрдврд╝реЗрдВ
TCP.onStreamRead (рдЖрдВрддрд░рд┐рдХ / stream_base_commons.js: 111: 27)
рддреНрд░реБрдЯрд┐: 127.0.0.1:6379 рдкрд░ рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдлрд▓ - ECONNRESET рдкрдврд╝реЗрдВ
TCP.onStreamRead (рдЖрдВрддрд░рд┐рдХ / stream_base_commons.js: 111: 27)
рдЧрд░реНрднрдкрд╛рдд: рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди рдЦреЛ рдЧрдпрд╛ рдФрд░ рдХрдорд╛рдВрдб рдирд┐рд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛ред рдпрд╣ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдХреЛрдИ рд╕рдВрдХрд▓реНрдк?
рд╣рдо рднреА рдЗрд╕реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╣рдордиреЗ рд╕реНрдЯрдирд▓рд╛рдЗрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдХреЛ рд░реЗрдбрд┐рд╕ рдХреЛ рдкреНрд░реЙрдХреНрд╕реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрдирд▓рд╛рдЗрди рд░рдЦрд╛ рд╣реИред
fips = рдирд╣реАрдВ
setuid = рдЬрдбрд╝
рд╕реЗрдЯрдЧрд┐рдб = рдЬрдбрд╝
pid = /var/run/stunnel.pid
debug = 7рд╡рд┐рдХрд▓реНрдк = NO_SSLv2
рд╡рд┐рдХрд▓реНрдк = NO_SSLv3
рдЖрдЙрдЯрдкреБрдЯ = /var/log/stunnel.logрдЧреНрд░рд╛рд╣рдХ = рдирд╣реАрдВ
рдЕрдЧреНрд░рднреВрдорд┐ = рд╣рд╛рдБ
[redis-cli]
рдЧреНрд░рд╛рд╣рдХ = рд╣рд╛рдБ
рд╕реНрд╡реАрдХрд╛рд░ = 127.0.0.1:6379
connect = redi sendpoint: 6379рдкреНрд░рддреНрдпреЗрдХ рджреЛ рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдиреЛрдб рдЗрди рдиреАрдЪреЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╣рдо рдЗрдиреНрд╣реЗрдВ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВред
127.0.0.1:6379 рдкрд░ рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдлрд▓ - ECONNRESET рдкрдврд╝реЗрдВ
TCP.onStreamRead (рдЖрдВрддрд░рд┐рдХ / stream_base_commons.js: 111: 27)
рддреНрд░реБрдЯрд┐: 127.0.0.1:6379 рдкрд░ рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдлрд▓ - ECONNRESET рдкрдврд╝реЗрдВ
TCP.onStreamRead (рдЖрдВрддрд░рд┐рдХ / stream_base_commons.js: 111: 27)
рддреНрд░реБрдЯрд┐: 127.0.0.1:6379 рдкрд░ рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдлрд▓ - ECONNRESET рдкрдврд╝реЗрдВ
TCP.onStreamRead (рдЖрдВрддрд░рд┐рдХ / stream_base_commons.js: 111: 27)
рдЧрд░реНрднрдкрд╛рдд: рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди рдЦреЛ рдЧрдпрд╛ рдФрд░ рдХрдорд╛рдВрдб рдирд┐рд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛ред рдпрд╣ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИредрдХреЛрдИ рд╕рдВрдХрд▓реНрдк?
рдореЗрд░реЗ рд▓рд┐рдП рднреА рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдореБрджреНрджрд╛ рд╣реИ
рдореИрдВ рднреА рдЙрд╕реА рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
{ Error: Redis connection to xx.xx.x.x:6379 failed - read ECONNRESET"
at TCP.onStreamRead (internal/stream_base_commons.js:111:27) errno: 'ECONNRESET', code: 'ECONNRESET', syscall: 'read'
рдореИрдВ рдПрд░рд░ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдореЗрд░реА рдХреНрд╡реЗрд░реА рдХреЙрд▓ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдореЗрд░реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рджреЗрд░реА рдХрд░ рд╕рдХрддрд╛ рд╣реИред
@ рдЕрдпрд╛рдЬ рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рд▓ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ рд▓реЛрдЧреЛрдВ рдиреЗ рдХреЗрд╡рд▓ рддреНрд░реБрдЯрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдВрднрд╛рд▓рд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдЕрдирд╕реБрд▓рдЭреА рд╣реИред
рдмрдореНрдкрд┐рдВрдЧ: рдпрд╣рд╛рдБ рдПрдХ рд╣реА рдореБрджреНрджрд╛:
error: Error: Redis connection to xx.yy.zz.aa:6379 failed - read ECONNRESET
at TCP.onStreamRead (internal/stream_base_commons.js:205:27) {
errno: 'ECONNRESET',
code: 'ECONNRESET',
syscall: 'read'
},
рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд╕рд╛рде рд╣реА рджреЗрдЦрддрд╛ рд╣реВрдВ:
Redis рдХреЛ Google Cloud MemoryStore рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд▓реЙрдЧ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:
[Ioredis] рдЕрдирд╣реЗрд▓реНрджреА рдПрд░рд░ рдЗрд╡реЗрдВрдЯ: рдПрд░рд░: рдЗрдХреЛрдиреЙрдиреЗрдЯ рдкрдврд╝реЗрдВ
рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░рдг рдпрд╛ рд╕рдорд╛рди рдЪрд░рдгреЛрдВ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ 24 рдШрдВрдЯреЗ рдореЗрдВ рдПрдХ рдмрд╛рд░ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдмрд╕ рд╣реЛрддрд╛ рд╣реИ
@ robertop87
рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рджреЗрдЦрддрд╛ рд╣реВрдВред Redis рдХреЛ Google Cloud MemoryStore рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛?
рдХреНрд▓рд╛рдЙрдб рдореЗрдореЛрд░реА рд╕реНрдЯреЛрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░ рдХреНрд▓рд╛рдЙрдб рд░рди / рдХреНрд▓рд╛рдЙрдб рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреЗрдЦрдирд╛ред рдпрд╣ рд╕рдВрднрд╡рддрдГ рддрдм рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдмрд╣реБрдд рдЬрд▓реНрдж рд╣реА Google рджреНрд╡рд╛рд░рд╛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рд░реЛрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рдореБрджреНрджрд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рдПрдХ рд╕рдкреНрддрд╛рд╣ рдкрд╣рд▓реЗ рд╢реБрд░реВ рд╣реБрдЖ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рдерд╛ рдХрд┐ рд╣рдо рд░реЗрдбрд┐рд╕ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓ рд░рд╣реЗ рд╣реИрдВред рд╣рдо рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЪрд▓рд╛рдиреЗ рдФрд░ рдиреЛрдб 12 рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдИрдУрд░реНрдбрд┐рд╕ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
IORedis рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рдгрдиреАрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рддреНрд░реБрдЯрд┐ рдкрд░ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдХрд╛рд░рдг рдпрд╣ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред
рдореИрдВрдиреЗ рдЬреЛ рдХрд┐рдпрд╛ рд╡рд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЕрдЧрд▓рд╛ рд╣реИ:
reconnectOnError: (error): boolean => {
console.log('Always reconnect on error', error)
return true
}
ECONNRESET рддреНрд░реБрдЯрд┐ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рдореЗрд░рд╛ рдХрдиреЗрдХреНрд╢рди рд╡рд╛рдкрд╕ рд▓реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдореЗрд░рд╛ Google рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЕрдм рдЕрдЯрдХ рдирд╣реАрдВ рд░рд╣рд╛ рд╣реИред
CC: @ hkd987
reconnectOnError
рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ рдкрдврд╝реЗрдВ: https://github.com/luin/ioredis
@ robertop87 рдиреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП reconnectOnError
рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЛ рдкреВрд░рд╛ рдХрд┐рдпрд╛ред рдпрд╣ рдПрдХ рдореБрджреНрджреЗ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдпрд╛ рдирдП рдЯрд┐рдХрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬ рдкрд░ рд╣реЛ рд░рд╣рд╛ рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@ ayazpasha2434 рдЗрд╕ рд▓рд╛рдЗрди рдиреЗ рдореЗрд░реА рддреНрд░реБрдЯрд┐ рд╣рд▓ рдХрд░ рджреА
client.on ('рдПрд░рд░', рдлрдВрдХреНрд╢рди (рдЗрд░реЗрдЯ) {рдХрдВрд╕реЛрд▓.рд░реЛрд░ (рдЗрд░реЗрдЯ)})