21

Highload осень 2012 лекция 10

Embed Size (px)

Citation preview

Page 1: Highload осень 2012 лекция 10
Page 2: Highload осень 2012 лекция 10
Page 3: Highload осень 2012 лекция 10

rb1.i

lf*f*.i

f*.i

thttpd-rb rb2.i

r.mail.ru

apache + mpop + RBclient.pm

rbstatd

mysqlUDP/rbstat

rbmap

lf*f*.i

apache + mod_rb

lf**.mail.ru

apache + mod_rb

win.mail.ru

www.mail.ru

*.mail.ru

rbimport.plrbserver.pl

lightserver.plrbcount.pl

rbnewday.plrbdatad

baserb.i

Page 4: Highload осень 2012 лекция 10

apache mod_includehtml

UDP/rbstat

rbmap

<!-- #include virtual=“/rb/913” -->mod_rb

libtmpl.so

librbclnt.so

rbclntdTCP/rbdata

.shtml

httpd.conf:

LoadModule rb_module libexec/mod_rb.so

<Location /rb>

SetHandler rb

</Location>

Page 5: Highload осень 2012 лекция 10

apachehtml

UDP/rbstat

rbmap

httpd.conf:

LoadModule rb_module libexec/mod_rb.so

<Location /cgi-bin/splash>

SetHandler tmpl

</Location>

mod_rb

libtmpl.so

librbclnt.so

rbclntdTCP/rbdata

Page 6: Highload осень 2012 лекция 10

apache mod_perlhtml

UDP/rbstat

rbmap

##Reklama/ShowBanner(913)##

RBclient.pm

libtmpl.so

librbclnt.so

rbclntdTCP/rbdata

MTemplate.pm libtmpl.so

.tmpl

Page 7: Highload осень 2012 лекция 10

use RBclient;

$rb = new RBclient;

$html = $rb->Get(913, 0 , {});

$region = $rb->Region(„127.0.0.1‟);

Page 8: Highload осень 2012 лекция 10

thttpd-rbhtml, js, gif, swf …

UDP/rbstat

rbmap

libtmpl.so

librbclnt.so

rbclntdTCP/rbdata

GET /b1234567.gif — картинки

GET /n12345678 — ссылки

GET /cgi-bin/banners/get/913 — html-банер

GET /cgi-bin/banners/js/913 — JS-баннер

Page 9: Highload осень 2012 лекция 10
Page 10: Highload осень 2012 лекция 10
Page 11: Highload осень 2012 лекция 10
Page 12: Highload осень 2012 лекция 10

rb1.i

lf*f*.i

f*.i

thttpd-rb rb2.i

r.mail.ru

apache + mpop + RBclient.pm

rbstatd

mysqlUDP/rbstat

rbmap

lf*f*.i

apache + mod_rb

lf**.mail.ru

apache + mod_rb

win.mail.ru

www.mail.ru

*.mail.ru

rbimport.plrbserver.pl

lightserver.plrbcount.pl

rbnewday.plrbdatad

baserb.i

50 фронтендов

8 Мб rbmap

Page 13: Highload осень 2012 лекция 10

rb2.i

rbstat*.irbstat*.i

lf*rf*.i

f*.i

nginx-rbrb8.i

r.mail.ru

imagineapache + RBclient.pm

rbstatd

mysql

UDP/rbstat

rbmap

lf*lf*.i

imagine

lf**.mail.ru

nginx-rb

win.mail.ru

www.mail.ru

*.mail.ru

rbimport.plrbserver.pl

lightserver.pl

baserb.i

rbdata*.i

rbdatad

rbstat*.irbcalc*.i

rbuniqd

500 фронтендов

70 Мб rbmap

Page 14: Highload осень 2012 лекция 10

rb2.i

rbstat*.irbstat*.i

lf*rf*.i

f*.i

nginx-rbrb8.i

r.mail.ru

imagineapache + RBclient.pm

mysql

UDP/rbstat

lf*lf*.i

imagine

lf**.mail.ru

nginx-rb

e.mail.ru

mail.ru

*.mail.ru

rbimport.pyrbserver*.pllightserver.pl

base1.i

rbdata*.i

rbdatad

rbstat*.irbcalc*.irbuniqd

2500 фронтендов

120 Мб rbmap

TCP/rbdata

mysql

base2.i

rbstat*.irbbl*.irbrcvd

UDP

rsyncrbmem*.i

rbstatd

Page 15: Highload осень 2012 лекция 10

lf*srf*.i

nginx-rblua-module

top.mail.ru

r3.mail.ru/k

mysql

UDPbase1.i rbstat*.irbstat.i

Expires: 2h

rbtop.i

rbmem*.i

rbstatd

tarantool

batch

Page 16: Highload осень 2012 лекция 10

rbstat*.i

lf*rf*.i

nginx-rb + lua

trgstat

HTTP

libslave mysqlreplication

mysql

rbstat*.ibannerd*.i

bannerd

iproto

rbstat*.i

trgbase.imysqlreplication

tarantooliproto

UDP

UDP

Page 17: Highload осень 2012 лекция 10

60 фронтендов под HTTP/HTTPS, 15 % загрузка CPU, отдача 7 Гбит/с

Page 18: Highload осень 2012 лекция 10
Page 19: Highload осень 2012 лекция 10
Page 20: Highload осень 2012 лекция 10
Page 21: Highload осень 2012 лекция 10