15 рдорд┐рдирдЯ рдореЗрдВ рд▓реЛрдЪрджрд╛рд░ рдирд┐рд░рд░реНрдердХ S3- рд╕рдВрдЧрдд рднрдВрдбрд╛рд░рдг

S3 рдЖрдЬ рд╢рд╛рдпрдж рдХрд┐рд╕реА рдХреЛ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдпрд╣ рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмреИрдХрдПрдВрдб рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рдореАрдбрд┐рдпрд╛ рдЙрджреНрдпреЛрдЧ рдореЗрдВ рдлрд╛рдЗрд▓ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рдмреИрдХрдЕрдк рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд░реВрдк рдореЗрдВ рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рд╕реЗрдлрд╝ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреЛрд░реЗрдЬ рдкрд░ рдЖрдзрд╛рд░рд┐рдд S3- рд╕рдВрдЧрдд рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рддреИрдирд╛рддреА рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ

рддреНрд╡рд░рд┐рдд рд╕рдВрджрд░реНрдн

рд╕реЗрдлрд╝ рд▓рдЪреАрд▓реА, рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реНрдХреЗрд▓реЗрдмрд▓ рдкреЗрдЯрд╛рдмрд╛рдЗрдЯ рднрдВрдбрд╛рд░рдг рдХрд╛ рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╡рд┐рдХрд╛рд╕ рд╣реИред рдЖрдзрд╛рд░ рд╡рд╕реНрддреБ рднрдВрдбрд╛рд░рдг рдореЗрдВ рдХрдИ рджрд░реНрдЬрди рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдХрд╛ рд╕рдВрдШ рд╣реИ, рдЬреЛ рд▓рдЪреАрд▓реЗ рдПрдХрд╛рдзрд┐рдХ рдЫрджреНрдо рдЖрдпрд╛рдореА рдбреЗрдЯрд╛ рдкреБрдирд░реНрд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╕рд┐рдл рдбреЗрд╡рд▓рдкрд░реНрд╕ рддреАрди рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреЛрд░ рдХреЛ рдкреВрд░рдХ рдХрд░рддреЗ рд╣реИрдВ:


рдЙрджрд╛рд╣рд░рдг рд╡рд░реНрдгрди

рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ 3 SATA рдбрд┐рд╕реНрдХ рдХреЗ рд╕рд╛рде 3 рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реВрдВ: /dev/sda рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ /dev/sdb рдФрд░ /dev/sdc рд╡рд╕реНрддреБ рднрдВрдбрд╛рд░рдг рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдПред рдПрд╕ 3 рд╕рдВрдЧрдд рднрдВрдбрд╛рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрдХреНрд░рдо, рдореЙрдбреНрдпреВрд▓, рдФрд░ рд░реВрдкрд░реЗрдЦрд╛ рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ DragonDisk , CrossFTP рдФрд░ S3Browser рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИред
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рднреА, рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ RADOS рдЧреЗрдЯрд╡реЗ рдиреЛрдб 01 рдиреЛрдб рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред S3 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ s3.ceph.labspace.studiogrizzly.com s3.ceph.labspace.studiogrizzly.com
рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдлрд┐рд▓рд╣рд╛рд▓ рд╕рд┐рдл рдРрд╕реЗ S3 рдСрдкрд░реЗрд╢рдВрд╕ http://ceph.com/docs/master/radosgw/3/3 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ


рдЪрд░рдг 0. рддреИрдпрд╛рд░реА рд╕реЗрдл

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреИрдирд╛рдд рд╕рд┐рдл рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрд╛ рд╣реИ, рдореБрдЭреЗ рдХреЗрд╡рд▓ /etc/ceph/ceph.conf рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА /etc/ceph/ceph.conf рд╣реИ - RADOS рдЧреЗрдЯрд╡реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдЬреЛрдбрд╝реЗрдВ

 [client.radosgw.gateway] host = node01 keyring = /etc/ceph/keyring.radosgw.gateway rgw socket path = /tmp/radosgw.sock log file = /var/log/ceph/radosgw.log rgw dns name = s3.ceph.labspace.studiogrizzly.com rgw print continue = false 

рдФрд░ рдЗрд╕реЗ рдЕрдиреНрдп рдиреЛрдбреНрд╕ рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

 scp /etc/ceph/ceph.conf node02:/etc/ceph/ceph.conf scp /etc/ceph/ceph.conf node03:/etc/ceph/ceph.conf 

рдЪрд░рдг 1. Apache2, FastCGI рдФрд░ RADOS рдЧреЗрдЯрд╡реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

 aptitude install apache2 libapache2-mod-fastcgi radosgw 

рдЪрд░рдг 2. рдЕрдкрд╛рдЪреЗ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛

рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ

 a2enmod rewrite a2enmod fastcgi 

RADOS рдЧреЗрдЯрд╡реЗ /etc/apache2/sites-available/rgw.conf рд▓рд┐рдП VirtualHost рдмрдирд╛рдПрдВ

 FastCgiExternalServer /var/www/s3gw.fcgi -socket /tmp/radosgw.sock <VirtualHost *:80> ServerName s3.ceph.labspace.studiogrizzly.com ServerAdmin tweet@studiogrizzly.com DocumentRoot /var/www RewriteEngine On RewriteRule ^/([a-zA-Z0-9-_.]*)([/]?.*) /s3gw.fcgi?page=$1┬╢ms=$2&%{QUERY_STRING} [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] <IfModule mod_fastcgi.c> <Directory /var/www> Options +ExecCGI AllowOverride All SetHandler fastcgi-script Order allow,deny Allow from all AuthBasicAuthoritative Off </Directory> </IfModule> AllowEncodedSlashes On ErrorLog /var/log/apache2/error.log CustomLog /var/log/apache2/access.log combined ServerSignature Off </VirtualHost> 

рдмрдирд╛рдП рдЧрдП VirtualHost рдХреЛ рдЪрд╛рд▓реВ рдХрд░реЗрдВ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ рдмрдВрдж рдХрд░реЗрдВ

 a2ensite rgw.conf a2dissite default 

рд╣рдо FastCGI рд╕реНрдХреНрд░рд┐рдкреНрдЯ /var/www/s3gw.fcgi рдмрдирд╛рддреЗ рд╣реИрдВ:

 #!/bin/sh exec /usr/bin/radosgw -c /etc/ceph/ceph.conf -n client.radosgw.gateway 

рдФрд░ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрдирд╛рдПрдВ

 chmod +x /var/www/s3gw.fcgi 

рдЪрд░рдг 3. RADOS рдЧреЗрдЯрд╡реЗ рддреИрдпрд╛рд░ рдХрд░рдирд╛

рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВ

 mkdir -p /var/lib/ceph/radosgw/ceph-radosgw.gateway 

рдирдИ RADOS рдЧреЗрдЯрд╡реЗ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреБрдВрдЬреА рдмрдирд╛рдПрдВ

 ceph-authtool --create-keyring /etc/ceph/keyring.radosgw.gateway chmod +r /etc/ceph/keyring.radosgw.gateway ceph-authtool /etc/ceph/keyring.radosgw.gateway -n client.radosgw.gateway --gen-key ceph-authtool -n client.radosgw.gateway --cap osd 'allow rwx' --cap mon 'allow r' /etc/ceph/keyring.radosgw.gateway 

рдФрд░ рдЗрд╕реЗ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ

 ceph -k /etc/ceph/ceph.keyring auth add client.radosgw.gateway -i /etc/ceph/keyring.radosgw.gateway 

рдЪрд░рдг 4. рд▓реЙрдиреНрдЪ

Apache2 рдФрд░ RADOS рдЧреЗрдЯрд╡реЗ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ

 service apache2 restart /etc/init.d/radosgw restart 

рдЪрд░рдг 5. рдкрд╣рд▓рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдПрдВ

S3 рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП access_key рдФрд░ secret_key рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

 radosgw-admin user create --uid=i --display-name="Igor" --email=tweet@studiogrizzly.com 

рдХрдорд╛рдВрдб рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦреЗрдВ рдФрд░ рдЕрдкрдиреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рдЪрд╛рдмрд┐рдпреЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ

рдЪрд░рдг 6. рдбреАрдПрдирдПрд╕

рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рд▓реНрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЙрд╕ рд╣реЛрд╕реНрдЯ рд╕рд░реНрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрдм s3.ceph.labspace.studiogrizzly.com рдХрд┐рд╕реА рднреА рдЙрдкрдбреЛрдореЗрди рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░рддреЗ рд╕рдордп рд╣реЛрд╕реНрдЯ рдХреЗ рдЖрдИрдкреА рдкрддреЗ s3.ceph.labspace.studiogrizzly.com рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ RADOS рдЧреЗрдЯрд╡реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, mybackups рдирд╛рдордХ рдПрдХ рдмрд╛рд▓реНрдЯреА mybackups , рдбреЛрдореЗрди mybackups.s3.ceph.labspace.studiogrizzly.com. рдиреЛрдб 01 рдХреЗ рдЖрдИрдкреА рдкрддреЗ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдХрд┐ 192.168.2.31 рд╣реИред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдЕрднреА рдПрдХ CNAME рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ

 * IN CNAME node01.ceph.labspace.studiogrizzly.com. 

рдЕрдВрддрднрд╛рд╖рдг

15 рдорд┐рдирдЯ рдореЗрдВ рд╣рдо S3- рд╕рдВрдЧрдд рднрдВрдбрд╛рд░рдг рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред рдЕрдм рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ S3 рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред



рдмреЛрдирд╕ рд╣рд┐рд╕реНрд╕рд╛


рдореИрдВрдиреЗ 2GIS рдкрд░ рдЙрддреНрдкрд╛рджрди рдореЗрдВ RADOS рдЧреЗрдЯрд╡реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ sn00p рд╕реЗ рдкреВрдЫрд╛ред рдиреАрдЪреЗ рдЙрдирдХреА рд╕рдореАрдХреНрд╖рд╛ рд╣реИ:

рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╡рд░рдг

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд╛рд░реНрдирд┐рд╢ рд╣реИ, рд░реЗрдбрд┐рдпреЛ рдлрд╛рдЯрдХреЛрдВ рдХреЗ 4 рдПрдкрд╛рдЪреЗ рдмреИрдХрдПрдВрдб рджреНрд╡рд╛рд░рд╛ рдЙрдард╛рдП рдЧрдП рд╣реИрдВред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд╣рд▓реЗ рд╡рд╛рд░реНрдирд┐рд╢ рдореЗрдВ рдЪрдврд╝рддрд╛ рд╣реИ, рдЕрдЧрд░ рдХреЛрдИ рдмрдорд░ рд╣реИ, рддреЛ рд░рд╛рдЙрдВрдбреНрд░реЛрдмрд┐рди рд╕реАрдзреЗ рдЕрдкрд╛рдЪреЗ рдореЗрдВ рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдмрд╛рдд рдПрдХ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕реЗрд╕ рд▓реЙрдЧ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдЬреЗрдореАрдЯрд░ рдкрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ 20,000 рдЖрд░рдкреАрдПрд╕ рджрдмрд╛рддреА рд╣реИред рдбреЗрдврд╝ рд▓рд╛рдЦ рддрд╕реНрд╡реАрд░реЛрдВ рдХреЗ рдЕрдВрджрд░, рджреГрд╢реНрдпрдкрдЯрд▓ рдкрд░ рдХрд╛рд░реНрдпрднрд╛рд░ рд▓рдЧрднрдЧ 300 рдЖрд░рдкреАрдПрд╕ рд╣реИред



5 рдорд╢реАрдиреЛрдВ рдкрд░ рдЕрдм рддрдХ рд╕реЗрдл, рдУрд╕реНрдж рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдбрд┐рд╕реНрдХ рдФрд░ рдкрддреНрд░рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдПрд╕рдбреАрдПрд╕ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рддрд┐рдХреГрддрд┐, ^ 2ред рдкреНрд░рдгрд╛рд▓реА рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рджреЛ рдиреЛрдбреНрд╕ рдХреЗ рдЧрд┐рд░рдиреЗ рд╕реЗ рдмрдЪ рдЬрд╛рддреА рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╡рд┐рд╡рд┐рдзрддрд╛рдУрдВ рдХреЗ рд╕рд╛рдеред рдЫрд╣ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЕрднреА рддрдХ рдПрдХ рднреА рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рджрд┐рдЦрд╛рдИ рдЧрдИ рд╣реИред

рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ - рднрдВрдбрд╛рд░рдг рдХрд╛ рдЖрдХрд╛рд░, рдЗрдиреЛрдб, рдХреИрдЯрд▓реЙрдЧ рджреНрд╡рд╛рд░рд╛ рд▓реЗрдЖрдЙрдЯ - рдпрд╣ рд╕рдм рдЕрддреАрдд рдореЗрдВ рд╣реИред

рд╕рдорд╛рдзрд╛рди рд╕реБрд╡рд┐рдзрд╛рдПрдБ


рдпрд╣ рд╕рдм рд╣рдорд╛рд░реЗ рд╕рд╛рде рдЫрд╣ рдорд╣реАрдиреЗ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рд╢рд╛рд╕рдХ рдХреЗ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ))

рднрд╡рд┐рд╖реНрдп рдХреА рдпреЛрдЬрдирд╛

рдЕрдм рдореИрдВ ~ 4-200kb рдХреА 15 рдорд┐рд▓рд┐рдпрди рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдФрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдл рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред S3 рдХреЗ рд╕рд╛рде, рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ - рдХреЛрдИ рдмрд▓реНрдХ-рдХреЙрдкреА рдСрдкрд░реЗрд╢рди рдирд╣реАрдВ рд╣реИрдВ, рдЖрдк рд╢реБрд░реВ рдореЗрдВ рднрдВрдбрд╛рд░рдг рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рд▓реНрдЯреА рдХреЛ рд╣рдЯрд╛ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╣ рдзреАрд░реЗ-рдзреАрд░реЗ рдкреАрдкреАрд╕реА рд╣реИред рдЗрд╕реЗ рдХрд╕рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрд╡реЗрд╖рдг рдХрд░реЗрдВред

рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдЬрд┐рдпреЛрдХреНрд▓реЗрд╕реНрдЯрд░ рд╣реИ, рд╣рдо рдЦреБрдж рд╕рд╛рдЗрдмреЗрд░рд┐рдпрд╛ рдореЗрдВ рд╣реИрдВ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рднреМрдЧреЛрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдирдЬрджреАрдХреА рдмрд┐рдВрджреБ рд╕реЗ рдбреЗрдЯрд╛ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореЙрд╕реНрдХреЛ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реА рд╕рд╛рдордЧреНрд░реА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреЗрд░реА рд╕реЗ рдЙрдбрд╝рддреА рд╣реИ - 100ms рдкреНрд▓рд╕ рддрдХ, рдпрд╣ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдЦреИрд░, рд╕рд┐рдл рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЕрдкрдиреА рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕рдм рдХреБрдЫ рд▓рдЧрддрд╛ рд╣реИред

Source: https://habr.com/ru/post/In180415/


All Articles