beanstalkd queues in django

Post on 11-Jun-2015

671 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Description of concurrent worker processing with BeanstalkD message queue server used in conjuction with Django at Viidea

TRANSCRIPT

1

Distribuirano delo

Jernej Virag

Jernej Virag | @jernejv | http://www.virag.si

z Djangom

2

Problemi

Strežniki so počasniHudo počasni. Res. Zelo.

Distribuirano delo z Djangom

3

Problemi

Več strežnikovVeč strežnikov za različna heterogena opravila

Distribuirano delo z Djangom

4

Rešitev

MQ strežnikiDrugi jeziki in infrastrukture to poznajo že lep čas

Distribuirano delo z Djangom

5

Rešitev

MQ strežnikiDrugi jeziki in infrastrukture to poznajo že lep čas

Distribuirano delo z Djangom

6

Rešitev

Distribuirano delo z Djangom

Task Task Task

Status

Status

Status

Django

Workers

MQ strežnik

Workers

Workers

7

Problem

Python + MQ

Distribuirano delo z Djangom

8

BeanstalkD

Distribuirano delo z Djangom

• Prioritete• Binarna shramba• Preprost tekstovni protokol• Ni odvisnosti• Hiter

• Hroščat

9

BeanstalkD

Tekstovna sporočilaPreprosto pošiljanje in sprejemanje – JSON, YAML itd.

Distribuirano delo z Djangom

10

BeanstalkD

„Cevi“ – posamezne vrsteZelo light-weight, možno delanje z večimi hkrati

Distribuirano delo z Djangom

11

BeanstalkD

beanstalkc za knjižnicoJe „ok“.

Distribuirano delo z Djangom

12

BeanstalkD - task

Distribuirano delo z Djangom

PUT čaka RESERVE procesira DELETE

13

BeanstalkD - task

Distribuirano delo z Djangom

14

BeanstalkD - task

Distribuirano delo z Djangom

15

BeanstalkD - task

Distribuirano delo z Djangom

DELAYED

READYRESERVE

D

BURIED

PUT-DELAY

PUT RESERVE

RELEASE

KICK

BURY

DELETE

16

BeanstalkD - tubes

Distribuirano delo z Djangom

• .tubes()

• .use(tube) / .using()

• .watch(tube) / .watching()• .ignore(tube)

17

BeanstalkD

Kontrola napakNastavljanje TTR, avtomatsko vračanje v vrsto, …

Distribuirano delo z Djangom

18

Pozor

Stabilnost beanstalkdBeanstalkc zganja paniko če beanstalkd zgine

Distribuirano delo z Djangom

19

Pozor

Privzet je in-memory storeZa trajno shranjevanje sporočil je treba podati -b

Distribuirano delo z Djangom

20

Pozor

Ciklanje pri napakahPrestrezite vse exceptione drugače se zgodijo GrdeStvari™

Distribuirano delo z Djangom

21

Pozor

VarnostNi avtentikacije, enkripcije in ostalih mehanizmov

Distribuirano delo z Djangom

22

Pozor

Hrošči

https://github.com/kr/beanstalkdhttps://github.com/earl/beanstalkc

Distribuirano delo z Djangom

23

?Jernej Virag

@jernejvhttp://www.virag.si

Distribuirano delo z Djangom

top related