1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/ld-J2Cache

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README_EN.md

J2Cache — двухуровневая система кэширования на основе памяти и Redis

J2Cache представляет собой двухуровневую систему кэширования для Java. Первый уровень кэша использует систему кэширования в памяти, а второй уровень — Redis. Поскольку большое количество операций чтения из кэша приводит к тому, что сеть L2 становится узким местом всей системы, цель L1 состоит в том, чтобы уменьшить количество обращений к L2. Эта система кэширования используется в основном в кластерной среде. Также её можно использовать автономно, чтобы избежать потери данных в памяти при перезапуске приложения.

Мы также предоставили версию Python, пожалуйста, обратитесь к https://gitee.com/ld/Py3Cache.

С версии 1.3.0 J2Cache поддерживает два способа уведомления о событиях кэша, включая JGroups и Redis PubSub. В облачных платформах может быть невозможно использовать режим многоадресной рассылки JGroups, поэтому вы можете выбрать Redis PubSub. Для получения более подробной информации см. описание файла конфигурации в j2cache.properties.

Архитектура двухуровневой системы кэширования J2Cache L1: In-Process Memory Cache Framework (ehcache, caffeine)
L2: Redis Server

Поскольку большой объём операций чтения из кэша вызывает перегрузку пропускной способности сети, целью L1 является уменьшение количества обращений к L2.

Поток данных

  1. Чтение данных -> L1 -> L2 -> БД
  2. Запись данных:
    1. Считывание последних данных из бизнес-системы, обновление L1 -> L2 и затем трансляция события очистки всем узлам в кластере.
    2. При получении события очистки очистить соответствующие данные в памяти.

Настройки J2Cache

Файлы настроек расположены в каталоге core/resources и включают:

  • ehcache.xml для ehcache 2.x
  • ehcache3.xml для ehcache 3.x
  • j2cache.properties — настройки J2Cache, включая конфигурации Redis, пул соединений, трансляцию, сериализацию и т. д.
  • network.xml — настройки сети JGroups, необходимые при настройке j2cache.broadcast = jgroups.

Эти файлы настроек должны находиться в пути к классам, например, WEB-INF/classes.

Как протестировать

  1. Установите Redis.
  2. Измените core/resource/j2cache.properties, чтобы использовать установленные серверы Redis.
  3. Откройте окно командной строки и выполните команду: mvn package -DskipTests=true.
  4. Откройте несколько окон командной строки и запустите runtest.sh.
  5. Введите help в приглашении >, чтобы отобразить список команд.

Maven

<dependency>
  <groupId>net.oschina.j2cache</groupId>  
  <artifactId>j2cache-core</artifactId>  
  <version>xxxxx</version>  
</dependency>

Использование

См. J2CacheCmd.java (https://gitee.com/ld/J2Cache/blob/master/core/src/net/oschina/j2cache/J2CacheCmd.java).

Вопросы

  1. Сценарии использования J2Cache?
    Прежде всего, ваше приложение работает в кластерной среде, J2Cache может эффективно уменьшить объём передачи данных между узлами.
  2. Почему API j2cache не предоставляет срок действия настроек кэша?
    Определение срока действия кэшированных данных в программе приведёт к неконтролируемости кэша. Поскольку трудно найти источник проблемы, невозможно проверить срок действия всех кэшей в J2Cache. Поэтому срок действия всех кешей J2Cache должен быть задан в конфигурации ehcache.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/ld-J2Cache.git
git@api.gitlife.ru:oschina-mirror/ld-J2Cache.git
oschina-mirror
ld-J2Cache
ld-J2Cache
master