Проектирование системы, в которой конечной точке службы (возможно, простому сервлету) придется обрабатывать 3K запросов в секунду (данные будут размещены в формате http).
Эти запросы будут затем сохранены в mysql.
Ключевой вопрос, по которому мне нужно руководство, состоит в том, что они будут представлять собой высокий процент дублированных данных, отправляемых в эту конечную точку.
Мне нужно только хранить уникальные данные в mysql, так что бы вы посоветовали использовать для дублирования?
Опубликованные данные будут выглядеть так:
<root>
<prop1></prop1>
<prop2></prop2>
<prop3></prop3>
<body>
maybe 10-30K of test in here
</body>
</root>
Я напишу метод, который будет хэшировать prop1, prop2, pro3 для создания уникального хеш-кода (тело может отличаться и все еще считаться уникальным).
Я думал о создании некоего параллельного словаря, который будет передаваться по запросам.
У них больше шансов на дублирование опубликованных данных в течение 24 часов . Поэтому я могу удалять данные из этого словаря через каждые x часов.
Есть предложения по структуре данных для хранения дубликатов? А как насчет очистки и количества записей, которые я должен хранить, учитывая 3K запросов в секунду, то есть он очень быстро увеличится.
Примечание. Это 10К различных источников, которые будут публиковаться, и вероятность дублирования возможна только для данного источника. Это означает, что у меня может быть более одного словаря для группы источников, чтобы распространять информацию. Это означает, что если источник1 публикует данные, а затем источник2 публикует данные, изменения дублирования очень и очень низки. Но если source1 публикует сообщения 100 раз в день, вероятность дублирования очень высока.
Примечание: пожалуйста, пока игнорируйте задачу сохранения опубликованных данных в mysql, так как это отдельная проблема, обнаружение дублирования - мое первое препятствие, с которым мне нужна помощь.