Так что прямо сейчас я пришел в проект, за который я беру на себя ответственность.Сервисный уровень, реализация тайм-кэша
Одна часть, которую я нашел на полпути, представляет собой кеш уровня сервиса. По-видимому, этот кеш на уровне сервиса был реализован, чтобы избежать большого количества вызовов в кластере базы данных. Уровень сервиса размещен на двух серверах для обеспечения производительности и стабильности, если один сервер опускается.
Теперь, к моей проблеме, или, вернее, каков наилучший шаблон для реализации тайм-кера? Объекты, которые редко меняются или обновляются, например, страны и т. Д., Кэшируются и никогда не выпускаются, если пул не сбрасывается.
Поскольку мы, или, вернее, мои предшественники, имеем две активные службы на двух отдельных машинах, я думаю о реализации тайм-кера. Альтернативой может быть предоставление услуг разговорам друг с другом, но, конечно, принимая во внимание, что они не зависят друг от друга, так что если кто-то спустится, то другой будет работать нормально.
В настоящее время существует 12 словарей с элементами, которые кэшируются. Большинство из них редко обновляются. Эти словари находятся в одном классе, который не является одиночным, но реализуется как синглтон, поэтому он создается только один раз.
Как вы советуете мне решить эту интересную проблему и почему так?
Я унаследованный этот проект, так что я не знаю, почему они сделали так, как они это делали. Я хотел бы получить информацию о том, какие варианты у меня есть у других опытных пользователей и почему. Системы, которые я построил ранее, не нуждались в большом кэшировании. При загрузке одной страницы выполняется один или два вызова, и это приводит к тому же количеству запросов к базе данных. Здесь одна загрузка страницы иногда приводит к нескольким вызовам с большим количеством запросов к базам данных, что делает много вызовов db, и мне сказали, почему они сделали эту форму кэширования, которая теперь реализована. – Johan
Ну, потребность в кешировании зависит от того, сколько трафика вы ожидаете. Если это решение с низким трафиком, кэширование просто усложняет ситуацию, на мой взгляд. –
Поскольку кеширование - это метод оптимизации, который вы, возможно, захотите построить без него, а затем добавьте кеширование позже, где это необходимо. Таким образом, вам не нужно догадываться, какие части решения работают хорошо или плохо. –