oim-server — это серверная часть системы чата OIM, разработанная на языке Java и использующая микросервисную архитектуру Spring Cloud. Пока машины достаточно, пользователи не являются проблемой.
Сервис OIM представляет собой набор серверов обмена мгновенными сообщениями, разработанный с использованием языка Java и основанный на системе микросервисов Spring Cloud. Предоставляются развертываемые решения: от автономных машин до микросервисов, причем как автономные машины, так и микросервисы можно плавно переключать, и клиент может не знать об изменениях в услугах.
Функции
oim-server позволяет разрабатывать интерфейсы обмена мгновенными сообщениями, такие как Spring MVC. Для разработчиков, у которых есть опыт веб-разработки, но нет опыта работы с серверами мгновенных сообщений, они могут легко конвертировать и совместимы с веб-интерфейсами Spring. Пример, как показано ниже
Интерфейс запроса @RestControllerpublic class UserController {/** * * Вход
* Дата 2019-02-17 12:26:38
* * @param user * @since 1.0.0 */@ActionMapping(value = " /user/login") // Этот маршрут также может использовать http-сообщение для запроса общедоступного входа пользователя(@Define("body.user") User user) { // "body.user" (это тело является полем тела в json, а не телом протокола http) // Это путь к атрибуту json тела сообщения в http или tcp {"body":{"user":{ }}}// ...опустить содержимое реализации, вернуть пользователя;}}
Описание каталога
|__oim-server-run #Java-сервис|__cloud #Работающая версия микросервиса|__common #Публично зависимый jar |__oim-server-element-basic-* #Это части, от которых зависят как автономные сервисы, так и микросервисы, включая некоторые абстрактные определения . Службы и автономные машины имеют разные реализации|__oim-server-element-cloud-* #Это зависимости, необходимые для микросервисов, некоторые реализации для микросервисов|__service #Каждый запущенный микросервис|__core. #В основном микросервисы типа технического управления, такие как: центр регистрации, шлюз и т. д. |__action #Соберите адреса интерфейсов всех сервисов, чтобы шлюз мог напрямую обращаться к соответствующим сервисам через адрес интерфейса без настройки имени сервиса |__admin #Only интегрирован с администратором весенней загрузки |__center #Центр регистрации|__gateway #Gateway|__net #Службы длинных подключений, такие как TCP и WebSocket для обмена мгновенными сообщениями|__control используется для управления (сетевыми) службами длинных подключений пользовательских клиентов|__work пользовательских клиентских длинных соединений услуги|__поддержка #Службы общественной поддержки, такие как: загрузка файлов |__файл |__система #Конфигурация всей системы, общие данные и т. д. |__настройка # |__работа #Бизнес-услуги (поскольку бизнес слишком длинный, есть и другие места, где это имя легко use) |__chat # Chat business|__contact #Contact|__core #Core: user|__group #Group|__portal #Вход по служебному адресу|__single # |__oim-server-single-main # Поскольку функциональные модули автономных и микросервисов являются общими, вот несколько абстрактных автономных реализаций|__oim-server-single-running #Начать настройку сервиса|__oim-server-web # Интерфейс фонового управления Vue
Инструкция по разработке OIM
1. Экологические требования
JDK 1.8.0_xxx
БД поддерживает MySQL Oracle SQL-сервер. Рекомендуется MySQL 8.0.
Микросервисам также необходимо следующее
Редис
РаадфдситMQ
2. О версии микросервиса и ее использовании
Бизнес-код и бизнес-код версии микросервиса являются общими, поэтому все бизнес-модули находятся в каталоге микросервиса. Есть только различия в обработке длинных соединений IM, поэтому с автономными машинами и микросервисами необходимо обращаться по-разному.
Это место абстрагируется в интерфейс и реализуется в различных службах запуска.
3. По поводу некоторых зависимостей, которые нельзя скачать
Поскольку некоторые зависимости не были опубликованы в центральной библиотеке maven, но находятся в моей частной библиотеке, их нельзя настроить в файле глобальной конфигурации maven (обычно в пользовательском каталоге.m2/setting.xml).
Зеркальный сервис (прокомментируйте или удалите среднюю часть)
Проект конфигурации maven частной библиотеки настроен.
4. О скриптах базы данных
Просто сначала создайте базу данных, измените конфигурацию базы данных и запустите автоматическое создание таблиц. В настоящее время существует проблема с созданием таблиц в базе данных H2 по умолчанию. Рекомендуется использовать MySQL 8.0.