明るい16億背後Elasticsearchシステムチューニングの練習コード

背景:最近、疑われる例調査のための人々の複雑かつ効果的な運動を解決来た後、流行のストライキの優れた予防・管理するためです。2月9日には、テンセントの当事者が共同で「健康と防疫コード」を立ち上げ、人々はあなたが流行中の公共の場所へ簡単にアクセスすることができ、二次元のマイクロ文字コードによってカバーされ、自分の健康情報のための電子渡航文書へのアクセスを適用する必要があります。
 
現在、テンセントの健康と防疫コードは、60回の訪問の合計が壊れ、以上の16億人の合計は、900以上の万人をカバーし、コードを点灯し、300の以上の都市や郡をカバーし、北京、広東、四川、雲南省、上海、他の20省レベルの行政地域を上陸させました億円となりました。


 
健康と流行防止コードアーキテクチャと開発者として、効率的に時間の限られた期間内に、迅速な反復開発システムをサポートする方法、ビジネスの最も適切なストレージ多種多様な製品を選択する方法。また、全国のバーストで流行の緊急状況の下で、どのように迅速に1000000000000面のデータアクセスの課題、皆のための健康Elasticsearchの練習の後ろの紙システムのチューニングシークレットコードを反応させました。

選択Elasticsearchと技術的な考慮事項
シナリオは、コミュニティの相互スイープ、バヨネットアクセス、ホーム検疫などを含め、多くの病気の予防の健康コードを伴います。したがって、このような旅行時間などの一般的なクエリー構造化された情報をサポートするために必要なデータ、車両情報の種類の観点から、また、そのような街路/コミュニティ/地域名として長いテキスト情報などがあります。、迅速な調整機能でフィールドを追加または削除する必要があると流行の予防とコントロールを調整する必要とともに、また、お問い合わせの面で、伝統的なクエリ構造化された情報をサポートするだけでなく、キーワード検索技術、大容量データの集約をサポートするだけでなく分析および地理的位置の計算手法。


 
選択プロセスに格納されたデータは、我々は比較して反射主流製品のいくつかの操作を行います。
 
伝統的なMySQLなどのリレーショナルデータベース、トランザクションアプリケーションと優れた性能を持つクエリ用語に関連したマルチサービス、マルチテーブルではなく、データ型の健康コードシステムの複雑多様に直面し、特に、キーワード検索機能をテキスト延伸されます。逆インデックス構造によって構築テンセントクラウドベースのES Luceneクエリエンジンは、すぐにはまだ、1兆のスケールで大量のデータを見つけるために、キーワード検索により、ミリ秒クエリの応答を達成することができ必要なレコードすることができます。検索、約100倍、検索クエリの効率を一致させるために、従来のリレーショナル・データベースのようなコマンドを使用する場合と比較して。

逆索引構造

 
より人気のある製品についてのNoSQL MongoDBは、しかし、およびESはタイプがサポートされている多様なデータを満たすために、あなたは常にビジネスのニーズに応じて書かれたクエリの通常の業務に影響を与えませんダイナミックフィールドを増やすことができますが、重要なテキストの同じ不足ワード検索機能。そしてES、凝集能力分析およびグラフィカルUIコンポーネントマスデータが存在しない場合に比べ。doc_valueフレーム構造と重合、キーワードによる支持点バレルを含む、時間浴槽、ポイント、平均、合計、地理的境界、等から浴槽、60重合オペレータまでによるESテンセントクラウド・ストレージ・カラム。


 
コンポーネントUI機能を交配Kibanaは、膨大な量のデータをグラフによって分析することができます。同時に、グラフィカルな設定、レポートなどの形で複雑な操作アナリストの開発を簡素化するために、そして最終的に、データ分析機能のESを通じて、防疫部門や関係者を作るので、伝染病の予防と指先の制御の場合インチ
 
大量のデータを記憶するため、等ハイブ倉庫の数、HBaseのような大規模なデータ製品のかなりの数は、膨大なデータ記憶容量を有し、いくつかのデータ分析機能を有することがあるが、しかしESだけでなく、全体の技術スタックに比べそして、アーキテクチャが重い、メンテナンスを必要とする多くのオープンソースコンポーネントは、通常、クラスタの定期的なメンテナンスうち専用の運用・保守チームのキャリーが必要です。ビッグデータのための最初の接触プラットフォームは開発を始めるために始めるための基礎のかなり多くを必要とした後、開発者のために、メソッドおよびインターフェースの開発は、より多くの開発者のための複雑されています。
 
テンセントクラウドESスタイルの使用にはるかに簡単なデバッグでは、RESTfulなAPIを使用して、基本的にすべての主要な市場開発言語をカバーし、10+公式SDKおよびSDK 20+コミュニティにアップしています。コミュニティエコロジーは、完全なドキュメント、豊かな生態系の部品は非常に積極的です。仕事のコーディングの量を減らし、SDKや生態系のコンポーネントを統合することによって、大幅にあなたが効率的にライン上のビジネス開発の緊急ニーズに応えることができ、プロセス開発を加速させました。

ビジネスデータの爆発的な成長、どのように急速な拡大
今数900万人のユーザーをカバーし、16億スキャンコードに達するまで、全国の伝染病の予防と制御普及に伴い、健康・コードへのアクセスの州では、急激に増加しました。データクエリの急速なビジネスの成長に対処する方法、データ・ストレージ・システムが大きな課題となります。
ESテンセント雲が分散アーキテクチャを、インデックスデータパーティションアルゴリズムは等しく、クラスタの複数のノードにわたって分散データスライス(シャード)の複数に分割されています。ノード容量とデータスライス、インデックス・データが線形拡張クエリスループットを書き込むことができ、この単一のインスタンスが利用可能でない従来のデータベースです。
 
保健システム内のデータのコードので、流行の進展とともに成長し、難しい最終データの大きさを予測するため、ストレージ容量のESを増やすことができるようにするため、より柔軟な必要性を継続します。あなたが構成ノードをアップグレードする必要がある場合、ユーザーに構築されたクラスタでは、通常、新しいストレージデバイスを接続購入する必要があるか、データが古いノードから移行されるのを待って、クラスタに新しいノードを追加する必要があります。このプロセスは、通常、通常、データクラスタのサイズによって決まり、長い数時間から数日続きます。
 
ESテンセントは、クラウドのIaaSベース層、ハード・ディスク・クラウドCVMとCBSの上に構築された特定のストレージ容量は、分離して計算されています。ストレージ動的ESノードのために拡張することができ、検出されず、完全に透明です。需要のようなデータ同様の健康コードサイズ、ストレージ空間の拡張操作は、第二のレベルに数時間または数日の以前のレベルから低下し、すべてのクラスタの変更操作が大きく、テンセントクラウドコンソール上で実行することができたらクラスタ構成の変更の運用および保守の複雑さを軽減し、バックグラウンドのビジネスの人々は重い操作や保守作業から解放されました。

ESテンセントクラウドサービスの高可用性技術アーキテクチャ
在疫情防控任务面前,任何环节不容有失,需要存储系统能7*24小时不间断的提供服务,提高服务可用性,保证整个健康码系统的稳定性。

腾讯云ES支持多可用区集群容灾功能

 
腾讯云ES服务支持多可用区容灾的功能,当一个可用区因为机房电力、网络等故障的原因导致不可用时,另外一个可用区的节点仍然能稳定、不间断的提供服务,保障客户业务的可靠性。
 
这也是基于ES的分布式原理,当用户选择使用支持多可用区容灾的腾讯云ES集群后,系统会为用户在多个可用区部署节点,且节点会平均的部署到各个可用区机房中。由于索引数据是可以进行分片,且设置副本。根据ES的分片分配原理,所有的分片及副本会平均的分布在所有的节点之上。这就保证了,如果设置的副本数和可用区数目一致,当有一个节点乃至一个可用区机房不可用,剩余节点中的分片仍是一份完整的数据,且主从分片可以自动切换,集群仍然可以持续的对外提供写入查询服务。
 
防疫工作机构及人员需要每天及时掌握疫情的防控情况,需要不定时的对数据进行汇总分析查询。然而,在全国海量的防疫数据场景下,集群很容易由于不严谨的聚合分析语句导致大量的数据在节点内存中进行分桶,排序等计算,从而使节点发生OOM的问题,造成节点乃至整个集群的雪崩。
 
为了防止此类情况发生导致的集群不可用,腾讯云ES在存储内核上开发了基于实际内存的熔断限流机制。当集群发现部分节点的JVM使用率超过设定的熔断阀值,会进行服务降级,梯度的拦截部分查询的请求,直至JVM使用率超过95%会最终熔断,阻止所有的查询请求。这个熔断的请求拦截机制会覆盖Rest层及Transport层,通过将熔断提前至Rest层,可以尽早的将请求进行拦截,降低集群在熔断状态下的查询压力。通过这些措施,保证了健康码小程序海量查询下的服务可用性及查询性能。

数据安全,万无一失
近年来,海内外数据泄露事件频出。健康码系统使用的腾讯云ES在安全方面做了最高级别的优化,包括支持配置内外网访问黑白名单,支持集群权限认证功能。 极大的提高了数据的安全性。并且,不同用户集群之间通过VPC进行网络隔离,杜绝了潜在的黑客入侵的风险。


 
腾讯云ES支持基于COS的增量数据备份功能,用户可以通过ES原生的索引生命周期管理功能,定时增量的备份底层的数据文件到腾讯云对象存储COS。当需要的时候,可以随时将数据备份恢复至任意的集群,保证了数据的安全可靠性,做到数据的万无一失。
 
结语:腾讯防疫健康码目前已广泛应用于机场、火车站、高速公路、商业区、小区等防疫检查卡口,有效帮助卫生防疫部门全面排查疑似患者,阻击疫情的快速传播。健康码能如此稳定安全的支撑10亿级别的数据访问,腾讯云ES在数据搜索查询、高并发、弹性扩展以及安全领域的技术功不可没,后续腾讯云将继续针对用户需求,不推打磨技术和产品,为更多用户提供稳定安全可靠的Elasticsearch服务。
发布了964 篇原创文章 · 获赞 11 · 访问量 3万+

おすすめ

転載: blog.csdn.net/xiaoyaGrace/article/details/105363989