Экономика стран

К сожалению, большинство людей, которые будут ими затронуты почти весь мир, не будут иметь никакого влияния на результат. Вести Экономика Дайджест иностранной прессы за 14 августа.
Вести Экономика Греции снова придется списывать долги Греция не сможет самостоятельно расплатиться по долгам, и понадобится новая реструктуризация долгов, чтобы спасти страну от банкротства.

React.Js: Дасягненне часу рэакцыі сервера 20 мс пры дапамозе рэндэрынгу і кэшавання сервера

  1. Маленькі фон
  2. Уступае ў рэакцыю!
  3. Пытанні!
  4. Уваходзіць у Redis!
  5. Сціскаеце больш!
  6. Буйны кэш
  7. Высновы

Мы ўсе любім ReactJs за тое, што ён робіць прадукцыйнасць, модульнасць і свабоду, якую ён дае, каб выбраць свой стэк. Але ёсць адна рэч, якая адрознівае яе. Адказ на баку сервера . Перад React большасць фреймворкаў JavaScript засяроджана на стварэнні прыкладанняў для адной старонкі і зрабілі вялікую працу. Але зараз гэта 2016 год, эпоха Hybrid Apps! Прыкладанні, якія могуць працаваць за межамі асяроддзя браўзэра . React пачаў тэндэнцыю, падтрымліваючы рэндэрынгу на серверы, што дазваляе нам будаваць прыкладанні з канца ў канец JavaScript.

Маленькі фон

Мы ўсе любім ReactJs за тое, што ён робіць прадукцыйнасць, модульнасць і свабоду, якую ён дае, каб выбраць свой стэк

Зараз я працую Здаровы харчаванне практыка , месца, дзе лекары і спецыялісты ў галіне аховы здароўя пішуць артыкулы пра здароўе і дзеляцца сваім вопытам. Калі не што-небудзь іншае, любая платформа для блогаў павінна быць найлепшай на адным : SEO . Любы блог з добрай SEO прызначаны для таго, каб атрымаць больш чытачоў, чым хто-небудзь іншы. І больш чытачоў азначае больш SEO!

Каб палепшыць SEO, трэба рабіць шмат рэчаў правільна. Але тут мы будзем казаць толькі пра самыя важныя два, самыя асновы для добрага SEO:

  • Зрабіць ваш сайт сканіраваным для ботаў .
  • Зрабіце гэта хутка . Як Сокал Тысячагоддзя!

Уступае ў рэакцыю!

Калі React выйшаў, адным з пунктаў продажу было тое, што ён падтрымлівае Side Rendering Server (SSR). Каб падтрымліваць прыкладанне SSR, усё, што вам трэба - гэта сервер вузлоў і API . Сучасная архітэктура выглядае наступным чынам:

Сучасная архітэктура выглядае наступным чынам:

Звярніце ўвагу! Сервер вузлоў дзейнічае як пасрэднік паміж карыстальнікам і серверам API. Такім чынам, паток ідзе наступным чынам:

  • Карыстальнік трапляе ў URL, запыт пераходзіць на сервер вузлоў .
  • Сервер вузлоў робіць запыт на сервер API і прымае дадзеныя з сервера API .
  • Перадача дадзеных у дадатак , якое ў сваю чаргу стварае канчатковы HTML для карыстальніка.
  • Вяртае радок HTML назад карыстальніку.

Цяпер уся ўстаноўка скончана! Сервер прымае запыты, API дае адказ, і, нарэшце, карыстальнікі / боты атрымліваюць цалкам адлюстраваную HTML-старонку. Але гэта можа стаць кашмарам карыстальніка .

Пытанні!

  • Што рабіць, калі сервер API павольны ! Як 500 мс час водгуку.

Адна праблема з аказаннем боку сервера заключаецца ў тым, што час адказу залежыць ад часу адказу сервера API. Гэта азначае, што незалежна ад таго, наколькі эфектыўнае і хуткае прыкладанне вы зрабілі, карыстальнік убачыў белы экран на працягу не менш за 500 мс пры ўмове, што ваш сервер вузла мае час водгуку 0 мс. Што практычна немагчыма (пакуль).

Такім чынам, давайце паглядзім тут разрыў:

  • Час водгуку 500 мс ад API
  • 150 мс для рэндэрынгу на серверы (так, гэта займае так шмат)
  • 10 мс для сервера вузлоў
  • Затрымка сеткі 150 мс

Такім чынам, карыстальнік атрымае адказ пасля амаль 810 мс ! Цяпер, вядома, гэта проста сярэднія лічбы, але ў рэальным свеце гэта можа быць нашмат горш. Паколькі ў нас мала кантролю над затрымкай сеткі, мы будзем трымаць гэта далей. Такім чынам, час водгуку сервера складае 660 мс .

Каб палепшыць сітуацыю, мы спачатку злавім самую вялікую рыбу: час рэагавання на API.

Уваходзіць у Redis!

Redis - адзін з самых магутных крам з структурай дадзеных, які вельмі хутка і эфектыўна. Вы можаце захоўваць што-небудзь там як пары ключавых значэнняў. Інтэграцыя redis для захоўвання асяроддзя вузлоў вельмі проста. Калі мы захоўваем вынік API у redis , мы можам захаваць сетку паездкі на сервер API.

Так што зараз, калі карыстальнік робіць нейкі запыт, сервер вузлоў будзе запытваць Redis, калі ён ужо мае адказ. Калі гэта адбудзецца, ён непасрэдна перадае яго прыкладання для рэндэрынгу і, нарэшце, верне радок HTML. Калі ён не мае адказу, мы будзем ісці наперад і патэлефанаваць API, а зараз захаваць гэты вынік у перададанні перад перадачай яго ў дадатак.

Новы прабой будзе:

  • 150 мс для аказання боку сервера
  • 5 мс для сервера redis (УВАГА: Час аказання можа быць меншым або вельмі высокім, у залежнасці ад памеру прыкладання.)
  • 10 мс для сервера вузлоў

З дапамогай кэшавання адказаў API мы скараціліся з 660 мс да 160 мс .

Сціскаеце больш!

Нягледзячы на ​​тое, што 160 мс гэта добра, мы можам атрымаць больш за невялікі трук.

Замест таго, каб захоўваць адказ API у Redis, чаму б не захоўваць усю радок HTML?

і гэта было вынікам!

і гэта было вынікам

Сярэдні час водгуку ўпаў да 20 мс !

Буйны кэш

Калі правільна не апрацоўвацца, кэшаванне становіцца болем у попку. Людзі пачынаюць пастаянна паведамляць пра старыя дадзеныя / памылкі. Такім чынам, з вялікім кэшам, нам таксама патрэбна добрая стратэгія выбару кэша. Звычайна ў нас ёсць два выпадкі, калі трэба ачысціць кэш:

  • Калі аўтар абнаўляе артыкул. (Калі адбываюцца абнаўлення дадзеных)

Калі аўтар што-небудзь абнаўляе, ён хоча, каб змены адлюстроўваліся адразу! Для гэтага мы стварылі невялікі параметр cache = false. Кожны раз, калі URL атрымлівае гэты URL, сервер вузлоў вырабляе і выклікае API замест таго, каб атрымліваць дадзеныя з кэша redis. І таму кэш абнаўляецца новымі дадзенымі.

Кожны раз, калі вы разгорнеце, генеруецца новы хэш-хэш для файлаў JS і CSS. Гэта азначае, што калі вы захоўваеце ў кэшы ўвесь радок HTML, то пры разгортванні ён будзе несапраўдным. Такім чынам, кожны раз, калі вы разгорнеце, Redis db павінен быць цалкам змыты.

Высновы

Вузел хутка. Так і рэагуе! Але часам нам трэба дадаваць новага гульца, каб дасягнуць гэтай немагчымай мэты, не прыносячы ў ахвяру ніводнага вопыту. Redis з'яўляецца дзіўным. Выкарыстоўвайце ўсе гэтыя мудра.

Замест таго, каб захоўваць адказ API у Redis, чаму б не захоўваць усю радок HTML?
Навигация сайта
Реклама
Панель управления
Календарь новостей
Популярные новости
Информация
Экономика стран www.mp3area.ru © 2005-2016
При копировании материала, ссылка на сайт обязательна.