
рдо рдХрд╕рд░реА рдпрд╕рд░реА рдмрд╛рдБрдЪреНрди рдЖрдПрдБ?
рд▓рд╛рдореЛ рд╕рдордп рдкрд╣рд┐рд▓реЗ рдореИрд▓реЗ рдЕрддреНрдпрдзрд┐рдХ рд▓реЛрдб рдЧрд░рд┐рдПрдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рдмреНрдпрд╛рдХрдПрдиреНрдбрдорд╛ рдХрд╛рдо рдЧрд░реНрдиреБрдкрд░реЗрдХреЛ рдерд┐рдпреЛ, рдЬрд╕рдорд╛ рдЬрдЯрд┐рд▓ рдЧрдгрдирд╛рд╣рд░реВ рд░ рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рд╕реЗрд╡рд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ рд╕рд╛рде рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдирд┐рдпрдорд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд▓рд╛рдИ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдерд┐рдпреЛред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рдЫ рд░ рдо рдЖрдЙрдиреБ рдЕрдШрд┐, рдпрд╕рдорд╛ рдХреНрд░реЛрди-рд▓рдиреНрдЪрд┐рдЩ рдХрд╛рд░реНрдпрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдПрдХ рд╕рд░рд▓ рд╕рдВрдпрдиреНрддреНрд░ рдерд┐рдпреЛ: рд╣рд╛рд▓рдХреЛ рд╕рдордп рдЬрд╛рдБрдЪ рдЧрд░реНрдиреЗ рд▓реБрдк рд░ рднреЗрд▓рд╛ рдорд╛рд░реНрдлрдд рдХреЛрд░рд╛рдЙрдЯрд┐рдирд╣рд░реВрдХреЛ рд╕рдореВрд╣рд╣рд░реВ рд╕реБрд░реВ рдЧрд░реНрдиреЗ - рдпреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реБрди рдкреБрдЧреНрдпреЛ рдЬрдмрд╕рдореНрдо рддреНрдпрд╣рд╛рдБ рджрд░реНрдЬрдиреМрдВ рд░ рд╕рдпреМрдВ рдпрд╕реНрддрд╛ рдХреЛрд░рд╛рдЙрдЯрд┐рдирд╣рд░реВ рдерд┐рдПрдирдиреНред рддрд░, рдЬрдм рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рджреБрдИ рд╣рдЬрд╛рд░ рдирд╛рдШреЗрдХреЛ рдерд┐рдпреЛ, рдореИрд▓реЗ рдПрдХ рджрд▓рд╛рд▓, рдзреЗрд░реИ рдХрд╛рдорджрд╛рд░рд╣рд░реВ, рд░ рдпрд╕реНрддреИ рдЕрдиреНрдпрд╕рдБрдЧ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп рд▓рд╛рдЗрди рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рд╕реЛрдЪреНрдиреБ рдкрд░реЗрдХреЛ рдерд┐рдпреЛред
рдкрд╣рд┐рд▓реЗ рдореИрд▓реЗ рд╕реЗрд▓рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реЗрдВ, рдЬреБрди рдореИрд▓реЗ рдкрд╣рд┐рд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрдХреЛ рдерд┐рдПрдБред рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рдкреНрд░рдХреГрддрд┐рдХреЛ рдХрд╛рд░рдг, рдореИрд▓реЗ рдкреНрд░рд╢реНрдирдорд╛ рдбреБрдмреНрдпреЛ рд░ рд╣реЗрд░реНрдиреБрднрдпреЛ , рд░ , рд▓реЗрдЦ рдХреЛ рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИрдПрдХреЛред
рдо рдпреЛ рднрдиреНрди рдЪрд╛рд╣рдиреНрдЫреБ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдзреЗрд░реИ рд░реЛрдЪрдХ рдЫ рд░ рд╣рд╛рдореНрд░реЛ рдЯреЛрд▓реАрдХреЛ рдЕрдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдорд╛ рдзреЗрд░реИ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд╛рдо рдЧрд░реНрджрдЫ, рд░ рд▓реЗрдЦрдХ рдЖрдлреИрдВ рднрдиреНрдЫрдиреН рдХрд┐ рдЙрд╕рд▓реЗ рдпрд╕рд▓рд╛рдИ рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рдкреВрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЙрддреНрдкрд╛рджрдирдорд╛ рд░реЛрд▓ рдЖрдЙрдЯ рдЧрд░реНрди рд╕рдХреНрд╖рдо рдерд┐рдпреЛред рддрд░, рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рдпреЛ рд╡рд╛рд╕реНрддрд╡рдореИ рдорд▓рд╛рдИ рдЙрдкрдпреБрдХреНрдд рднрдПрди, рдЬрд╕реНрддреЛ рдХрд┐ рдпреЛ рдмрд╛рд╣рд┐рд░рд┐рдпреЛ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд╕рдореВрд╣ рд╕реБрд░реБрд╡рд╛рддрдХреЛ рд╕рд╛рде (рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред )ред рд▓реЗрдЦреНрдиреЗ рд╕рдордпрдорд╛ рдмрдиреНрдж рдЫ, рддрд░ рдПрдХ рдорд╣рд┐рдирд╛рджреЗрдЦрд┐ рдХрд╛рдо рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫ ред рдЬреЗ рднрдП рдкрдирд┐, рд▓реЗрдЦрдХрд▓рд╛рдИ рд╢реБрднрдХрд╛рдордирд╛ рд░ рд╕рдмреИ рд░рд╛рдореНрд░реЛ, рдХрд┐рдирдХрд┐ рддреНрдпрд╣рд╛рдБ рдкрд╣рд┐рд▓реЗ рдиреИ lib рдорд╛ рдХрд╛рдо рдЧрд░реНрдиреЗ рдЪреАрдЬрд╣рд░реВ рдЫрдиреН ... рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдмрд┐рдиреНрджреБ рдордорд╛ рдЫ рд░ рдЙрдкрдХрд░рдг рдореЗрд░реЛ рд▓рд╛рдЧрд┐ рдУрд╕рд┐рд▓реЛ рднрдпреЛред рдердк рд░реВрдкрдорд╛, рдХреЗрд╣рд┐ рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рд╡рд┐рднрд┐рдиреНрди рд╕реЗрд╡рд╛рд╣рд░реВрдорд╛ 2-3 HTTP рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдерд┐рдП, рддреНрдпрд╕реИрд▓реЗ рдХрд╛рд░реНрдпрд╣рд░реВ рдЕрдиреБрдХреВрд▓рди рдЧрд░реНрджрд╛ рдкрдирд┐, рд╣рд╛рдореА 4 рд╣рдЬрд╛рд░ TCP рдЬрдбрд╛рдирд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдЫреМрдВ, рд▓рдЧрднрдЧ рд╣рд░реЗрдХ 2 рдШрдгреНрдЯрд╛рдорд╛ - рдзреЗрд░реИ рд░рд╛рдореНрд░реЛ рдЫреИрди... рдо рдПрдХ рдкреНрд░рдХрд╛рд░рдХреЛ рд▓рд╛рдЧрд┐ рд╕рддреНрд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБред рдХрд╛рдорджрд╛рд░ рд╕реБрд░реБ рдЧрд░реНрджрд╛ рдХрд╛рд░реНрдпред aiohttp рдорд╛рд░реНрдлрдд рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рдЕрд▓рд┐ рдмрдвреА .
рдпрд╕реИ рд╕рдиреНрджрд░реНрднрдорд╛ рдореИрд▓реЗ рдЦреЛрдЬреНрди рдерд╛рд▓реЗрдБ рд╡рд┐рдХрд▓реНрдк рд░ рдпреЛ рдлреЗрд▓рд╛ рдкрд░реНрдпреЛ! рдЕрдЬрд╡рд╛рдЗрдирдХрд╛ рдирд┐рд░реНрдорд╛рддрд╛рд╣рд░реВ, рд╡рд┐рд╢реЗрд╖ рдЧрд░реА, рдореИрд▓реЗ рдмреБрдЭреЗрдХреЛ рд░реВрдкрдорд╛ , рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ , рдореВрд▓ рд░реВрдкрдорд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд▓рд╛рдЧрд┐ ред Faust рдХрд╛рдлреНрдХрд╛ рд╕реНрдЯреНрд░рд┐рдореНрд╕рдмрд╛рдЯ рдкреНрд░реЗрд░рд┐рдд рдЫ рд░ рдХрд╛рдлреНрдХрд╛рд╕рдБрдЧ рдмреНрд░реЛрдХрд░рдХреЛ рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрджрдЫ, рд░рдХреНрд╕рдбреАрдмреА рдПрдЬреЗрдиреНрдЯрд╣рд░реВрдХреЛ рдХрд╛рдордмрд╛рдЯ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рд░ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдХреБрд░рд╛ рдпреЛ рд╣реЛ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рд╣реЛред
рд╕рд╛рдереИ, рддрдкрд╛рдИрдВ рд╣реЗрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдкрдЫрд┐рд▓реНрд▓реЛрдХрд╛ рд╕рд┐рд░реНрдЬрдирд╛рдХрд░реНрддрд╛рд╣рд░реВрдмрд╛рдЯ рд╕реЗрд▓реЗрд░реА рд░ рдлрд╛рд╕реНрдЯ: рддрд┐рдиреАрд╣рд░реВрдХреЛ рднрд┐рдиреНрдирддрд╛, рджрд▓рд╛рд▓рд╣рд░реВ рдмреАрдЪрдХреЛ рднрд┐рдиреНрдирддрд╛, рдкреНрд░рд╛рдердорд┐рдХ рдХрд╛рд░реНрдпрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред рд╕рдмреИ рдХреБрд░рд╛ рдПрдХрджрдо рд╕рд░рд▓ рдЫ, рддрдерд╛рдкрд┐, faust рдорд╛ рдПрдХ рд░рд╛рдореНрд░реЛ рд╕реБрд╡рд┐рдзрд╛рд▓реЗ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдЧрд░реНрджрдЫ - рд╢реАрд░реНрд╖рдХрдорд╛ рдкреНрд░рд╕рд╛рд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдЯрд╛рдЗрдк рдЧрд░рд┐рдПрдХреЛ рдбрд╛рдЯрд╛ред
рд╣рд╛рдореА рдХреЗ рдЧрд░реНрдЫреМ?
рддреНрдпрд╕реЛрднрдП, рд▓реЗрдЦрд╣рд░реВрдХреЛ рдЫреЛрдЯреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛рдорд╛, рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ рдлрд╕реНрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛рд░реНрдпрд╣рд░реВрдмрд╛рдЯ рдбрд╛рдЯрд╛ рдХрд╕рд░реА рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдиреЗ рднрдиреЗрд░ рджреЗрдЦрд╛рдЙрдиреЗрдЫреБред рд╣рд╛рдореНрд░реЛ рдЙрджрд╛рд╣рд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрд░реЛрдд рд╣реБрдиреЗрдЫ, рдирд╛рдорд▓реЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдиреНрдЫ, ред рдо рдПрдЬреЗрдиреНрдЯрд╣рд░реВ (рд╕рд┐рдВрдХ, рд╡рд┐рд╖рдпрд╣рд░реВ, рд╡рд┐рднрд╛рдЬрдирд╣рд░реВ), рдХрд╕рд░реА рдирд┐рдпрдорд┐рдд (рдХреНрд░реЛрди) рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреЗ, рд╕рдмреИрднрдиреНрджрд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдлрд╛рд╕реНрдЯ рдХреНрд▓рд╛рдЗ рдЖрджреЗрд╢рд╣рд░реВ (рдХреНрд▓рд┐рдХрдорд╛ рдПрдХ рд░реНрдпрд╛рдкрд░), рд╕рд░рд▓ рдХреНрд▓рд╕реНрдЯрд░рд┐рдЩ, рд░ рдЕрдиреНрддреНрдпрдорд╛ рд╣рд╛рдореА рдПрдХ рдбрд╛рдЯрд╛рдбрдЧ рд╕рдВрд▓рдЧреНрди рдЧрд░реНрдиреЗрдЫреМрдВред рдмрдХреНрд╕ рдмрд╛рд╣рд┐рд░ рдХрд╛рдо рдЧрд░реНрджреИ) рд░ рдХреЗрд╣рд┐ рд╣реЗрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рд╕рдЩреНрдХрд▓рди рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рд╣рд╛рдореА рдЬрдбрд╛рдирдХреЛ рд▓рд╛рдЧрд┐ mongodb рд░ рдореЛрдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВред
PS рдЕрдиреБрдЧрдордирдХреЛ рдмрд╛рд░реЗрдорд╛ рдмрд┐рдиреНрджреБ рд▓реЗрдЦрд┐рдПрдХреЛ рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕рдХреЛ рдЖрдзрд╛рд░рдорд╛, рдорд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ рдХрд┐ рдЕрдиреНрддрд┐рдо рд▓реЗрдЦрдХреЛ рдЕрдиреНрддреНрдпрдорд╛ рдкрд╛рдардХ рдЕрдЭреИ рдкрдирд┐ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ
рдореИрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рд╡рд╛рдЪрд╛ рдЧрд░реЗрдХреЛ рддрдереНрдпрдХреЛ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛, рд╕реЗрд╡рд╛рд▓реЗ рдХреЗ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреБрдкрд░реНрдЫ рднрдиреНрдиреЗ рдПрдЙрдЯрд╛ рд╕рд╛рдиреЛ рд╕реВрдЪреА рдмрдирд╛рдЙрдиреБрд╣реЛрд╕реН:
- рдзрд┐рддреЛрдкрддреНрд░рд╣рд░реВ рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдПрдХ рд╕рд┐рдВрд╣рд╛рд╡рд▓реЛрдХрди рдЕрдкрд▓реЛрдб рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдирд╛рдлрд╛ рд░ рдШрд╛рдЯрд╛, рдмреНрдпрд╛рд▓реЗрдиреНрд╕ рдкрд╛рдирд╛, рдирдЧрдж рдкреНрд░рд╡рд╛рд╣ - рдкрдЫрд┐рд▓реНрд▓реЛ рд╡рд░реНрд╖рдХреЛ рд▓рд╛рдЧрд┐) - рдирд┐рдпрдорд┐рдд рд░реВрдкрдорд╛
- рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдбреЗрдЯрд╛ рдЕрдкрд▓реЛрдб рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрд╛рдкрд╛рд░рд┐рдХ рд╡рд░реНрд╖рдХреЛ рд▓рд╛рдЧрд┐, рд╡реНрдпрд╛рдкрд╛рд░рдХреЛ рдмрдиреНрдж рдореВрд▓реНрдпрдХреЛ рдЪрд░рдо рдорд╛рдирд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреБрд╣реЛрд╕реН) - рдирд┐рдпрдорд┐рдд рд░реВрдкрдорд╛
- рдирд╡реАрдирддрдо рд╡реНрдпрд╛рдкрд╛рд░ рдбреЗрдЯрд╛ рдЕрдкрд▓реЛрдб рдЧрд░реНрдиреБрд╣реЛрд╕реН - рдирд┐рдпрдорд┐рдд рд░реВрдкрдорд╛
- рдкреНрд░рддреНрдпреЗрдХ рд╕реБрд░рдХреНрд╖рд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╕реВрдЪрдХрд╣рд░реВрдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рд╕реВрдЪреА рдЕрдкрд▓реЛрдб рдЧрд░реНрдиреБрд╣реЛрд╕реН - рдирд┐рдпрдорд┐рдд рд░реВрдкрдорд╛
рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдкрдорд╛, рд╣рд╛рдореА рд╕реНрдХреНрд░реНрдпрд╛рдЪрдмрд╛рдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рдирд╛рдо рдЫрдиреМрдЯ рдЧрд░реНрдЫреМрдВ: рд╣реЛрд░реНрдЯрди
рдкреВрд░реНрд╡рд╛рдзрд╛рд░рдХреЛ рддрдпрд╛рд░реА рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВ
рд╢реАрд░реНрд╖рдХ рдкрдХреНрдХреИ рдкрдирд┐ рдмрд▓рд┐рдпреЛ рдЫ, рддрдерд╛рдкрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдбрдХрд░-рдХрдореНрдкреЛрдЬрдХреЛ рд▓рд╛рдЧрд┐ рдХрд╛рдлреНрдХрд╛ (рд░ zookeeper - рдПрдЙрдЯрд╛ рдХрдиреНрдЯреЗрдирд░рдорд╛), kafdrop (рдпрджрд┐ рд╣рд╛рдореА рд╡рд┐рд╖рдпрд╣рд░реВрдорд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рд╣реЗрд░реНрди рдЪрд╛рд╣рдиреНрдЫреМрдВ), mongodb рд▓реЗрдЦреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдЙрдЯрд╛ рд╕рд╛рдиреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд▓реЗрдЦреНрдиреБ рдкрд░реНрдЫред рд╣рд╛рдореАрд▓реЗ рдкрд╛рдпреМ [docker-compose.yml]() рдирд┐рдореНрди рдлрд╛рд░рдо рдХреЛ:
version: '3'
services:
db:
container_name: horton-mongodb-local
image: mongo:4.2-bionic
command: mongod --port 20017
restart: always
ports:
- 20017:20017
environment:
- MONGO_INITDB_DATABASE=horton
- MONGO_INITDB_ROOT_USERNAME=admin
- MONGO_INITDB_ROOT_PASSWORD=admin_password
kafka-service:
container_name: horton-kafka-local
image: obsidiandynamics/kafka
restart: always
ports:
- "2181:2181"
- "9092:9092"
environment:
KAFKA_LISTENERS: "INTERNAL://:29092,EXTERNAL://:9092"
KAFKA_ADVERTISED_LISTENERS: "INTERNAL://kafka-service:29092,EXTERNAL://localhost:9092"
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT"
KAFKA_INTER_BROKER_LISTENER_NAME: "INTERNAL"
KAFKA_ZOOKEEPER_SESSION_TIMEOUT: "6000"
KAFKA_RESTART_ATTEMPTS: "10"
KAFKA_RESTART_DELAY: "5"
ZOOKEEPER_AUTOPURGE_PURGE_INTERVAL: "0"
kafdrop:
container_name: horton-kafdrop-local
image: 'obsidiandynamics/kafdrop:latest'
restart: always
ports:
- '9000:9000'
environment:
KAFKA_BROKERCONNECT: kafka-service:29092
depends_on:
- kafka-serviceрдпрд╣рд╛рдБ рдХреЗрд╣рд┐ рдкрдирд┐ рдЬрдЯрд┐рд▓ рдЫреИрдиред рдХрд╛рдлреНрдХрд╛рдХрд╛ рд▓рд╛рдЧрд┐ рджреБрдИ рд╢реНрд░реЛрддрд╛рд╣рд░реВ рдШреЛрд╖рдгрд╛ рдЧрд░рд┐рдпреЛ: рдПрдЙрдЯрд╛ (рдЖрдиреНрддрд░рд┐рдХ) рдХрдореНрдкреЛрдЬрд┐рдЯ рдиреЗрдЯрд╡рд░реНрдХ рднрд┐рддреНрд░ рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐, рд░ рджреЛрд╕реНрд░реЛ (рдмрд╛рд╣реНрдп) рдмрд╛рд╣рд┐рд░рдмрд╛рдЯ рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рддреНрдпрд╕реИрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдпрд╕рд▓рд╛рдИ рдмрд╛рд╣рд┐рд░ рдлрд░реНрд╡рд╛рд░реНрдб рдЧрд░реЗред 2181 - рдЪрд┐рдбрд┐рдпрд╛рдЦрд╛рдирд╛ рдкреЛрд░реНрдЯред рдмрд╛рдБрдХреА, рдорд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ, рд╕реНрдкрд╖реНрдЯ рдЫред
рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рдХрдВрдХрд╛рд▓ рддрдпрд╛рд░ рдЧрд░реНрджреИ
рдЖрдзрд╛рд░рднреВрдд рд╕рдВрд╕реНрдХрд░рдгрдорд╛, рд╣рд╛рдореНрд░реЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдВрд░рдЪрдирд╛ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреБ рдкрд░реНрдЫ:
horton
тФЬтФАтФА docker-compose.yml
тФФтФАтФА horton
тФЬтФАтФА agents.py *
тФЬтФАтФА alphavantage.py *
тФЬтФАтФА app.py *
тФЬтФАтФА config.py
тФЬтФАтФА database
тФВ тФЬтФАтФА connect.py
тФВ тФЬтФАтФА cruds
тФВ тФВ тФЬтФАтФА base.py
тФВ тФВ тФЬтФАтФА __init__.py
тФВ тФВ тФФтФАтФА security.py *
тФВ тФФтФАтФА __init__.py
тФЬтФАтФА __init__.py
тФЬтФАтФА records.py *
тФФтФАтФА tasks.py **рдореИрд▓реЗ рдиреЛрдЯ рдЧрд░реЗрдХреЛ рд╕рдмреИ рдХреБрд░рд╛ рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдЕрдЭреИ рдЫреБрджреИрдиреМрдВ, рд╣рд╛рдореА рдЦрд╛рд▓реА рдлрд╛рдЗрд▓рд╣рд░реВ рдорд╛рддреНрд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдЫреМрдВред**
рд╣рд╛рдореАрд▓реЗ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдпреМрдВред рдЕрдм рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рдердкреМрдВ, рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реН рд░ mongodb рдорд╛ рдЬрдбрд╛рди рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдо рд▓реЗрдЦрдорд╛ рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рдкреВрд░реНрдг рдкрд╛рда рдЙрдкрд▓рдмреНрдз рдЧрд░рд╛рдЙрдиреЗ рдЫреИрди, рддрд╛рдХрд┐ рдпрд╕рд▓рд╛рдИ рдврд┐рд▓реЛ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН, рддрд░ рдо рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдорд╛ рд▓рд┐рдЩреНрдХрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрдиреЗрдЫреБред
рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рдирд┐рд░реНрднрд░рддрд╛ рд░ рдореЗрдЯрд╛рдХреЛ рд╕рд╛рде рд╕реБрд░реБ рдЧрд░реМрдВ -
рдЕрд░реНрдХреЛ, рд╣рд╛рдореА рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд░ virtualenv рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕реБрд░реБ рдЧрд░реНрдЫреМрдВ (рд╡рд╛ рддрдкрд╛рдИрдВрд▓реЗ venv рдлреЛрд▓реНрдбрд░ рдЖрдлреИрдВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рд╡рд╛рддрд╛рд╡рд░рдг рд╕рдХреНрд░рд┐рдп рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ):
pip3 install poetry (╨╡╤Б╨╗╨╕ ╨╡╤Й╤С ╨╜╨╡ ╤Г╤Б╤В╨░╨╜╨╛╨▓╨╗╨╡╨╜╨╛)
poetry installрдЕрдм рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВ - рдкреНрд░рдорд╛рдгрд╣рд░реВ рд░ рдХрд╣рд╛рдБ рдврдХрдврдХ рдЧрд░реНрдиред рддрдкрд╛рдИрдВ рддреБрд░реБрдиреНрддреИ рддреНрдпрд╣рд╛рдБ alphavantage рдХреЛ рд▓рд╛рдЧрд┐ рдбрд╛рдЯрд╛ рд░рд╛рдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдЦреИрд░, рдЕрдЧрд╛рдбрд┐ рдмрдвреМрдВ - рд╣рд╛рдореНрд░реЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдмрд╛рдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рдбрд╛рдЯрд╛ рдирд┐рдХрд╛рд▓реНрдиреБрд╣реЛрд╕реНред рд╣реЛ, рдо рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдЫреБ, рдореИрд▓реЗ рдореЗрд░реЛ рд▓рд┐рдм рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрдХреЛ рдЫреБ - .
Mongo рдЬрдбрд╛рди рдЧрд░реНрджрд╛, рд╕рдмреИ рдХреБрд░рд╛ рдПрдХрджрдо рд╕рд░рд▓ рдЫред рдШреЛрд╖рдгрд╛ рдЧрд░реЗ рдЬрдбрд╛рди рдЧрд░реНрди рд░ cruds рдХреЛ рд▓рд╛рдЧрд┐, рд╕рдВрдЧреНрд░рд╣ рдорд╛ рдкреНрд░рд╢реНрдирд╣рд░реВ рдмрдирд╛рдЙрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдиред
рдЕрдм рдХреЗ рд╣реБрдиреЗ рд╣реЛ ?
рд▓реЗрдЦ рдзреЗрд░реИ рд▓рд╛рдореЛ рдЫреИрди, рдХрд┐рдирдХрд┐ рдпрд╣рд╛рдБ рдо рдХреЗрд╡рд▓ рдкреНрд░реЗрд░рдгрд╛ рд░ рддрдпрд╛рд░реАрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрджреИрдЫреБ, рддреНрдпрд╕реИрд▓реЗ рдорд▓рд╛рдИ рджреЛрд╖ рдирджрд┐рдиреБрд╣реЛрд╕реН - рдо рд╡рдЪрди рджрд┐рдиреНрдЫреБ рдХрд┐ рдЕрд░реНрдХреЛ рднрд╛рдЧрдорд╛ рдХрд╛рд░реНрдп рд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╣реБрдиреЗрдЫред
рддреНрдпрд╕реЛрднрдП, рдпреЛ рдЕрд░реНрдХреЛ рднрд╛рдЧрдорд╛ рд╣рд╛рдореА:
- рд╣рд╛рдореАрд▓рд╛рдИ рдЪрд╛рд╣рд┐рдиреЗ рдЕрдиреНрддрд┐рдо рдмрд┐рдиреНрджреБрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ рд╕рд╛рде aiohttp рдорд╛ alphavantage рдХреЛ рд▓рд╛рдЧрд┐ рдПрдЙрдЯрд╛ рд╕рд╛рдиреЛ рдЧреНрд░рд╛рд╣рдХ рд▓реЗрдЦреМрдВред
- рддрд┐рдиреАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдзрд┐рддреЛ рд░ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдореВрд▓реНрдпрд╣рд░реВрдорд╛ рдбреЗрдЯрд╛ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдиреЗ рдПрдЬреЗрдиреНрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВред
рд╕реНрд░реЛрдд: www.habr.com
