1

シャードされているアプリで Codeigniter を使用しています。これには、ユーザー ID 間でのデータベースの分割が含まれます。シャードされたデータベースには 2 種類のテーブルがあります。1 つはユーザー ID によってシャーディングされているため、データは複数のシャードに均等に分割され、グローバルではデータがすべてのシャードに複製されます。もちろん、負荷分散も行われているため、デフォルトの php セッションを使用しても機能しません。

セキュリティの点で CI セッション データベースが気に入っていますが、それをシャード化することはできません。そのテーブルにかなりの負荷がかかり、すべてのシャード間で狂ったようにレプリケートされることになります。これは良い状況ではありません。私たちの負荷テストは、ci_sessions テーブルがすでに問題点であることを示しています。

それに対処するためのいくつかの戦略があります。1 つは、ORM に propel を使用しているため、CI のデータベース アクセス レイヤーを使用する ci_sessions を独自の DB に簡単に分割できます。必要に応じて、それを分割することもできます。

人々が提案する他の選択肢があるかどうか疑問に思っていますか?

4

1 に答える 1

0

dbセッションやhtml5セッション/ローカルストレージを使用しないのはどうですか? :)

または、Cookie を使用してカスタム変数、ID、またはドメイン パスを設定しますか?

とにかく、各ユーザーに必要なセッション/クッキーのサイズに依存します.dbはより多くのスペースとより良いセキュリティを保証します.

とにかくmongodbが大好きです:D https://github.com/sepehr/ci-mongodb-session

于 2012-12-29T21:47:47.093 に答える