Клиентом может считаться любое приложение, взаимодействующее с OpenSearch для индексирования, обновления или поиска данных, а также для мониторинга и поддержки OpenSearch с помощью различных API.
Очень важно правильно настроить клиентов, чтобы обеспечить оптимальное использование ресурсов OpenSearch.
Примеры
Существует множество клиентских приложений с открытым исходным кодом для мониторинга, оповещения и визуализации, OpenSearch Dashboard. В дополнение к OpenSearch такие клиентские приложения, как filebeat, metricbeat и logstash, были разработаны для интеграции с OpenSearch.
Однако часто возникает необходимость создания собственного клиентского приложения для взаимодействия с OpenSearch. Ниже приведен простой пример python-клиента:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | from datetime import datetime from opensearch import opensearch es = opensearch() doc = { 'author': 'Testing', 'text': 'opensearch: cool. bonsai cool.', 'timestamp': datetime.now(), } res = es.index(index="test-index", doc_type='tweet', id=1, body=doc) print(res['result']) res = es.get(index="test-index", doc_type='tweet', id=1) print(res['_source']) es.indices.refresh(index="test-index") res = es.search(index="test-index", body={"query": {"match_all": {}}}) print("Got %d Hits:" % res['hits']['total']['value']) for hit in res['hits']['hits']: print("%(timestamp)s %(author)s: %(text)s" % hit["_source"]) |
Все официальные клиенты OpenSearch имеют схожую структуру, работая как легкие обертки вокруг остального API OpenSearch, поэтому, если вы знакомы со структурой запросов OpenSearch, они обычно достаточно просты в реализации.
Примечания и полезные советы
Используйте официальные библиотеки OpenSearch.
Хотя к OpenSearch можно подключиться с помощью любого метода HTTP, например, запроса curl, официальные библиотеки OpenSearch разработаны для правильной реализации пула соединений и keep-alives.
Официальные клиенты OpenSearch доступны для java, javascript, Perl, PHP, python, ruby и .NET. Многие другие языки программирования поддерживаются общественными версиями.
Поддерживайте синхронизацию версии OpenSearch и версии клиента.
Чтобы избежать неожиданностей, всегда поддерживайте версию клиента в соответствии с используемой версией OpenSearch. Всегда тестируйте клиентов с OpenSearch, поскольку даже незначительное обновление версии может вызвать проблемы из-за зависимостей или необходимости внесения изменений в код.
Балансировка нагрузки на соответствующих узлах.
Убедитесь, что клиент правильно балансирует нагрузку на всех соответствующих узлах кластера. В небольших кластерах это обычно означает балансировку только на узлах данных (никогда на основных узлах), а в больших кластерах - на всех выделенных координационных узлах (если таковые имеются).
Убедитесь, что приложение OpenSearch правильно обрабатывает исключения.
В случае, если OpenSearch не справляется с объемом запросов, лучше разработать клиентское приложение, которое будет справляться с этим изящно (например, с помощью какого-либо механизма очередей), чем просто заваливать испытывающий трудности кластер повторными запросами.