Feathers: рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрд╕: рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдХреЗ рдРрдк рдХреЛ рд░реАрдлрд╝реНрд░реИрдХреНрдЯрд░ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд╢рдВрд╕рд┐рдд рддрд░реАрдХрд╛?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 19 рдордИ 2016  ┬╖  27рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: feathersjs/feathers

рдореИрдВ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ / рд╕рд┐рдлрд╛рд░рд┐рд╢ рддрд░реАрдХрд╛ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдЕрд▓рдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдорд╛рдЗрдХреНрд░реЛ-рд╕рд░реНрд╡рд┐рд╕реЗрдЬ-рд╕реНрдЯрд╛рдЗрд▓ рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрдВрдЦ рдХреЗ рд▓реИрдВрдбрд┐рдВрдЧ рдкреГрд╖реНрда рдкрд░ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрдпрд╛рди рд╣реИ:

рд╕реЗрд╡рд╛ рдЙрдиреНрдореБрдЦ: рдкрдВрдЦ рдЖрдкрдХреЛ рдПрдХ рджрд┐рди рд╕реЗ рд╕реЗрд╡рд╛ рдЙрдиреНрдореБрдЦ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рд╕рдВрд░рдЪрдирд╛ рджреЗрддрд╛ рд╣реИред рдЬрдм рдЖрдкрдХреЛ рдЕрдВрддрддрдГ рдЕрдкрдиреЗ рдРрдк рдХреЛ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрд╕ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдЖрд╕рд╛рди рд╕рдВрдХреНрд░рдордг рд╣реИ рдФрд░ рдкрдВрдЦ рдЖрдкрдХреЗ рдРрдк рдХреЛ рджрд░реНрдж рд░рд╣рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд▓реЗрдХрд┐рди, рдореБрдЭреЗ рдЕрднреА рднреА рдЗрд╕ рдмрд╛рдд рдХреА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рдорд┐рд▓ рдкрд╛рдИ рд╣реИ рдХрд┐ рдкрдВрдЦреЛрдВ рдореЗрдВ рдЗрд╕ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯрд╛ рдЬрд╛рдПред

рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдореИрдВ рд╢реБрд░реВ рдореЗрдВ рджреЛ рдмреБрдирд┐рдпрд╛рджреА рд╡рд┐рд╖рдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:

  • рд╕рдВрдЪрд╛рд░: рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╕реЗрд╡рд╛ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдореВрд▓ рдЖрд╡реЗрджрди рдХреЛ рдмрдбрд╝реЗ рдкреБрдирд░реНрд▓реЗрдЦрди рдкреНрд░рдпрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрдЪрд╛рд░ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдЗрдирд╡реЛрдХреЗрд╢рди рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗред
  • рдкреНрд░рдорд╛рдгреАрдХрд░рдг: рдЗрд╕ рдмрд╛рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХрд┐ рдкрдВрдЦ рд╕реЗрд╡рд╛ рдХреЗ рдмрд╛рдж рдЕрдВрддрд░-рд╕реЗрд╡рд╛ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВред

рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рдж!

Documentation Question Scaling

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЖрдк рд╕рд╣реА рд╣реИрдВ, рдЕрднреА рддрдХ рдмрд╣реБрдд рдЕрдзрд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рд╣рдордиреЗ рдЙрд╕ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝реА рджреЗрд░ рдкрд╣рд▓реЗ https://github.com/feathersjs/feathers/issues/157 рдмрдирд╛рдпрд╛ред рдпрд╣рд╛рдБ рдореЗрд░реЗ рджреЛ рд╡рд┐рд╖рдпреЛрдВ рдкрд░ рдЖрдкрдХреЗ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ:

рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╢реБрд░реВ рдореЗрдВ рджреЛ рд╕реЗрд╡рд╛рдУрдВ рд╡рд╛рд▓рд╛ рдПрдХ рд╕рд░реНрд╡рд░ рд╣реИ, рд╢рд╛рдпрдж рдХреБрдЫ рдРрд╕рд╛ рд╣реИ

app.use('/users', memory())
  .use('/todos', memory());

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрд╡рд╛ рдХреЛ рдПрдХ рд╕рд░реНрд╡рд░ рд╕реЗ рдЕрдзрд┐рдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдРрдк рдмрдирд╛рдХрд░ рдЗрд╕реЗ рджреВрд╕рд░реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:

// server1
app.use('/users', memory());
// server2
app.use('/todos', memory());

/todos рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдЕрдм рджреВрд░рд╕реНрде рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЦ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (Websockets рддреЗрдЬрд╝ рдФрд░ рджреНрд╡рд┐рджрд┐рд╢ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рд╕рд░реНрд╡рд░-рд╕реЗ-рд╕рд░реНрд╡рд░ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛?)?

// server2
const client = require('feathers/client')
const socketClient = require('feathers-socketio/client');
const io = require('socket.io-client');

const socket = io('http://other-server.com');
const otherApp = client().configure(socketClient(socket));

app.use('/todos', memory())
 .use('/users', otherApp.service('users'));

рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрд╡рд╛ рдХреЛ рджреВрд░рд╕реНрде рд╕реЗрд╡рд╛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдЧрд╛ред рдореВрд▓ /users рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдЫ рднреА рдмрджрд▓рдирд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП, рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдЙрдкрд░реЛрдХреНрдд рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ server1 рд▓рд┐рдП рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛ рдЕрдиреНрдп рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рдЖрдИрдкреА рдкрддреЗ рдХреЛ server2 рд╕реЗ рдЕрднреА рднреА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдЪрд╛рд░ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдмрд┐рдВрджреБред рдЕрдВрддрддрдГ server2 рдХреЗрд╡рд▓ рдПрдХ рдЧреЗрдЯрд╡реЗ рдмрди рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЕрдиреНрдп рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ (рдЬреЛ рдореВрд▓ рдЖрдИрдкреА рдкрддреЗ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)ред

рд╕рднреА 27 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЖрдк рд╕рд╣реА рд╣реИрдВ, рдЕрднреА рддрдХ рдмрд╣реБрдд рдЕрдзрд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рд╣рдордиреЗ рдЙрд╕ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝реА рджреЗрд░ рдкрд╣рд▓реЗ https://github.com/feathersjs/feathers/issues/157 рдмрдирд╛рдпрд╛ред рдпрд╣рд╛рдБ рдореЗрд░реЗ рджреЛ рд╡рд┐рд╖рдпреЛрдВ рдкрд░ рдЖрдкрдХреЗ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ:

рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╢реБрд░реВ рдореЗрдВ рджреЛ рд╕реЗрд╡рд╛рдУрдВ рд╡рд╛рд▓рд╛ рдПрдХ рд╕рд░реНрд╡рд░ рд╣реИ, рд╢рд╛рдпрдж рдХреБрдЫ рдРрд╕рд╛ рд╣реИ

app.use('/users', memory())
  .use('/todos', memory());

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрд╡рд╛ рдХреЛ рдПрдХ рд╕рд░реНрд╡рд░ рд╕реЗ рдЕрдзрд┐рдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдРрдк рдмрдирд╛рдХрд░ рдЗрд╕реЗ рджреВрд╕рд░реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:

// server1
app.use('/users', memory());
// server2
app.use('/todos', memory());

/todos рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдЕрдм рджреВрд░рд╕реНрде рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЦ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (Websockets рддреЗрдЬрд╝ рдФрд░ рджреНрд╡рд┐рджрд┐рд╢ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рд╕рд░реНрд╡рд░-рд╕реЗ-рд╕рд░реНрд╡рд░ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛?)?

// server2
const client = require('feathers/client')
const socketClient = require('feathers-socketio/client');
const io = require('socket.io-client');

const socket = io('http://other-server.com');
const otherApp = client().configure(socketClient(socket));

app.use('/todos', memory())
 .use('/users', otherApp.service('users'));

рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрд╡рд╛ рдХреЛ рджреВрд░рд╕реНрде рд╕реЗрд╡рд╛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдЧрд╛ред рдореВрд▓ /users рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдЫ рднреА рдмрджрд▓рдирд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП, рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдЙрдкрд░реЛрдХреНрдд рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ server1 рд▓рд┐рдП рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛ рдЕрдиреНрдп рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рдЖрдИрдкреА рдкрддреЗ рдХреЛ server2 рд╕реЗ рдЕрднреА рднреА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдЪрд╛рд░ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдмрд┐рдВрджреБред рдЕрдВрддрддрдГ server2 рдХреЗрд╡рд▓ рдПрдХ рдЧреЗрдЯрд╡реЗ рдмрди рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЕрдиреНрдп рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрд╡рд╛ рдХреЙрд▓ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ (рдЬреЛ рдореВрд▓ рдЖрдИрдкреА рдкрддреЗ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)ред

рдЬрд╡рд╛рдм рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдбреЙрдХреНрд╕ (рд╢рд╛рдпрдж рдЧрд╛рдЗрдб рдХрд╛ рдПрдХ рдЙрдк-рднрд╛рдЧ) рдкрд░ рдХрд╡рд░ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ? рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗред рдФрд░ рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рдорджрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рд╣рдо рдПрдХ рдЧрд╛рдЗрдб рдореЗрдВ рдХреНрдпрд╛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдХреБрдЫ рдбреЗрдореЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВ?

ЁЯТп @ рдбрдлреНрд▓ рдкрд░ рдзрдорд╛рдХрд╛ рд╣реИред рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдЕрдЧрд▓реЗ рдорд╣реАрдиреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рдирд┐рдкрдЯрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ рдпрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рдПрдХ рдкреНрд░рд╕реНрддреБрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рдХрд┐рдпрд╛ рд╣реИред

@daffl рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдмреИрдХрдПрдВрдб рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдкрд░ рдкрдВрдЦ-рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг, рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдбреЗрдЯрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдВрдЪрд╛рд░ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реЙрдХреЗрдЯ.рдЖрдИрдУ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрдВрдЦ рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╢рдмреНрджрд╛рд░реНрде / рдПрдкреАрдЖрдИ рд╣реИ? рдореИрдВ рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдкрд░ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ, рдЬрд╣рд╛рдВ рдПрдХ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлрд╝реНрдЯ рдЕрдиреНрдп рдЗрдЪреНрдЫреБрдХ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рдШрдЯрдирд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рди рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреНрд▓рд╛рдЗрдВрдЯред

рд╣рд╛рдВ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдЗрдЪреНрдЫреБрдХ рд╕реЗрд╡рд╛рдПрдВ рднреА рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИрдВ? рд╣рдо рдЕрдиреНрдп рдкреНрд░рджрд╛рддрд╛рдУрдВ (рдЬреИрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрджреЗрд╢ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП) рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рддреЗрдЬрд╝ рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдХрд╣реАрдВ рднреА рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкрдВрдЦреЛрдВ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ @daffl @ekryski рд╡рд┐рддрд░рд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдХрдо рд╕реЗ рдХрдо-рдПрдХ рдмрд╛рд░ рд╡рд┐рддрд░рдг (acks), рдЖрд▓рдВрдмрди, рд▓реЗрди-рджреЗрди, рдмреИрдХрдкреНрд░реЗрд╢рд░ (рдХрддрд╛рд░реЗрдВ), рдЖрджрд┐ рдЬреИрд╕реЗ рдореБрджреНрджреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рд╣реЛрдЧрд╛ред рдХрд╛рд░реНрдпрдХрд░реНрддрд╛? тАЭ.. рдЕрд░реНрдерд╛рддред рдмрд╛рд╣рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рдЬреЛ рдЯрд┐рдХрд╛рдК рдЕрдореНрдмрдк (рдЕрд░реНрдерд╛рдд рдЦрд░рдЧреЛрд╢) рд╕реЗ рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддреА рд╣реИрдВ рдХрддрд╛рд░ (рдпрд╛ рдХреНрдпреВрдИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ?

@daffl рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЖрдкрдХреЗ рдЬрд╡рд╛рдм рд╕реЗ рдкрд╣рд▓реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрдпрд╛ред рдЬрдм рддрдХ рдЗрдЪреНрдЫреБрдХ рд╕реЗрд╡рд╛рдПрдВ рдЙрддреНрдкрд╛рджрдХ рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рд╡реЗрдм рд╕реЙрдХреЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ, рдирд┐рдпрдорд┐рдд рдШрдЯрдирд╛рдУрдВ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдирд┐рд░реНрдорд╛рддрд╛ рдкрд░ рдирдИ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрдВрдЦреЛрдВ рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд╣реИ рдирд╛?

рдореИрдВ @justingreenberg рдХреЗ рд╕рд╛рде рд╕рд╣рдордд рд╣реВрдВ, рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЕрдиреНрдп рдореБрджреНрджрд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛ рд░рд╣рд╛ рд╣реИ рдЬрдм рдЬрд┐рдореНрдореЗрджрд╛рд░ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрд░реНрдХреНрд╕ рдСрдлрд╝рд▓рд╛рдЗрди (рдХреНрд░реИрд╢, рдЕрдкрдбреЗрдЯ рдЖрджрд┐) рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ, рдпрд╣ рд╕рдВрджреЗрд╢ рдХрддрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреА рдкрддрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐? рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рдкреНрд░рд▓реЗрдЦрди / рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕ рдмрд╛рдд рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХрд┐ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред

@ рд╣рдо рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореИрдВрдиреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдФрд░ рдПрдХ рдРрдк рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдФрд░ рд╣рдордиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдХреБрдЫ рд╕реАрдорд╛рдПрдБ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рд╕реЗрдЯ рдЕрдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕рдХреЛ рдмреЗрд╣рддрд░ рд╕рдорд░реНрдерди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрди: рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВред рднреВрдорд┐ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рдПрдХ рд╕рдкреНрддрд╛рд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдУрд╣ рдпрд╛рд░, рдореИрдВ рдЕрднреА рдЗрддрдирд╛ рдмреБрд░рд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ: рдбреА

рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рд╕реЗ рдмрд╛рд╣рд░ рдЖрдк рдХрдИ рд╕рд╛рдордиреЗ рдХреЗ рдЫреЛрд░ рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдЬрдХрд▓ рдХреЗ рдХрдИ рдмрдбрд╝реЗ рдРрдк рдмреИрдХрдПрдВрдб рдкрд░ рдПрдХ рдорд╛рдЗрдХреНрд░реЛрд╕реИрд╕ рд╕рд░реНрд╡рд┐рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдлреНрд░рдВрдЯ-рдПрдВрдб рдРрдкреНрд╕ рдХреЛ рднреА рддреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реБрдкрдпреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкреБрд╕реНрддрдХ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ: https://www.amazon.com/Building-Microservices-Sam-Newman/dp/1491950358/ref=sr_1_1 ? = = UTF8 & qid = 1469071253 & sr =? 8-1 рдФрд░ рдХреАрд╡рд░реНрдб = рдорд╛рдЗрдХреНрд░реЛрд╕рд┐рд╕реНрдЯрдореНрд╕

рджреЛрд╕реНрддреЛрдВ, рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ? рдзрдиреНрдпрд╡рд╛рджред

@ рдЬреБрдЖрдирдкреБрдЬреЛрд▓ рдирд╡реАрдирддрдо рдЬрд╛рдирдХрд╛рд░реА рд╣рдореЗрд╢рд╛ рдЗрд╕ рдЯрд┐рдХрдЯ рдореЗрдВ рд░рд╣реЗрдЧреАред рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдпрджреНрдпрдкрд┐ред

(рдпрд╣рд╛рдБ marcfawzi)

рдореИрдВрдиреЗ рдкреВрд░реЗ рд╕реВрддреНрд░ рдХреЛ рдирд╣реАрдВ рдкрдврд╝рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдкреНрд░рддрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ (Micreoservices рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рдЗрд╕ рдкреГрдердХреНрдХрд░рдг рдХрд╛ рд╣реЛрдирд╛ рдЕрдореВрд░реНрддрддрд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрджрд┐ рд╕рднреА рд╕реЗрд╡рд╛рдПрдБ рд╕рдорд╛рди рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд╛рдЭрд╛ рдХрд░рддреА рд╣реИрдВ, рддреЛ рд▓реЛрдЧреЛрдВ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред рдПрдХ рд╕рдорд╛рди рд╕реЗрд╡рд╛ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреА рд░рдЪрдирд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕реЗрд╡рд╛ рдореЙрдбрд▓ (рдорд╛рдЗрдХреНрд░реЛрд╕рд░рд╕ рдПрдмреНрд╕реНрдЯреНрд░рдХреНрд╢рди рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди) рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╕реЗ?

рдХреБрдЫ рднреА рдирд╣реАрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░реЛрдХрддрд╛ рд╣реИ, рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдЖрдк рдкрд░ рд╣реИ рдХрд┐ рдРрд╕рд╛ рди рдХрд░реЗрдВред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЧреА рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдореЙрдбрд▓ рдФрд░ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рдУрдЖрд░рдПрдо рд╕реНрддрд░ рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЕрдиреНрдп рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░рдХреЗ рд╕реЗрд╡рд╛ рд╕реНрддрд░ рдкрд░ рд░рд┐рд╢реНрддреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╕реНрдЯрд░ рдПрдмреНрд╕рдЯреНрд░реИрдХреНрд╢рди рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИред

рд╣рд╛рдБ рдмрд┐рд▓реНрдХреБрд▓ рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЕрд▓рдЧрд╛рд╡ рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡рд╛ рдХреА рдЕрдкрдиреА рдбреАрдмреА рд╣реИ, рдУрдЖрд░рдПрдо рд╕реНрддрд░ рдкрд░ рд╕реЗрд╡рд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рдЪрдирд╛ рдХреЛ рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддрд░реАрдХрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдкрдВрдЦ рдПрдХ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рд╕рднреА рдЕрдЪреНрдЫреЗ рд╣реИрдВред рдзрдиреНрдпрд╡рд╛рдж рдбреЗрд╡рд┐рдб! рдпрд╣ рдмреЗрд╣рддрд░ рдФрд░ рдмреЗрд╣рддрд░ рджрд┐рдЦрддрд╛ рд╣реИ рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рдореИрдВ рдЗрд╕рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рддрд╛ рд╣реВрдВ! рдЪрд╛рд░реЛрдВ рдУрд░ рдорд╣рд╛рди рдХрд╛рдо!

рдмрд╕ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдореИрдВ рдпрд╣рд╛рдВ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕реВрдХреНрд╖реНрдо рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдкрдВрдЦ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдЖрддреА рд╣реИрдВред рдпрд╣ рдХреЗрд╡рд▓ рдкрд╣рд▓рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдпрд╣рд╛рдВ рдореБрдлреНрдд рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рд╣реИ рддреЛ https://github.com/zapur1/feathers-rabbitmq/issues/1

@ zapur1 рдЬреЛ рдЖрд╢рд╛рдЬрдирдХ рд▓рдЧ рд░рд╣рд╛ рд╣реИ ... рдореИрдВрдиреЗ рдЪрд░реНрдЪрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдкреЛрд╕реНрдЯ рдХреА рд╣реИ

рдЖрдк рдЗрди рд╕рднреА рдХреЛ рд╕рдордиреНтАНрд╡рдпрд┐рдд рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрджреЗрд╢ рджрд▓рд╛рд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ rabgMQ, Redis, рдпрд╛ MongoDB рдХреЗ рд╕рд╛рде https://github.com/feathersjs/feathers-sync рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@ekryski feathers-sync рдПрдХ рдЕрд▓рдЧ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рд╕рд╛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рдПрдХ рдирд╛рдорд╛рдВрдХрд┐рдд рд╕реЗрд╡рд╛ рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдПрдХ рдкрдВрдЦ рд╕реЗрд╡рд╛ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рдорд╛рдЗрдХреНрд░реЛрд╕рд┐рд╕реНрдЯ рд╕реЗрд╡рд╛ рд╢реИрд▓реА)? рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХрд▓ API рдРрдк рд╕реЗ рдИрд╡реЗрдВрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХрд▓ рд╕реЗрд╡рд╛ рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдИрд╡реЗрдВрдЯ рдХреЛ рдЙрди рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреА рдЬреЛ рдЙрд╕ рдЗрд╡реЗрдВрдЯ рдХреЛ рдЙрд╕реА рдХреЛрдб рдХреЗ рдХрдИ рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рд╣реЛрддреА рд╣реИрдВред

@ekryski рдореИрдВ рдмрд╕ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рд░реЗрдкреЛ рдФрд░ zapur1 / рдкрдВрдЦреЛрдВ рдкрд░ рдирдЬрд░

рдЕрдЧрд░ рдореИрдВ рд╕реЙрдХреЗрдЯрдХреНрд▓рд╛рдЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕реЗрд╡рд╛ 1 рдХреЛ рд╕реЗрд╡рд╛ 2 рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ, рддреЛ рдЕрдЧрд░ рдореЗрд░реА рд╕реЗрд╡рд╛ 2 рдореЗрдВ рдмрд╣реБ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ, рддреЛ рдореИрдВ рд▓реЛрдб рд╕рдВрддреБрд▓рди рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ:

рдЕрдЧрд░ рдореИрдВ рдПрдХ рдЕрд▓рдЧ рд╕рд░реНрд╡рд░рд╕рд╛рдЗрдб рдРрдк рдмрдирд╛рддрд╛ рд╣реВрдВ рдЬреЛ рд╕реЙрдХреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рд╕реЗрд╡рд╛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ рдЙрдкрд▓рдмреНрдз рд╣реИред

рдореИрдВ рдЗрд╕ рдкрд░ https://github.com/kalisio/feathers-distributed рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ 2 рд╕реЗрдВрдЯ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ, рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╡рд┐рднрд┐рдиреНрди рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рдПрди рдкрдВрдЦ рдРрдк рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ рд╣реИ, рддрд╛рдХрд┐ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд╕рдХреЗрдВред рдпрд╣ https://github.com/feathersjs/feathers-sync рд╕реЗ рдЕрд▓рдЧ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореЗрд░реА рд╕рдордЭ рдореЗрдВ рд╣реИ, рдЙрддрдиреА рд╣реА рд╕реЗрд╡рд╛рдПрдВ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ N f рдкрдВрдЦ рдРрдк рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ рд╣реИред рдпрд╣ рд╕рдм рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдЙрдард╛рддрд╛ рд╣реИ:

  • рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдмрдВрдзрди
  • рдПрдкреАрдЖрдИ рдЧреЗрдЯрд╡реЗ рдФрд░ рд▓реЛрдб рд╕рдВрддреБрд▓рди
  • рджреВрд░рд╕реНрде рд╣реБрдХ рдЪрд╛рд▓рд╛рди
  • ...

@ daffl рдЙрджрд╛рд╣рд░рдг рдкрд░, рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдиреЗ рд╕рд░реНрд╡рд░ 1 рдФрд░ рд╕рд░реНрд╡рд░ 2 рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рд╣реИ, рдЖрдк рд╕рд░реНрд╡рд░ 2 рдореЗрдВ /users рд╕реЗрд╡рд╛ рдХреЛ рдХреИрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ? рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд░реНрд╡рд░ 2 рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рдЧрдИ рд╕реЗрд╡рд╛ рд╣реИ, рддреЛ рд╣рдо рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрд╡рд╛ рд╣реБрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрдм рд╕реЗ рд╣рдо app.use('/users', otherApp.service('users')); рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рдо рдпрд╣ рдХреИрд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╕рд░реНрд╡рд░ 2 рд╕реЗ рдЙрд╕ рд╕реЗрд╡рд╛ рдХреЛ рдХреЙрд▓ рдХреЗрд╡рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рд▓реЗ рдкреНрд░рдорд╛рдгрд┐рдд рд╣реИ?

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
Nvm, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣реИ: рд╣рдо const usersService = app.service('users') рдФрд░ рдлрд┐рд░ usersService.hooks(hooks) рдХреБрдЫ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╣реБрдХ рдХреЗ рд▓рд┐рдП рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реБрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ?

рдореИрдВрдиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдорд╛рдгреАрдХрд░рдг https://stackoverflow.com/questions/41076627/evaluating-featherjs-authentication-needs/41095638#41095638 рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреЗ рдлрд╛рдпрджреЗ рдФрд░ рдХрдорд┐рдпрд╛рдВ рд╣реИрдВред рдкрдВрдЦ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдо рддреМрд░ рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдИ рд╕рддреНрд░ рдирд╣реАрдВ рд╣реИрдВ, рд╕рд┐рд░реНрдл JSON рд╡реЗрдм рдЯреЛрдХрдиред JWTs рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЗрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╣реА рд╕реАрдХреНрд░реЗрдЯ рд╢реЗрдпрд░ рдХрд░рддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдЗрд╕рдореЗрдВ рд╕реЗрдВрдЯреНрд░рд▓ рд╕реЗрд╢рди рд╕реНрдЯреЛрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рджреЛ рдореБрдЦреНрдп рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:

  1. рдПрдХ рдореБрдЦреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ рдЬреЛ рд╕рднреА рдХрдиреЗрдХреНрдЯ рдХрд┐рдП рдЧрдП рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдФрд░ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрди рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмрдЬрд╛рдп рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдЖрдВрддрд░рд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд╛рдзрд╛рд░рдг рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВред рдпрд╣ рдЖрд╕рд╛рди рд╕реЗрдЯрдЕрдк рд╣реИ рдФрд░ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдЖрдВрддрд░рд┐рдХ рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ рд╕реБрдкрд░ рд╕рд░рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ (рдЪреВрдВрдХрд┐ рдореБрдЦреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ рдФрд░ рдкреНрд░рдорд╛рдгрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреНрд░рд╢реНрди рдмрдирд╛рдПрдВрдЧреЗ)ред рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдореБрдЦреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЕрднреА рднреА рдЕрдбрд╝рдЪрди рд╣реИ (рд▓реЗрдХрд┐рди рдХрдо рднрд╛рд░ рдХреЗ рд╕рд╛рде рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдЖрдВрддрд░рд┐рдХ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ)ред

my50m

  1. рд╣рд░ рдХреНрд▓рд╛рдЗрдВрдЯ рд╣рд░ рдЙрд╕ рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдЙрдиреНрд╣реЗрдВ JWT рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред JWT рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдорд╛рдгреАрдХрд░рдг (рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛) рдПрдкреАрдЖрдИ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЕрдзрд┐рдХ рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕рдорд╛рдзрд╛рди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдХрдорд╛рддреНрд░ рдЯреЛрдВрдЯреА рдПрдХ рдЖрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрд╡рд╛ (рдЬреЛ рд╣рдореЗрд╢рд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИ) рд╕реЗ рд╕рдмрд╕реЗ рдЕрджреНрдпрддрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реА рд╣реИред рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рдУрд░ рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ рдФрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг (рдХрдо рд╕реЗ рдХрдо рдЬреЗрдбрдмреНрд▓реНрдпреВрдЯреА рдХреЗ рд▓рд┐рдП) рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╕рд░реНрд╡рд░ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ JWT рдХреЗ рд╡реИрдзрд╛рдирд┐рдХрддрд╛ рдХреЗ рдХрд╛рд░рдг, рдХреЛрдИ рд╕рд╛рдЭрд╛ рд╕рддреНрд░ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

lw1bg

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

eric-burel picture eric-burel  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

corymsmith picture corymsmith  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

arve0 picture arve0  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jordanbtucker picture jordanbtucker  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

harrytang picture harrytang  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ