futás zeller RabbitMQ

volt egy robbanás az érdeklődés elosztott feldolgozás.hosszabb futó feladatok sok különböző munkavállaló között. Üzenet közvetítőkpéldául a RabbitMQ biztosítja a csomópontok közötti kommunikációt. A Celeryclients, a munkavállalók és a kapcsolódó brókerek felhőben történő futtatása lehetővé teszi a csapat számára, hogy könnyedén kezelhesse és skálázhassa a háttérfolyamatokat, a munkahelyeket és az alapvető adminisztrációs feladatokat.

mi az a zeller?

Celeryegy elosztott feladatsor, amely leegyszerűsíti a feladatelosztás kezelését.A fejlesztők az adatkészleteket kisebb tételekre bontják, hogy a zellert feldolgozzák a munka néven ismert munka során.

egy vagy több dolgozói folyamatot telepít, amelyek egy üzenetsorhoz csatlakoznak (anAMQP vagy SQS alapú bróker). Az ügyfelek elküldik a munkahelyeket az üzenetközvetítőnek, ésa várólista meghallgatja a munkakéréseket a következővel: zeller. Az üzenetközvetítő ezután elosztja az álláskereséseket a munkavállalóknak.A dolgozók várják a zellerből származó munkákat, és végrehajtják a feladatokat.Ha elkészült, a dolgozó eredményt küld egy másik sorba az ügyfél számárafolyamatot.

a zellerben az ügyfelek és a munkavállalók nem közvetlenül kommunikálnak egymással, hanem üzenetsorokon keresztül.Az ügyfelek üzeneteket küldenek a rendszer feladatainak felhasználásával, miközben egy távoli procedurecall függvényt kezdeményez. A klienseknek nem kell érteniük a tényleges formátumot, hanem jegyzetekkel kell ellátniuk a függvényeket, és regisztrálniuk kell őket a keretrendszerrel:

@app.task def send_hello(x, y): return ‘Hello’ # overrides the broker from your configuration app = Celery('app_name', broker='...') app.tasks 

a hivatalos Python kötés segítségével létrehoztunk egy feladatot, és regisztráltuk a rendszerrel. Használhatja aapply_async(function, args, kwargs,...) módszerta feladat elküldése a megfelelő sorba. Az ügyfél felhívja agetaapply_asyncáltal visszaadott jövőt, hogy blokkolja és lekérje a választ, vagy az állapotmódszert használja a hívás kezdeményezéséhez a bróker számára, ellenőrizve a kérés állapotát.

a várólistára továbbított üzenet addig vár a várólistán,amíg valaki el nem fogyasztja, majd nyugtázás után az üzenet törlődik a várólistáról.

eredmények zeller

lehetőség van nyomon követni a feladatok állapotát. Zeller istárolja vagy küldje el az államokat. Tehát a get funkció használata helyett lehetségeshogy az eredményeket egy másik háttérprogramra tolja. Számos beépített resultbackends választani includingSQLAlchemy, specificdatabasesandRPC (RabbitMQ).

alapértelmezés szerint a zeller úgy van beállítva, hogy ne használja fel a feladat eredményeit. Beállítása theconfiguration optionresult_backend = 'rpc'utasítja a rendszert, hogy küldjön választ egy egyedi sorban fogyasztásra. Nem ajánlott az ampq háttérprogram használata. Ez memóriaszivárgást okozhat.

További információ az eredményekről itt található.

mi a csere a zellerben?

a zeller keresztül működiküzenet routerés aközlekedés-feliratkozás minták.A kiadók üzeneteket küldnek egy olyan tőzsdére, amely közvetlen vagy wildcard illesztést használ a routethem-hez egy vagy több munkasorhoz a brókerben. Az exchange típus meghatározza, hogyanaz üzenetek a csere útján kerülnek továbbításra.Az exchange típusokat a következő konfigurációban állíthatja be:

CELERY_QUEUES = { "my_queue”:{ "exchange”: "my_exchange”, "exchange_type”: "topic”, "binding_key”: "all_tasks.task_type” } } CELERY_DEFUALT_EXCHANGE=”my_exchange” CELERY_DEFAULT_EXCHANGE_TYPE=”direct” CELERY_DEFAULT_ROUTING_KEY=”all_tasks”

ebben a példában egy alapértelmezett várólistát deklarál az alapértelmezett exchange egyetlen ismert várólistájaként, de felülbírálja a témát az útválasztási keyall_tasks segítségével.task_type. A téma csere lehetővé teszi, hogy helyettesítő matchingígy a feladatok küldött all_tasks.* még mindig érkeznek. Ez a konfigurációelőfordulhat ugyanabban a modulban, ahol elindítja az alkalmazást.

cserék típusai

a standard cseretípusok a direct, topic, fanout és fejlécek. Thesedictate hogyan üzenetek át az előfizetőknek. Az útválasztási kulcsoknak pontosan meg kell egyezniükközvetlen csere. A Fanout cserék üzeneteket küldenek az összes csatolt sorba.A témák lehetővé teszik a helyettesítő karakterek illesztését. A fejléccserék csak metaadatokat adnak át.

további információtrabbitmq cserék és routing kulcsok

mikor kell használni zeller?

feladat-sorban álló rendszerként a zeller jól működik hosszú futó folyamatokkal vagykis, megismételhető feladatokkal, amelyek tételeken dolgoznak.A problémák típusai a zeller fogantyúk gyakori aszinkron feladatok. Imagescaling, videó kódolás, ETL, e-mail küldés, vagy más csővezetékek részesülnek ebből az előre elkészített keretből, amely az építésükkel kapcsolatos munka nagy részét kezeli.

milyen előnyei vannak a zeller használatának?

a zeller bármilyen nyelven működik a szabványosított üzenetprotokollon keresztül.A hivatalos Python kiadáson kívül más API-k is fejlesztés alatt állnak e.g.Java, RustandNode.Lehetőség van egy központosított rendszer létrehozására bármilyen nyelv használatával az anAMQP vagy az SQS API segítségével.

további előnyök közé tartozik a distributetaskshoz szükséges kód mennyiségének minimalizálása, valamint a feladatok rendszeres ütemezésének lehetősége acelerybeat segítségével.A Celerybeat egy ütemező, amely rendszeres időközönként elindítja a feladatokat.A zeller dolgozók önálló valós idejű megfigyelése is elérhetőcelerymon.

miért érdemes felhőalapú üzenetközvetítőt használni?

előre elkészített közvetítőként a zeller leegyszerűsíti a csővezetékek fejlesztését és kezelését.CloudAMQP kiküszöböli az adminisztratív igényeit a backend ready-madeclusters.

“A CloudAMQP – RabbitMQ-t brókerként használjuk aszinkron feladatainkhoz a zeller segítségével. Eseményalapú aszinkron szolgáltatásként használjuk. CloudAMQP supportsour projekt megfelelő monitoring és a magas rendelkezésre állás és scalablebroker várólisták.”Shivam Arora, Delhivery

többé nem kell aggódnia a rendszer méretezése miatt, hogy megfeleljen a növekvő igényeknek.Példányaink a már futó felügyeleti konzollal érkeznek.

beállítása RabbitMQ a CloudAMQP

CloudAMQP rendelkezések a RabbitMQ instancesnearly azonnal.Hozzon létre egy fiókot, és hozzon létre egy példányt közvetlenül a web managementinterface – ből. A beépített automatikus méretezés lehetővé teszi a brókerek gyors működését.CloudAMQP bázisok költsége teljes egészében a hatalom a mögöttes provisionedinstance, és képes skálázni fel és le a különböző tervek whenneded. Ingyenes szintünk, kis lemur, kiváló lehetőség a tesztelésre.

Hogyan használhatom a CloudAMQP-t zeller üzenetközvetítőként?

az üzembe helyezés után a CloudAMQP bróker ugyanúgy működik, mint a saját helyiségrendszere. Csak egy URL-re, felhasználónévre és jelszóra van szüksége a brókerrel való kapcsolat létrehozásához. Zeller kezeli a többit:

app = Celery('app_name', broker='amqps://user:password@host:port/host’)print(app.conf.broker_url)

a zeller keretrendszer tárolja az URL-t a konfigurációban. Mivel a zeller a brókertől külön fut, ugyanolyan fokú ellenőrzést kap, mintha a teljes rendszert a helyszínen futtatná.

futtathatom a Zellermunkásokat a felhőben?

míg a CloudAMQP üzenetközvetítőt biztosít, az AWS-en vagy más felhőszolgáltatáson is telepíthetőcelery workers. A munkavállalóknak csak tudniuk kellahol a bróker lakik, hogy a rendszer részévé váljon. Zeller fenntartja aqueue események és értesítések nélkül közös registry csomópont.

használata miatt egy bróker rendszer menedzsment, akkor futtassa a feladatokat inDocker konténerek overKubernetes.A konténerek automatikusan méretezik az Ön igényeinek megfelelően, míg a Kubernetes lehetővé teszi a méretezési Irányelvek meghatározását, a Flower pedig felügyeleti képességeket biztosít.A hivatalos zeller konténer itt található:https://hub.docker.com/_/celery.Celery is teljes mértékben támogatja onHeroku.

a zeller ügyfelek és dolgozók felhőben való futtatása minimalizálja a csővezetékek fejlesztésének és telepítésének költségeit.

miért támogatja a CloudAMQP a zeller projektet

sok ügyfelünk futtat olyan alkalmazásokat,amelyek megbíznak a zellerben, ezért aktívan és havonta támogatjuk a theCelery (AMQP) projekt fejlesztését. Kérjük, tudassa velünk, ha van valami a zellerben, amire szeretné, ha külön figyelmet fordítanánk.

a RabbitMQ fürt telepítésével kapcsolatos további információkért látogasson el a terv oldalunkra.Azt is javasoljuk, hogy olvassa el a CloudAMQP zellerre vonatkozó ajánlott beállításainkat a gyártási csővezeték megkezdése előtt, valamint értékelje a zeller keretét.

tetszik ez a cikk? Ne felejtsd el megosztani másokkal. enterprises

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.