
Na faapefea ona ou ola faapena?
E leʻi leva talu ai sa tatau ona ou galue i le pito i tua o se galuega maualuga tele, lea e manaʻomia ai le faʻatulagaina o le faʻatinoina masani o le tele o galuega i tua atu ma faʻatusatusaga faigata ma talosaga mo auaunaga isi vaega. O le poloketi e le tutusa ma ae ou te leʻi sau, sa i ai se faiga faigofie mo galuega faʻapipiʻi: o se matasele e siaki ai le taimi nei ma faʻalauiloa vaega o coroutines e ala i le faʻapotopotoina - o lenei auala na faʻaalia e talia seʻia oʻo i le tele ma le selau o ia coroutines. , ae ui i lea, ina ua sili atu lo latou numera i le lua afe, sa tatau ona ou mafaufau e uiga i le faʻatulagaina o se faʻasologa masani o galuega ma se tagata fai pisinisi, tele tagata faigaluega, ma isi.
Muamua na ou filifili e faataitai le Seleri, lea na ou faaaogaina muamua. Ona o le asynchronous natura o le poloketi, na ou oso i le fesili ma vaai , ma , na faia e le tusitala o le tusiga.
O le a ou fai atu lenei mea, o le poloketi e sili ona manaia ma galue lelei i isi faʻaoga a la matou 'au, ma o le tusitala lava ia na fai mai na mafai ona ia faʻaaogaina i le gaosiga e ala i le faʻaaogaina o se vaitaele asynchronous. Ae, o le mea e leaga ai, e leʻi fetaui lelei ia te aʻu, e pei ona iʻu ai faʻatasi ai ma le faʻalauiloaina o galuega a vaega (vaʻai. ). I le taimi o le tusitusi ua uma ona tapuni, peitai, ua atoa le masina o fai galuega. I soo se tulaga, manuia le tusitala ma mea sili uma, talu ai o loʻo i ai mea faigaluega i luga o le lib ... i se tulaga lautele, o le manatu o loʻo i totonu ia te aʻu ma o le meafaigaluega na foliga mai e susu mo aʻu. E le gata i lea, o nisi o galuega e 2-3 http talosaga i auaunaga eseese, o lea e tusa lava pe sili atu galuega, matou te fatuina le 4 afe TCP fesoʻotaʻiga, e tusa ma le 2 itula - e le lelei tele ... Ou te manaʻo e faia se sauniga mo se tasi ituaiga o galuega pe a amata tagata faigaluega. O sina mea itiiti e uiga i le tele o talosaga e ala i aiohttp .
I lenei tulaga, na amata ona ou tilotilo isi auala ma maua ai! O tagata na faia seleni, aemaise lava, e pei ona ou malamalama i ai , na faia , muamua mo le poloketi . Faust e musuia e Kafka Streams ma galulue faatasi ma Kafka o se faioloa, o loʻo faʻaaogaina foi le rocksdb e teu ai taunuʻuga mai le galuega a sui, ma o le mea e sili ona taua o le faletusi e asynchronous.
E le gata i lea, e mafai ona e vaʻai seleni ma faust mai tagata na faia mea mulimuli: o latou eseesega, eseesega i le va o tagata fai pisinisi, faʻatinoga o se galuega tulagalua. E fai si faigofie mea uma, peitaʻi, o se mea manaia i faust e tosina mai ai faʻamatalaga - faʻapipiʻi faʻamaumauga mo le tuʻuina atu i le autu.
O le a le mea tatou te faia?
O lea la, i se faʻasologa puupuu o tala, o le a ou faʻaali atu ia te oe le auala e aoina ai faʻamatalaga mai galuega i tua e faʻaaoga ai Faust. O le puna mo la matou faʻataʻitaʻiga poloketi o le a, e pei ona taʻu mai e le igoa, . O le a ou faʻaalia pe faʻapefea ona tusi sui (gogo, autu, vaeluaga), pe faʻafefea ona fai masani (cron), faʻatonuga faust cli sili ona faigofie (se afifi i luga o le kiliki), faʻapipiʻi faigofie, ma i le faaiuga o le a matou faʻapipiʻi se datadog ( galue i fafo o le pusa) ma taumafai i se mea e va'ai. Ina ia teuina faʻamaumauga aoina o le a matou faʻaogaina le mongodb ma le afi mo le fesoʻotaʻiga.
P.S. I le faʻamasinoina o le talitonuga na tusia ai le parakalafa e uiga i le mataʻituina, ou te manatu o le tagata faitau i le faaiuga o le tusiga mulimuli o le a foliga mai e pei o lenei:

Poloketi mana'oga
Ona o le mea moni ua uma ona ou folafola atu, seʻi o tatou faia se lisi laʻititi o mea e tatau ona mafai e le auʻaunaga ona fai:
- Tu'u i luga fa'amalumaluga ma se va'aiga lautele o latou (e aofia ai tupe mama ma gau, pepa paleni, tinoitupe - mo le tausaga talu ai) - masani
- Tu'u mai fa'amaumauga fa'asolopito (mo tausaga fa'atau ta'itasi, su'e tau fa'agata o le tau fa'ai'uga o fefa'ataua'iga) - i taimi uma
- Tu'u mai fa'amatalaga fou tau fefa'ataua'iga - i taimi uma
- Tu'u mai se lisi fa'apitoa o fa'ailoga mo puipuiga ta'itasi - i taimi uma
E pei ona faʻamoemoeina, matou te filifilia se igoa mo le poloketi mai le amataga: pu'u
O loʻo matou saunia mea tetele
E mautinoa lava le malosi o le ulutala, peitaʻi, pau lava le mea e te manaʻomia e fai o le tusia lea o se laʻititi laʻititi mo le docker-compose ma le kafka (ma le zookeeper - i totonu o le pusa e tasi), kafdrop (afai tatou te fia vaʻai i feʻau i autu), mongodb. Matou te maua [docker-compose.yml]() o le fomu nei:
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-serviceE leai lava se mea faigata iinei. E lua tagata faŹ»alogo na faŹ»aalia mo le kafka: tasi (i totonu) mo le faŹ»aogaina i totonu o le fesoŹ»otaŹ»iga tuŹ»ufaŹ»atasia, ma le lona lua (fafo) mo talosaga mai fafo, o lea na latou tuŹ»uina atu i fafo. 2181 ā uafu leoleo manu. O isi, ou te manatu, e manino.
Saunia le auivi o le poloketi
I le faʻavae faʻavae, o le fausaga o la matou poloketi e tatau ona pei o lenei:
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 **O mea uma na ou matauina Matou te le'i pa'i i ai, na'o le faia o faila gaogao.**
Na matou faia se fausaga. Sei o tatou faʻaopopo mea faʻalagolago e manaʻomia, tusi le config ma faʻafesoʻotaʻi i mongodb. O le a ou le tuʻuina atu le tusiga atoa o faila i totonu o le tusiga, ina ia aua neʻi faʻatuai, ae o le a ou tuʻuina atu fesoʻotaʻiga i faʻamatalaga talafeagai.
Tatou amata i fa'alagolago ma meta e uiga i le poloketi -
Le isi, matou amata faʻapipiʻi faʻalagolago ma fatuina se virtualenv (pe mafai ona e fatuina le venv folder oe lava ma faʻagaoioia le siosiomaga):
pip3 install poetry (ŠµŃŠ»Šø еŃŃ Š½Šµ ŃŃŃŠ°Š½Š¾Š²Š»ŠµŠ½Š¾)
poetry installSe'i o tatou fatuina - Fa'ailoga ma le mea e tu'itu'i ai. E mafai ona e tu'u vave fa'amaumauga mo le alphavantage iina. Ia, tatou agai i luma - aveese faʻamatalaga mo le talosaga mai la matou config. Ioe, ou te taʻutaʻu atu, sa ou faʻaaogaina laʻu lib - .
A faʻafesoʻotaʻi i Mongo, e faigofie mea uma. fofogaina e fesootai ma mo cruds, e faafaigofie ai le faia o fesili i le aoina.
O le a le mea o le a sosoo ai?
O le tusiga e le umi tele, talu ai o loʻo ou talanoa e uiga i le faʻaosofia ma le sauniuni, o lea aua e te tuuaʻia aʻu - Ou te folafola atu o le isi vaega o le ai ai se gaioiga ma ata.
O lea la, i lenei vaega e sosoo ai tatou:
- Se'i o tatou tusi se tama'i tagata fa'atau mo le alphavantage i luga ole aiohttp ma talosaga mo fa'ai'uga tatou te mana'omia.
- Sei o tatou faia se sooupu o le a aoina faʻamatalaga i luga o faʻamaumauga ma tau faʻasolopito mo latou.
puna: www.habr.com
