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

OSCHINA-MIRROR/favccxx-intellimessage

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Readme.MD 5.1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 27.11.2024 18:49 02beea2

Intelli Message

Intelli Message — это сервис для пересылки и обработки корпоративных сообщений, основанный на Apache Camel. В настоящее время он поддерживает распространённые протоколы обмена сообщениями Kafka и AMQP.

Требования к среде установки:

  • JAVA 8 или более поздней версии;
  • Maven 3.0.0 или более поздняя версия;
  • MongoDB 3.x.

Компоненты приложения:

  • SpringBoot 2.3.4;
  • Camel 2.25.2;
  • Jackson 2.11.3.

Руководство по использованию:

  1. Введите информацию о конфигурации сервера очереди сообщений.

Пользователь может ввести информацию о сервере конфигурации очереди сообщений через http://127.0.0.1:9999/api/v1/msg.

Этот сервис не поддерживает использование одного и того же компонента для пересылки сообщений на один и тот же адрес, поэтому в приведённом ниже примере маршрута используются компоненты AMQP и RabbitMQ.

/* 1 */
{
    "_id" : ObjectId("5f979080c5419a018f3b86c6"),
    "virtualHost" : "/",
    "code" : "fromcode",
    "duribility" : true,
    "exchangeName" : "fromexchange",
    "routingName" : "fromrouting",
    "messageType" : "TOPIC",
    "queueName" : "fromqueue",
    "autoDelete" : false,
    "url" : "172.17.3.100",
    "port" : 5672,
    "username" : "guest",
    "password" : "guest",
    "version" : "3.8.8",
    "type" : "AMQP",
    "createTime" : ISODate("2020-10-27T03:14:08.061Z"),
    "updateTime" : ISODate("2020-10-27T03:14:08.061Z"),
    "_class" : "com.favccxx.message.domain.message.entity.endpoint.AmqpEndPoint"
}

/* 2 */
{
    "_id" : ObjectId("5f979092c5419a018f3b86c7"),
    "virtualHost" : "/",
    "duribility" : true,
    "code" : "tocode",
    "exchangeName" : "toexchange",
    "routingName" : "torouting",
    "messageType" : "TOPIC",
    "queueName" : "toqueue",
    "autoDelete" : false,
    "url" : "172.17.3.100",
    "port" : 5672,
    "username" : "guest",
    "password" : "guest",
    "version" : "3.8.8",
    "type" : "RabbitMQ",
    "createTime" : ISODate("2020-10-27T03:14:26.483Z"),
    "updateTime" : ISODate("2020-10-27T03:14:26.483Z"),
    "_class" : "com.favccxx.message.domain.message.entity.endpoint.RabbitmqEndPoint"
}
  1. Настройте маршрут сообщения.

Процессор сообщений может преобразовывать данные имени и типа сообщения и выполнять соответствующую обработку. Подробнее см. в исходном коде.

{
    "_id" : ObjectId("5f9790d6c5419a018f3b86c8"),
    "routerName" : "cxtestrouter",
    "fromEndPoint" : "5f979080c5419a018f3b86c6",
    "messageFormat" : "JSON",
    "filterInstance" : "",
    "preprocessor" : "",
    "persistence" : false,
    "processor" : "EntityMessageProcessor",
    "processRules" : "{\"level\":\"PROCESS\",\"name\":\"TargetEntity\",\"rules\":[{\"sourceType\":\"String\",\"sourceExpression\":\"$.dateTime\",\"targetName\":\"sendTime\",\"targetType\":\"String\",\"targetDefaultValue\":\"Analog\"},{\"sourceType\":\"String\",\"sourceExpression\":\"$.data.*.id\",\"targetName\":\"myId\",\"targetType\":\"String\",\"targetDefaultValue\":\"hello\"},{\"sourceType\":\"String\",\"sourceExpression\":\"$.data.*.type\",\"targetName\":\"myType\",\"targetType\":\"String\",\"targetDefaultValue\":\"helloType\"},{\"sourceType\":\"String\",\"sourceExpression\":\"$.data.*.value\",\"targetName\":\"myValue\",\"targetType\":\"String\",\"targetDefaultValue\":\"helloValue\"}]}",
    "toEndPoint" : "5f979092c5419a018f3b86c7",
    "status" : true,
    "createTime" : ISODate("2020-10-27T03:15:34.608Z"),
    "updateTime" : ISODate("2020-10-28T10:32:23.030Z"),
    "_class" : "com.favccxx.message.domain.message.entity.router.MessageRouter"
}
  1. Пример сообщения.

Исходное сообщение:

{
  "dateTime": "2020-10-21 11:59:42",
  "data": [
    {
      "id": "36341",
      "value": "0",
      "type": "Analog"
    },
    {
      "id": "36343",
      "value": "0",
      "type": "Analog"
    }]
}

Сообщение после пересылки:

{
  "name": "TargetEntity",
  "dataMap": [
    {
      "myId": "36341",
      "myType": "Analog",
      "myValue": "0",
      "sendTime": "2020-10-21 11:59:42"
    },
    {
      "myId": "36343",
      "myType": "Analog",
      "myValue": "0",
      "sendTime": "2020-10-21 11:59:42"
    }
  ]
}

Лицензия на использование.

В этом проекте используется лицензия Think How to Use It (THOU). Пожалуйста, строго соблюдайте её требования.

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/favccxx-intellimessage.git
git@api.gitlife.ru:oschina-mirror/favccxx-intellimessage.git
oschina-mirror
favccxx-intellimessage
favccxx-intellimessage
master