Сервис кэширования данных - JMemcached
0.0 (0 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
17 students enrolled

Сервис кэширования данных - JMemcached

Программирование на Java
0.0 (0 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
17 students enrolled
Created by DevStudy .net
Last updated 11/2018
Russian
Current price: $9.99 Original price: $19.99 Discount: 50% off
30-Day Money-Back Guarantee
This course includes
  • 6.5 hours on-demand video
  • 3 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to Udemy's top 3,000+ courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Разрабатывать сетевой протокол для взаимодействия по сети;
  • Создавать несколько модулей для Вашего проекта;

  • Использовать интерфейсы для создания слабых связей в приложении;

  • Создавать Unit тесты для всех модулей Вашего проекта;
  • Запускать java приложение как автономный Windows сервис.
Course content
Expand 16 lectures 06:38:03
+ Проектирование и разработка
16 lectures 06:38:03
  1. Описание проекта

  2. Детали проекта

  3. Формализованное описание Jmemcached-client: команды и статусы команд

  4. Пример использования jmemcached в отдельном Java проекте

  5. Схема взаимодействия компонентов

  6. Архитектура Jmemcached server

  7. Этапы разработки проекта

Preview 16:13
  1. Определение сетевого протокола

  2. Описание протокола

  3. Формат пакета запроса

  4. Назначение флагов и длина пакета запроса

  5. Формат пакета ответа

Описание протокола
19:03
  1. Добавление плагинов и зависимостей в pom.xml

  2. Создание классов исключений для проекта

  3. Перечисления Version, Command и Status

  4. Модели запроса и ответа: Request, Response

  5. Интерфейс конвертера запросов RequestConverter

  6. Интерфейс конвертера ответов ResponseConverter

  7. Интерфейс сериализатора объектов ObjectSerializer

Модуль jmemcached-common, модели и основные интерфейсы
29:19
  1. Реализация сериализатора DefaultObjectSerializer

  2. Реализация конвертера ответов DefaultResponseConverter

  3. Реализация конвертера запросов DefaultRequestConverter

Реализация конвертеров и сериализатора
31:59
  1. Unit тесты для перечислений Version, Command, Status

  2. Unit тесты для моделей запроса и ответа: Request, Response

  3. Unit тесты для сериализатора DefaultObjectSerializer

Unit тесты для моделей и сериализатора
33:10
  1. Unit тесты для абстрактного конвертера AbstractPackageConverter

  2. Unit тесты для конвертера запросов DefaultRequestConverter

  3. Unit тесты для конвертера ответов DefaultResponseConverter

  4. Оценка степени покрытия тестами

Unit Тесты для конвертеров
32:41
  1. Добавление плагинов и зависимостей в pom.xml

  2. Интерфейс клиента: Client

  3. Интерфейс настроек клиента: ClientConfig

  4. JMemcachedClientFactory - фабрика создания клиентов

  5. Реализация настроек клиента DefaultClientConfig

  6. Создание тестового класса ExternalProject, моделирующего отдельный проект, использующий jmemcached-client

Модуль jmemcached-client, основные интерфейсы
14:58
  1. Реализация DefaultClient

  2. Изменения в JMemcachedClientFactory

Preview 11:48
  1. Unit тесты для DefaultClientConfig

  2. Unit тесты для DefaultClient

  3. Оценка степени покрытия тестами

Unit тесты для модуля jmemcached-client
25:14
  1. Добавление плагинов и зависимостей в pom.xml

  2. Интерфейс сервера Server

  3. Интерфейс настроек сервера ServerConfig

  4. Интерфейс хранилища данных типа ключ-значение Storage

  5. Интерфейс диспетчера обработки команды CommandHandler

  6. Интерфейс рабочего потока соединения ClientSocketHandler

  7. Класс запуска сервера CLI

  8. Класс-оболочка для запуска сервера как Windows сервис ServiceWrapper

  9. Фабрика создания JMemcached сервера JMemcachedServerFactory

Модуль jmemcached-server, основные интерфейсы
20:36
  1. Создание внутреннего класса для хранения данных в карте StorageItem

  2. Создание внутреннего класса для автоматического удаления устаревших данных ClearExpiredDataJob

  3. Реализация хранения данных типа ключ-значение на основе конкурентной хеш таблицы DefaultStorage

Реализация DefaultStorage
27:21
  1. Реализация интерфейса настроек сервера DefaultServerConfig

Preview 16:28
  1. Реализация интерфейса диспетчера обработки команды DefaultCommandHandler

  2. Реализация интерфейса рабочего потока соединения DefaultClientSocketHandler

Реализация DefaultCommandHandler и DefaultClientSocketHandler
18:28
  1. Реализация интерфейса jmemcached сервера DefaultServer

  2. Реализация диспетчера соединений

Реализация DefaultServer
30:23
  1. Unit тесты для DefaultClientSocketHandler

  2. Unit тесты для DefaultCommandHandler

  3. Unit тесты для DefaultServer

  4. Unit тесты для DefaultServerConfig

  5. Unit тесты для DefaultStorage

  6. Unit тесты для внутренних классов DefaultStorage

  7. Оценка степени покрытия тестами

Unit тесты для модуля jmemcached-server
28:01
  1. Демонстрация работы сервера для следующих сценариев

    1. Корректное взаимодействие между клиентом и сервером;

    2. Остановка клиента во время работы сервера;

    3. Остановка сервера во время работы клиента;

    4. Превышение количества подключений клиентов к серверу;

    5. Обработка ошибок в логике сервера.

  2. Направления улучшения работы jmemcached

    1. Использование неблокирующего IO для архитектуры jmemcached-server;

    2. Использование off-heap области памяти для решения проблем медлительности сборщика мусора Java;

    3. Варианты ручного управления памятью для реализации логики затирания новыми объектами наименее используемых старых объектов в хеш таблице

  3. Создание Windows сервиса для jmemcached-server

  4. Запуск jmemcached-server через командную строку Windows

Демонстрация работы проекта, направления улучшения и сдача заказчику
42:21
Requirements
  • Знание Java core: (Classes, IO, Collections, Exceptions, Sockets)
Description

Данный курс предназначен для закрепления основ Java Standart Edition  на примере разработки сервиса кэширования данных JMemcached, который  является упрощенным  Java аналогом популярного решения memcached.

Сервис JMemcached является многопоточным автономным сервисом,  позволяющим взаимодействовать по сети со всеми его клиентами. Данный  сервис хранит данные на основе хеш карты и позволяется выполнять  операции добавления, получения и удаления любого значения по ключу, а  также операции очистки всей карты. При добавлении значения по ключу  возможно указать время жизни данного объекта и по истечении данного  времени объект будет автоматически удален из карты хранения данных.

За исключением теоретического описания разрабатываемого протокола  сетевого взаимодействия, на всех уроках данного курса практически  разрабатывается данное приложение, т.е. в данном курсе нет теоретических  лекций, а на протяжении всех уроков данного курса разрабатывается  приложение начиная с постановки задачи и заканчивая сдачей проекта  заказчику.

В качестве среды разработки используется среда Intellij IDEA,  конечный продукт запускается как автономный сервис в операционной  системе Windows как обычная служба.

Основной цель данного курса является практически закрепить знания по основам JSE  и продемонстрировать процесс разработке приложения на реальном проекте, последовательно проходя все этапы разработки.

Who this course is for:
  • Данный курс предназначен для закрепления основ Java Standart Edition на примере разработки сервиса кэширования данных JMemcached, который является упрощенным Java аналогом популярного решения memcached