Fa'amatalaga Galuega i Faust, Vaega I: Folasaga

Fa'amatalaga Galuega i Faust, Vaega I: Folasaga

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 tusiga, ma le poloketi, 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 le faafitauli faʻatasi ai ma le faʻalauiloaina o galuega a vaega (vaʻai. vasega). I le taimi o le tusitusi mataupu 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 iinei.

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 Fesili ia Solema, na faia Faust, muamua mo le poloketi faʻamalosi. 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 faatusatusaga vave 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, alphavantage.co. 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:

Fa'amatalaga Galuega i Faust, Vaega I: Folasaga

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:

  1. 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
  2. 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
  3. Tu'u mai fa'amatalaga fou tau fefa'ataua'iga - i taimi uma
  4. 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](https://github.com/Egnod/horton/blob/562fa5ec14df952cd74760acf76e141707d2ef58/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-service

E 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 - pyproject.toml

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 install

Se'i o tatou fatuina config.yml - 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 config.py - aveese faʻamatalaga mo le talosaga mai la matou config. Ioe, ou te taʻutaʻu atu, sa ou faʻaaogaina laʻu lib - sitri.

A faʻafesoʻotaʻi i Mongo, e faigofie mea uma. fofogaina vasega tagata o tausia e fesootai ma vasega faavae 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:

  1. 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.
  2. Sei o tatou faia se sooupu o le a aoina faʻamatalaga i luga o faʻamaumauga ma tau faʻasolopito mo latou.

Poloketi code

Code mo lenei vaega

puna: www.habr.com

Faaopoopo i ai se faamatalaga