ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืœื˜ืขื™ื ื” ื‘ืคืจื•ื™ืงื˜ Highload ืขื ElasticSearch

ื”ื™ื™ ื”ื‘ืจ! ืฉืžื™ ืžืงืกื™ื ื•ืกื™ืœื™ื™ื‘, ืื ื™ ืขื•ื‘ื“ ื›ืื ืœื™ืกื˜ ื•ืžื ื”ืœ ืคืจื•ื™ืงื˜ื™ื ื‘-FINCH. ื”ื™ื•ื ื‘ืจืฆื•ื ื™ ืœืกืคืจ ืœื›ื ื›ื™ืฆื“, ื‘ืืžืฆืขื•ืช ElasticSearch, ื”ืฆืœื—ื ื• ืœืขื‘ื“ 15 ืžื™ืœื™ื•ืŸ ื‘ืงืฉื•ืช ื‘-6 ื“ืงื•ืช ื•ืœื™ื™ืขืœ ืืช ื”ืขื•ืžืก ื”ื™ื•ืžื™ ื‘ืืชืจ ืฉืœ ืื—ื“ ืžืœืงื•ื—ื•ืชื™ื ื•. ืœืฆืขืจื ื•, ื ืฆื˜ืจืš ืœื”ืกืชื“ืจ ื‘ืœื™ ืฉืžื•ืช, ืžื›ื™ื•ื•ืŸ ืฉื™ืฉ ืœื ื• NDA, ืื ื• ืžืงื•ื•ื™ื ืฉืชื•ื›ืŸ ื”ื›ืชื‘ื” ืœื ื™ืกื‘ื•ืœ ืžื›ืš. ื‘ื•ื ื ืœืš.

ืื™ืš ื”ืคืจื•ื™ืงื˜ ืขื•ื‘ื“

ื‘ืฆื“ ื”ืื—ื•ืจื™ ืฉืœื ื•, ืื ื• ื™ื•ืฆืจื™ื ืฉื™ืจื•ืชื™ื ื”ืžื‘ื˜ื™ื—ื™ื ืืช ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ืืชืจื™ ื”ืื™ื ื˜ืจื ื˜ ื•ื”ืืคืœื™ืงืฆื™ื” ืœื ื™ื™ื“ ืฉืœ ื”ืœืงื•ื— ืฉืœื ื•. ื ื™ืชืŸ ืœืจืื•ืช ืืช ื”ืžื‘ื ื” ื”ื›ืœืœื™ ื‘ืชืจืฉื™ื:

ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืœื˜ืขื™ื ื” ื‘ืคืจื•ื™ืงื˜ Highload ืขื ElasticSearch

ื‘ืชื”ืœื™ืš ื”ืขื‘ื•ื“ื” ืื ื• ืžืขื‘ื“ื™ื ืžืกืคืจ ืจื‘ ืฉืœ ืขืกืงืื•ืช: ืจื›ื™ืฉื•ืช, ืชืฉืœื•ืžื™ื, ืคืขื•ืœื•ืช ืขื ื™ืชืจื•ืช ืžืฉืชืžืฉ, ืขื‘ื•ืจืŸ ืื ื• ืžืื—ืกื ื™ื ื”ืจื‘ื” ื™ื•ืžื ื™ื, ื•ื›ืŸ ืžื™ื™ื‘ืื™ื ื•ื™ื™ืฆื•ื ื ืชื•ื ื™ื ืืœื• ืœืžืขืจื›ื•ืช ื—ื™ืฆื•ื ื™ื•ืช.

ื™ืฉื ื ื’ื ืชื”ืœื™ื›ื™ื ื”ืคื•ื›ื™ื ื›ืืฉืจ ืื ื• ืžืงื‘ืœื™ื ื ืชื•ื ื™ื ืžื”ืœืงื•ื— ื•ืžืขื‘ื™ืจื™ื ืื•ืชื ืœืžืฉืชืžืฉ. ื‘ื ื•ืกืฃ, ืขื“ื™ื™ืŸ ืงื™ื™ืžื™ื ืชื”ืœื™ื›ื™ ืขื‘ื•ื“ื” ืขื ืชืฉืœื•ืžื™ื ื•ืชื•ื›ื ื™ื•ืช ื‘ื•ื ื•ืกื™ื.

ืจืงืข ืงืฆืจ

ื‘ืชื—ื™ืœื”, ื”ืฉืชืžืฉื ื• ื‘-PostgreSQL ื›ืžืื’ืจ ื”ื ืชื•ื ื™ื ื”ื™ื—ื™ื“. ื”ื™ืชืจื•ื ื•ืช ื”ืกื˜ื ื“ืจื˜ื™ื™ื ืฉืœื• ืขื‘ื•ืจ DBMS: ื ื•ื›ื—ื•ืช ืฉืœ ืขืกืงืื•ืช, ืฉืคืช ื“ื’ื™ืžืช ื ืชื•ื ื™ื ืžืคื•ืชื—ืช, ืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ื›ืœื™ื ืœืื™ื ื˜ื’ืจืฆื™ื”; ื‘ืฉื™ืœื•ื‘ ืขื ื‘ื™ืฆื•ืขื™ื ื˜ื•ื‘ื™ื ืกื™ืคืงื• ืืช ื”ืฆืจื›ื™ื ืฉืœื ื• ื‘ืžืฉืš ื–ืžืŸ ืจื‘ ืœืžื“ื™.

ืื—ืกื ื• ืœื—ืœื•ื˜ื™ืŸ ืืช ื›ืœ ื”ื ืชื•ื ื™ื ื‘-Postgres: ืžืขืกืงืื•ืช ื•ืขื“ ื—ื“ืฉื•ืช. ืื‘ืœ ืžืกืคืจ ื”ืžืฉืชืžืฉื™ื ื’ื“ืœ, ื•ืื™ืชื• ื’ื ืžืกืคืจ ื”ื‘ืงืฉื•ืช.

ืœืžืขืŸ ื”ื”ื‘ื ื”, ืžืกืคืจ ื”ืคืขืœื•ืช ื”ืฉื ืชื™ ื‘-2017 ื‘ืœื‘ื“ ื‘ืืชืจ ื”ื“ืกืงื˜ื•ืค ืขื•ืžื“ ืขืœ 131 ืžื™ืœื™ื•ืŸ. ื‘ืฉื ืช 2018 - 125 ืžื™ืœื™ื•ืŸ. 2019 ืฉื•ื‘ 130 ืžื™ืœื™ื•ืŸ. ื”ื•ืกืฃ ืขื•ื“ 100-200 ืžื™ืœื™ื•ืŸ ืžื”ื’ืจืกืช ื”ืžื•ื‘ื™ื™ืœ ืฉืœ ื”ืืชืจ ื•ืžื”ืืคืœื™ืงืฆื™ื” ืœืžื•ื‘ื™ื™ืœ, ื•ืืชื” ื™ืงื‘ืœ ืžืกืคืจ ืขืฆื•ื ืฉืœ ื‘ืงืฉื•ืช.

ืขื ืฆืžื™ื—ืช ื”ืคืจื•ื™ืงื˜, Postgres ื”ืคืกื™ืงื” ืœื”ืชืžื•ื“ื“ ืขื ื”ืขื•ืžืก, ืœื ื”ื™ื” ืœื ื• ื–ืžืŸ - ื”ื•ืคื™ืขื• ืžืกืคืจ ืจื‘ ืฉืœ ืฉืื™ืœืชื•ืช ืฉื•ื ื•ืช, ืขื‘ื•ืจืŸ ืœื ื”ืฆืœื—ื ื• ืœื™ืฆื•ืจ ืžืกืคืจ ืžืกืคื™ืง ืฉืœ ืื™ื ื“ืงืกื™ื.

ื”ื‘ื ื• ืฉื™ืฉ ืฆื•ืจืš ื‘ืžืื’ืจื™ ื ืชื•ื ื™ื ืื—ืจื™ื ืฉื™ืกืคืงื• ืืช ื”ืฆืจื›ื™ื ืฉืœื ื• ื•ื™ื•ืจื™ื“ื• ืืช ื”ืขื•ืžืก ืž-PostgreSQL. Elasticsearch ื•- MongoDB ื ื—ืฉื‘ื• ื›ืืคืฉืจื•ื™ื•ืช ืืคืฉืจื™ื•ืช. ื”ืื—ืจื•ืŸ ื”ืคืกื™ื“ ื‘ื ืงื•ื“ื•ืช ื”ื‘ืื•ืช:

  1. ืžื”ื™ืจื•ืช ื™ืฆื™ืจืช ืื™ื ื“ืงืก ืื™ื˜ื™ืช ื›ื›ืœ ืฉื›ืžื•ืช ื”ื ืชื•ื ื™ื ื‘ืื™ื ื“ืงืกื™ื ื’ื“ืœื”. ืขื Elastic, ื”ืžื”ื™ืจื•ืช ืื™ื ื” ืชืœื•ื™ื” ื‘ื›ืžื•ืช ื”ื ืชื•ื ื™ื.
  2. ืื™ืŸ ื—ื™ืคื•ืฉ ื˜ืงืกื˜ ืžืœื

ืื– ื‘ื—ืจื ื• ืœืขืฆืžื ื• ื‘ืืœืกื˜ื™ืง ื•ื”ืชื›ื•ื ื ื• ืœืžืขื‘ืจ.

ืžืขื‘ืจ ืœืืœืกื˜ื™

1. ื”ืชื—ืœื ื• ืืช ื”ืžืขื‘ืจ ืžืฉื™ืจื•ืช ื—ื™ืคื•ืฉ ื ืงื•ื“ื•ืช ื”ืžื›ื™ืจื”. ืœืœืงื•ื— ืฉืœื ื• ื™ืฉ ื‘ืกืš ื”ื›ืœ ื›-70 ื ืงื•ื“ื•ืช ืžื›ื™ืจื”, ื•ื”ื“ื‘ืจ ืžืฆืจื™ืš ืžืกืคืจ ืกื•ื’ื™ ื—ื™ืคื•ืฉื™ื ื‘ืืชืจ ื•ื‘ืืคืœื™ืงืฆื™ื”:

  • ื—ื™ืคื•ืฉ ื˜ืงืกื˜ ืœืคื™ ืฉื ืขื™ืจ
  • ื—ื™ืคื•ืฉ ื’ื™ืื•ื’ืจืคื™ ื‘ืจื“ื™ื•ืก ื ืชื•ืŸ ืžื ืงื•ื“ื” ื›ืœืฉื”ื™. ืœืžืฉืœ, ืื ื”ืžืฉืชืžืฉ ืจื•ืฆื” ืœืจืื•ืช ืื™ืœื• ื ืงื•ื“ื•ืช ืžื›ื™ืจื” ืงืจื•ื‘ื•ืช ืœื‘ื™ืชื•.
  • ื—ื™ืคื•ืฉ ืœืคื™ ืจื™ื‘ื•ืข ื ืชื•ืŸ - ื”ืžืฉืชืžืฉ ืžืฆื™ื™ืจ ืจื™ื‘ื•ืข ืขืœ ื”ืžืคื”, ื•ื›ืœ ื”ื ืงื•ื“ื•ืช ื‘ืจื“ื™ื•ืก ื–ื” ืžื•ืฆื’ื•ืช ืœื•.
  • ื—ืคืฉ ืœืคื™ ืžืกื ื ื™ื ื ื•ืกืคื™ื. ื ืงื•ื“ื•ืช ื”ืžื›ื™ืจื” ืฉื•ื ื•ืช ื–ื• ืžื–ื• ื‘ืžื‘ื—ืจ

ืื ืžื“ื‘ืจื™ื ืขืœ ื”ืืจื’ื•ืŸ, ืื– ื‘-Postgres ื™ืฉ ืœื ื• ืžืงื•ืจ ื ืชื•ื ื™ื ื’ื ืœืžืคื” ื•ื’ื ืœื—ื“ืฉื•ืช, ื•ื‘ Elastic Snapshots ืœืงื•ื—ื™ื ืžื”ื ืชื•ื ื™ื ื”ืžืงื•ืจื™ื™ื. ื”ืขื•ื‘ื“ื” ื”ื™ื ืฉื‘ืชื—ื™ืœื” Postgres ืœื ื™ื›ื•ืœ ื”ื™ื” ืœื”ืชืžื•ื“ื“ ืขื ื”ื—ื™ืคื•ืฉ ืœืคื™ ื›ืœ ื”ืงืจื™ื˜ืจื™ื•ื ื™ื. ืœื ืจืง ืฉื”ื™ื• ืื™ื ื“ืงืกื™ื ืจื‘ื™ื, ื”ื ื™ื›ืœื• ื’ื ืœื—ืคื•ืฃ, ื›ืš ืฉืžืชื–ืžืŸ Postgres ื”ืœืš ืœืื™ื‘ื•ื“ ื•ืœื ื”ื‘ื™ืŸ ื‘ืื™ื–ื” ืื™ื ื“ืงืก ืœื”ืฉืชืžืฉ.

2. ื”ื‘ื ื‘ืชื•ืจ ื”ื™ื” ืžื“ื•ืจ ื”ื—ื“ืฉื•ืช. ืคืจืกื•ืžื™ื ืžื•ืคื™ืขื™ื ื‘ืืชืจ ืžื“ื™ ื™ื•ื ื›ื“ื™ ืฉื”ืžืฉืชืžืฉ ืœื ื™ืœืš ืœืื™ื‘ื•ื“ ื‘ื–ืจื™ืžืช ื”ืžื™ื“ืข, ื™ืฉ ืœืžื™ื™ืŸ ืืช ื”ื ืชื•ื ื™ื ืœืคื ื™ ื”ื”ื ืคืงื”. ื‘ืฉื‘ื™ืœ ื–ื” ื™ืฉ ื—ื™ืคื•ืฉ: ื ื™ืชืŸ ืœื—ืคืฉ ื‘ืืชืจ ืœืคื™ ื”ืชืืžืช ื˜ืงืกื˜, ื•ื‘ืžืงื‘ื™ืœ ืœื—ื‘ืจ ืคื™ืœื˜ืจื™ื ื ื•ืกืคื™ื, ืฉื›ืŸ ื”ื ื ืขืฉื™ื ื’ื ื‘ืืžืฆืขื•ืช ืืœืกื˜ื™ืง.

3. ืœืื—ืจ ืžื›ืŸ ื”ืขื‘ืจื ื• ืืช ืขื™ื‘ื•ื“ ื”ืขืกืงื”. ืžืฉืชืžืฉื™ื ื™ื›ื•ืœื™ื ืœืงื ื•ืช ืžื•ืฆืจ ืžืกื•ื™ื ื‘ืืชืจ ื•ืœื”ืฉืชืชืฃ ื‘ื”ื’ืจืœืช ืคืจืกื™ื. ืœืื—ืจ ืจื›ื™ืฉื•ืช ื›ืืœื”, ืื ื• ืžืขื‘ื“ื™ื ื›ืžื•ืช ื’ื“ื•ืœื” ืฉืœ ื ืชื•ื ื™ื, ื‘ืžื™ื•ื—ื“ ื‘ืกื•ืคื™ ืฉื‘ื•ืข ื•ื‘ื—ื’ื™ื. ืœืฉื ื”ืฉื•ื•ืื”, ืื ื‘ื™ืžื™ื ืจื’ื™ืœื™ื ืžืกืคืจ ื”ืจื›ื™ืฉื•ืช ื”ื•ื ืื™ืคืฉื”ื• ื‘ื™ืŸ 1,5-2 ืžื™ืœื™ื•ืŸ, ืื– ื‘ื—ื’ื™ื ื”ื ืชื•ืŸ ื™ื›ื•ืœ ืœื”ื’ื™ืข ืœ-53 ืžื™ืœื™ื•ืŸ.

ื™ื—ื“ ืขื ื–ืืช, ื™ืฉ ืœืขื‘ื“ ืืช ื”ื ืชื•ื ื™ื ื‘ื–ืžืŸ ื”ืงืฆืจ ื‘ื™ื•ืชืจ - ื”ืžืฉืชืžืฉื™ื ืœื ืื•ื”ื‘ื™ื ืœื—ื›ื•ืช ืœืชื•ืฆืื” ืžืกืคืจ ื™ืžื™ื. ืื™ืŸ ื“ืจืš ืœื”ืฉื™ื’ ืžื•ืขื“ื™ื ื›ืืœื” ื“ืจืš Postgres - ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืงื™ื‘ืœื ื• ืžื ืขื•ืœื™ื, ื•ื‘ื–ืžืŸ ืฉื˜ื™ืคืœื ื• ื‘ื›ืœ ื”ื‘ืงืฉื•ืช, ื”ืžืฉืชืžืฉื™ื ืœื ื™ื›ืœื• ืœื‘ื“ื•ืง ืื ื”ื ืงื™ื‘ืœื• ืคืจืกื™ื ืื• ืœื. ื–ื” ืœื ืžืื•ื“ ื ืขื™ื ืœืขืกืงื™ื, ืื– ื”ืขื‘ืจื ื• ืืช ื”ืขื™ื‘ื•ื“ ืœ- Elasticsearch.

ืชืงื•ืคืชื™ื•ืช

ื›ืขืช ื”ืขื“ื›ื•ื ื™ื ืžื•ื’ื“ืจื™ื ืžื‘ื•ืกืกื™ ืื™ืจื•ืขื™ื, ื‘ื”ืชืื ืœืชื ืื™ื ื”ื‘ืื™ื:

  1. ื ืงื•ื“ื•ืช ืžื›ื™ืจื”. ื‘ืจื’ืข ืฉื ืงื‘ืœ ื ืชื•ื ื™ื ืžืžืงื•ืจ ื—ื™ืฆื•ื ื™, ืื ื• ืžื™ื“ ืžืชื—ื™ืœื™ื ื‘ืขื“ื›ื•ืŸ.
  2. ื—ึฒื“ึธืฉืื•ึนืช. ื‘ืจื’ืข ืฉืขื•ืจื›ื™ื ื™ื“ื™ืขื” ื›ืœืฉื”ื™ ื‘ืืชืจ, ื”ื™ื ื ืฉืœื—ืช ืื•ื˜ื•ืžื˜ื™ืช ืœืืœืกื˜ื™ืง.

ื›ืืŸ ืฉื•ื‘ ื›ื“ืื™ ืœื”ื–ื›ื™ืจ ืืช ื”ื™ืชืจื•ื ื•ืช ืฉืœ ืืœืกื˜ื™ืง. ื‘-Postgres, ื‘ืขืช ืฉืœื™ื—ืช ื‘ืงืฉื”, ืืชื” ืฆืจื™ืš ืœื—ื›ื•ืช ืขื“ ืฉื”ื™ื ืชืขื‘ื“ ื‘ื™ื•ืฉืจ ืืช ื›ืœ ื”ืจืฉื•ืžื•ืช. ื ื™ืชืŸ ืœืฉืœื•ื— 10 ืจืฉื•ืžื•ืช ืœืืœืกื˜ื™ืง ื•ืœื”ืชื—ื™ืœ ืœืขื‘ื•ื“ ืžื™ื“, ืžื‘ืœื™ ืœื—ื›ื•ืช ืœืคื™ื–ื•ืจ ื”ืจืฉื•ืžื•ืช ืขืœ ืคื ื™ ื›ืœ ื”-Shards. ื›ืžื•ื‘ืŸ, ื™ื™ืชื›ืŸ ืฉื—ืœืง ืžื”-Shard ืื• Replica ืœื ื™ืจืื• ืืช ื”ื ืชื•ื ื™ื ืžื™ื“, ืื‘ืœ ื”ื›ืœ ื™ื”ื™ื” ื–ืžื™ืŸ ื‘ืงืจื•ื‘ ืžืื•ื“.

ืฉื™ื˜ื•ืช ืื™ื ื˜ื’ืจืฆื™ื”

ื™ืฉื ืŸ 2 ื“ืจื›ื™ื ืœืฉื™ืœื•ื‘ ืขื Elastic:

  1. ื“ืจืš ืœืงื•ื— ืžืงื•ืจื™ ื“ืจืš TCP. ื”ื“ืจื™ื™ื‘ืจ ื”ืžืงื•ืžื™ ื”ื•ืœืš ื•ื’ื•ื•ืข ื‘ื”ื“ืจื’ื”: ื”ื•ื ื›ื‘ืจ ืœื ื ืชืžืš, ื™ืฉ ืœื• ืชื—ื‘ื™ืจ ืžืื•ื“ ืœื ื ื•ื—. ืœื›ืŸ, ืื ื• ื›ืžืขื˜ ื•ืœื ืžืฉืชืžืฉื™ื ื‘ื• ื•ืžื ืกื™ื ืœื ื˜ื•ืฉ ืื•ืชื• ืœื—ืœื•ื˜ื™ืŸ.
  2. ื“ืจืš ืžืžืฉืง HTTP ืฉื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื’ื ื‘ื‘ืงืฉื•ืช JSON ื•ื’ื ื‘ืชื—ื‘ื™ืจ ืฉืœ Lucene. ื”ืื—ืจื•ืŸ ื”ื•ื ืžื ื•ืข ื˜ืงืกื˜ ืฉืžืฉืชืžืฉ ื‘ืืœืกื˜ื™ืง. ื‘ื’ืจืกื” ื–ื•, ืื ื• ืžืงื‘ืœื™ื ืืช ื”ื™ื›ื•ืœืช ืœื‘ืฆืข ืืฆื•ื•ื” ื“ืจืš ื‘ืงืฉื•ืช JSON ื“ืจืš HTTP. ื–ื• ื”ืืคืฉืจื•ืช ื‘ื” ืื ื• ืžื ืกื™ื ืœื”ืฉืชืžืฉ.

ื”ื•ื“ื•ืช ืœืžืžืฉืง HTTP, ืื ื• ื™ื›ื•ืœื™ื ืœื”ืฉืชืžืฉ ื‘ืกืคืจื™ื•ืช ื”ืžืกืคืงื•ืช ื™ื™ืฉื•ื ืืกื™ื ื›ืจื•ื ื™ ืฉืœ ืœืงื•ื— ื”-HTTP. ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื ืฆืœ ืืช Batch ื•ืืช ื”-API ื”ืืกื™ื ื›ืจื•ื ื™, ืžื” ืฉืžื‘ื™ื ืœื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื, ืฉืขื–ืจื• ืžืื•ื“ ื‘ื™ืžื™ ื”ืงื™ื“ื•ื ื”ื’ื“ื•ืœ (ืขื•ื“ ืขืœ ื›ืš ื‘ื”ืžืฉืš)

ื›ืžื” ืžืกืคืจื™ื ืœื”ืฉื•ื•ืื”:

  • ืฉืžื™ืจืช ืžืฉืชืžืฉื™ ื”ื‘ืื•ื ื˜ื™ ืฉืœ Postgres ื‘-20 ืฉืจืฉื•ืจื™ื ืœืœื ืงื™ื‘ื•ืฅ: 460713 ืจืฉื•ืžื•ืช ื‘-42 ืฉื ื™ื•ืช
  • ืœืงื•ื— ืืœืกื˜ื™ + ืชื’ื•ื‘ืชื™ ืขื‘ื•ืจ 10 ืฉืจืฉื•ืจื™ื + ืืฆื•ื•ื” ืขื‘ื•ืจ 1000 ืืœืžื ื˜ื™ื: 596749 ืจืฉื•ืžื•ืช ืชื•ืš 11 ืฉื ื™ื•ืช
  • ืœืงื•ื— ืืœืกื˜ื™ + ืชื’ื•ื‘ืชื™ ืขื‘ื•ืจ 10 ื—ื•ื˜ื™ื + ืืฆื•ื•ื” ืขื‘ื•ืจ 1000 ืืœืžื ื˜ื™ื: 23801684 ืขืจื›ื™ื ืชื•ืš 4 ื“ืงื•ืช

ื›ืขืช ื›ืชื‘ื ื• ืžื ื”ืœ ื‘ืงืฉื•ืช HTTP ืฉื‘ื•ื ื” JSON ื‘ืชื•ืจ Batch / ืœื Batch ื•ืฉื•ืœื— ืื•ืชื• ื“ืจืš ื›ืœ ืœืงื•ื— HTTP, ืœืœื ืงืฉืจ ืœืกืคืจื™ื™ื”. ืืชื” ื™ื›ื•ืœ ื’ื ืœื‘ื—ื•ืจ ืœืฉืœื•ื— ื‘ืงืฉื•ืช ื‘ืื•ืคืŸ ืกื™ื ื›ืจื•ื ื™ ืื• ืืกื™ื ื›ืจื•ื ื™.

ื‘ืื™ื ื˜ื’ืจืฆื™ื•ืช ืžืกื•ื™ืžื•ืช, ืื ื—ื ื• ืขื“ื™ื™ืŸ ืžืฉืชืžืฉื™ื ื‘ืœืงื•ื— ื”ืชื—ื‘ื•ืจื” ื”ืจืฉืžื™, ืื‘ืœ ื–ื” ืจืง ืขื ื™ื™ืŸ ืฉืœ ื”ืฉื™ื ื•ื™ ื”ื‘ื. ื‘ืžืงืจื” ื–ื”, ืœืงื•ื— ืžื•ืชืื ืื™ืฉื™ืช ืฉื ื‘ื ื” ืขืœ ื‘ืกื™ืก Spring WebClient ืžืฉืžืฉ ืœืขื™ื‘ื•ื“.

ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืœื˜ืขื™ื ื” ื‘ืคืจื•ื™ืงื˜ Highload ืขื ElasticSearch

ืงื™ื“ื•ื ื’ื“ื•ืœ

ืื—ืช ืœืฉื ื” ืžืชืงื™ื™ื ื”ืคืจื•ื™ืงื˜ ื‘ืžื‘ืฆืข ื’ื“ื•ืœ ืœืžืฉืชืžืฉื™ื โ€“ ื–ื”ื• ืื•ืชื• Highload, ืฉื›ืŸ ื‘ืฉืœื‘ ื–ื” ืื ื• ืขื•ื‘ื“ื™ื ืขื ืขืฉืจื•ืช ืžื™ืœื™ื•ื ื™ ืžืฉืชืžืฉื™ื ื‘ื• ื–ืžื ื™ืช.

ื‘ื“ืจืš ื›ืœืœ ืžืชืจื—ืฉื™ื ืฉื™ืื™ ืขื•ืžืกื™ื ื‘ืžื”ืœืš ื”ื—ื’ื™ื, ืื‘ืœ ื”ืžื‘ืฆืข ื”ื–ื” ื”ื•ื ื‘ืจืžื” ืื—ืจืช ืœื’ืžืจื™. ืฉื ื” ืฉืขื‘ืจื”, ื‘ื™ื•ื ื”ืžื‘ืฆืข, ืžื›ืจื ื• 27 ื™ื—ื™ื“ื•ืช ืกื—ื•ืจื”. ื”ื ืชื•ื ื™ื ืขื•ื‘ื“ื• ื‘ืžืฉืš ื™ื•ืชืจ ืžื—ืฆื™ ืฉืขื”, ืžื” ืฉื’ืจื ืœืื™ ื ื•ื—ื•ืช ืœืžืฉืชืžืฉื™ื. ื”ืžืฉืชืžืฉื™ื ืงื™ื‘ืœื• ืคืจืกื™ื ืขืœ ื”ื”ืฉืชืชืคื•ืช, ืืš ื”ืชื‘ืจืจ ืฉืฆืจื™ืš ืœื”ืื™ืฅ ืืช ื”ืชื”ืœื™ืš.

ื‘ืชื—ื™ืœืช 2019, ื”ื—ืœื˜ื ื• ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื ืืช ElasticSearch. ื‘ืžืฉืš ืฉื ื” ืฉืœืžื” ืืจื’ื ื• ืืช ืขื™ื‘ื•ื“ ื”ื ืชื•ื ื™ื ืฉื”ืชืงื‘ืœื• ื‘ืืœืกื˜ื™ืง ื•ืืช ื”ื ืคืงืชื ื‘-API ืฉืœ ื”ืืคืœื™ืงืฆื™ื” ื•ื”ืืชืจ ืœืžื•ื‘ื™ื™ืœ. ื›ืชื•ืฆืื” ืžื›ืš, ื‘ืฉื ื” ื”ื‘ืื” ื‘ืžื”ืœืš ื”ืงืžืคื™ื™ืŸ, ืขื™ื‘ื“ื ื• 15 ื›ื ื™ืกื•ืช ื‘-131 ื“ืงื•ืช.

ืžื›ื™ื•ื•ืŸ ืฉื™ืฉ ืœื ื• ื”ืจื‘ื” ืื ืฉื™ื ืฉืจื•ืฆื™ื ืœืงื ื•ืช ืกื—ื•ืจื” ื•ืœื”ืฉืชืชืฃ ื‘ื”ื’ืจืœืช ืคืจืกื™ื ื‘ืžื‘ืฆืขื™ื, ืžื“ื•ื‘ืจ ื‘ืฆืขื“ ื–ืžื ื™. ื›ืขืช ืื ื• ืฉื•ืœื—ื™ื ืžื™ื“ืข ืขื“ื›ื ื™ ืœืืœืกื˜ื™ืง, ืืš ื‘ืขืชื™ื“ ืื ื• ืžืชื›ื ื ื™ื ืœื”ืขื‘ื™ืจ ืžื™ื“ืข ืืจื›ื™ื•ืŸ ืžื”ื—ื•ื“ืฉื™ื ื”ืื—ืจื•ื ื™ื ืœ-Postgres ื›ืื—ืกื•ืŸ ืงื‘ื•ืข. ื›ื“ื™ ืœื ืœืกืชื•ื ืืช ืžื“ื“ ื”ืืœืกื˜ื™, ืฉื’ื ืœื• ื™ืฉ ืžื’ื‘ืœื•ืช.

ืžืกืงื ื”/ืžืกืงื ื•ืช

ื›ืจื’ืข ื”ืขื‘ืจื ื• ืืช ื›ืœ ื”ืฉื™ืจื•ืชื™ื ืฉืจืฆื™ื ื• ืœืืœืกื˜ื™ืง ื•ืขืฆืจื ื• ืืช ื–ื” ืœืขืช ืขืชื”. ื›ืขืช ืื ื• ื‘ื•ื ื™ื ืื™ื ื“ืงืก ื‘-Elastic ืขืœ ื’ื‘ื™ ื”ืื—ืกื•ืŸ ื”ืžืชืžืฉืš ื”ืจืืฉื™ ื‘-Postgres, ืฉืžืฉืชืœื˜ ืขืœ ืขื•ืžืก ื”ืžืฉืชืžืฉ.

ื‘ืขืชื™ื“, ืื ื• ืžืชื›ื ื ื™ื ืœื”ืขื‘ื™ืจ ืฉื™ืจื•ืชื™ื ืื ื ื‘ื™ืŸ ืฉื‘ืงืฉืช ื”ื ืชื•ื ื™ื ื”ื•ืคื›ืช ืžื’ื•ื•ื ืช ืžื“ื™ ื•ืžื—ืคืฉืช ืžืกืคืจ ื‘ืœืชื™ ืžื•ื’ื‘ืœ ืฉืœ ืขืžื•ื“ื•ืช. ื–ื• ื›ื‘ืจ ืœื ืžืฉื™ืžื” ืขื‘ื•ืจ Postgres.

ืื ืื ื—ื ื• ืฆืจื™ื›ื™ื ื—ื™ืคื•ืฉ ื‘ื˜ืงืกื˜ ืžืœื ื‘ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืื• ืื ื™ืฉ ืœื ื• ื”ืจื‘ื” ืงืจื™ื˜ืจื™ื•ื ื™ ื—ื™ืคื•ืฉ ืฉื•ื ื™ื, ืื– ืื ื—ื ื• ื›ื‘ืจ ื™ื•ื“ืขื™ื ืฉืฆืจื™ืš ืœืชืจื’ื ืืช ื–ื” ืœ- Elastic.

โŒ˜โŒ˜โŒ˜

ืชื•ื“ื” ืฉืงืจืืช. ืื ื”ื—ื‘ืจื” ืฉืœืš ืžืฉืชืžืฉืช ื’ื ื‘- ElasticSearch ื•ื™ืฉ ืœื” ืžืงืจื™ ื™ื™ืฉื•ื ืžืฉืœื”, ืกืคืจ ืœื ื•. ื™ื”ื™ื” ืžืขื ื™ื™ืŸ ืœื“ืขืช ืžื” ืฉืœื•ืžื ืฉืœ ืื—ืจื™ื ๐Ÿ™‚

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”