2017-04-03 2 views
1

5百万人のユーザーがいるモバイルアプリがあり、今はESに基づいてニュースフィードをデザインしようとしています。目標は、投稿の作成、保存、別のユーザーの購読の機会を得ることです。だから私たちは彼のサブスクリプションに応じて誰のためにも投稿を選択する必要があります。ElasticSearchでのニュースフィードの保存に最適なデザインパターン

私はいくつかの調査とグーグルで、私たちのユースケースで使用できる人気のある方法を見つけました。インデックスあたりのユーザーの作成

  1. 。私はそれが良いアイデアではないと思うので、加入者のインデックスごとに新しい投稿を挿入する必要があります。また、100万人のユーザーがいる場合はどうなりますか?

  2. すべての投稿に1つのインデックスを作成します。そして、ユーザーごとに、彼が購読しているユーザーIDでフィルターを使ってエイリアスを作成することができます。しかし、その後、ユーザーのためにニュースフィードを作成しながら、多くの断片でヒップアップする必要があります。だから3つの方法があります。

  3. userIdによるルーティング。これは2つの方法と似ていますが、違いはuserIdでルーティングすることでユーザーごとにエイリアスを作成する点です。欠点は、私たちのインデックスの各ポストには、何人の人がそれを取るべきかだけのコピーがあることです。

私が読んだ別のパターンがあります。しかし、私はまだ明確なビジョンを持っていません - ユースケースではベストプラクティスは何でしょうか。

また、ES - Cassandraに代わるものもあります。しかし、その決定はまだ進行中です。

誰かがこの質問に彼の専門知識を言うことができ、アドバイスをすることができます。批判も歓迎です。

ありがとうございます。

+0

あなたは最良の方法を理解しましたか?もしそうなら、分かち合うことができますか?ありがとう – Bujji

答えて

-1

オブザーバーパターンを使用すると、あなたのニュースはすべての購読者に送信されます

+0

質問は、多くのデータを格納してクエリすることです – z0mb1ek

関連する問題