Skip to content

Commit 409c335

Browse files
committed
docs: обновлён README - добавлена ссылка на документацию, актуализирован список возможностей
1 parent 75e3fb7 commit 409c335

1 file changed

Lines changed: 71 additions & 42 deletions

File tree

README.md

Lines changed: 71 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,19 @@
22

33
[![Статус порога качества](https://sonar.1cdevelopers.ru/api/project_badges/measure?project=integration_subsystem&metric=alert_status&token=sqb_4fd736b1dca04cda6252313b25beafd7fb501a90)](https://sonar.1cdevelopers.ru/dashboard?id=integration_subsystem)
44

5-
Подсистема создана для оптимизации процесса разработки новых интеграций.
5+
> 📚 **[Документация](https://integration-subsystem-docs.1cdevelopers.ru)** — полное руководство по установке, настройке и использованию подсистемы.
66
7-
Основные задачи и возможности:
7+
Подсистема создана для оптимизации процесса разработки новых интеграций в 1С:Предприятие 8.3.
88

9-
- Берет на себя инфраструктурный слой по формированию, отправке и получению сообщений.
10-
- Контролирет входящие и исходящие потоки данных.
11-
- Проверка соблюдения контрактов при приеме и формировании сообщений
12-
- Мониторинг состаяния подсистемы при помощи Prometheus
13-
- Базовая многопоточность из коробки. Формирование и отправка сообщений в несколько потоков
14-
- Минимальное вмешательство в код основной конфигурации для внедрения
15-
- Произвольные обработчики
9+
## Возможности
10+
11+
- 🔄 **Управление потоками данных** — контроль входящих и исходящих потоков с поддержкой множества подписчиков
12+
-**Валидация по контрактам** — проверка соблюдения контрактов (OpenAPI 3.0) при приёме и формировании сообщений
13+
- 📊 **Мониторинг Prometheus** — сбор метрик состояния подсистемы в реальном времени
14+
-**Многопоточность** — формирование и отправка сообщений в несколько потоков из коробки
15+
- 🔌 **Множество протоколов** — HTTP, RabbitMQ, Kafka, JRPC 2.0
16+
- 🛠 **Произвольные обработчики** — гибкая настройка логики обработки сообщений
17+
- 📝 **Минимальное вмешательство** — простая интеграция в существующую конфигурацию
1618

1719
Оглавление:
1820

@@ -26,63 +28,90 @@
2628

2729
## Подписчики
2830

29-
Каждый исходящий поток может обладать несколькими подписчиками. Подписчики - это системы которые получают сообщения из потока.
31+
Каждый исходящий поток может обладать несколькими подписчиками. Подписчики это системы, которые получают сообщения из потока.
3032

31-
Для каждого подписчика могуть быть заданы свои правила сериализации и валидации сообщений.
33+
Для каждого подписчика могут быть заданы свои правила сериализации и валидации сообщений.
3234

33-
На данный момент реализованы следующие типы подписчиков:
35+
Реализованные типы подписчиков:
3436

35-
- Произвольный http-подписчик.
36-
- Подсистема интеграции. Такая же подсистема интегрированная в другой информационной базе.
37-
- RabbitMQ. Подписчик, который отправляет сообщения в очередь RabbitMQ.
38-
- Jrpc 2.0. Подписчик, который отправляет сообщения по протоколу Jrpc 2.0.
37+
| Тип | Описание |
38+
|-----|----------|
39+
| **HTTP** | Произвольный HTTP-подписчик с настраиваемыми заголовками и методами |
40+
| **Подсистема интеграции** | Интеграция с другой информационной базой через эту же подсистему |
41+
| **RabbitMQ** | Отправка сообщений в очередь RabbitMQ (AMQP) |
42+
| **Kafka** | Публикация сообщений в топики Apache Kafka |
43+
| **JRPC 2.0** | Отправка сообщений по протоколу JSON-RPC 2.0 |
3944

4045
### Пост-Обработка ответов
4146

4247
Для каждого подписчика можно задать обработчик ответов. Обработчик ответов - это произвольный обработчик, который будет вызван после отправки сообщения.
4348
В обработчик будет передан ответ от подписчика, а так же ссылка на исходные данные сообщения.
4449

45-
## Валидаиция
50+
## Валидация
4651

47-
В подсистеме реализован механизм валидации сообщений при приеме и отправке. Валидация происходит на основе контрактов, которые описывают структуру сообщения.
48-
Формат описания контрактов - OpenAPI 3.0.0
52+
В подсистеме реализован механизм валидации сообщений при приёме и отправке на основе контрактов **OpenAPI 3.0**.
4953

50-
Для хранение данных схем реализован справочник `инт_Схемы`. В нем хранится информация о схеме, и сама схема в формате JSON.
51-
Так же реализовано кэширование схем размещенных в удаленных источниках.
54+
- **Справочник `инт_Схемы`** — хранение схем валидации в формате JSON
55+
- **Кэширование** — автоматическое кэширование схем из удалённых источников
56+
- **Валидация payload** — проверка структуры и типов данных сообщений
5257

5358
## Мониторинг
5459

55-
Основные метрики собираются при помощи Prometheus. Для сбора метрик реализован сервис `http://example.com/integration_subsystem/hs/prometheus/polling`, который возвращает данные в формате prometheus.
60+
Подсистема предоставляет метрики в формате Prometheus через HTTP-сервис:
61+
62+
```
63+
GET /integration_subsystem/hs/prometheus/polling
64+
```
65+
66+
### Доступные метрики
5667

57-
### Метрики
68+
| Метрика | Описание |
69+
|---------|----------|
70+
| `pde_queue_length` | Количество сообщений в очереди (по каждой очереди отдельно) |
71+
| `pde_messages_sent_total` | Общее количество отправленных сообщений |
72+
| `pde_messages_failed_total` | Количество сообщений с ошибками |
73+
| `pde_processing_duration_seconds` | Время обработки сообщений |
5874

59-
- pde_queue_length - количество сообщений в очереди. Считается для каждой очереди в отдельности.
75+
## Быстрый старт
6076

61-
## Примеры использования
77+
### Создание исходящего потока
6278

63-
### Добавление нового потока
79+
1. Создайте предопределённый элемент справочника `инт_ПотокиДанных`
80+
2. Определите моменты триггера для отправки сообщений
81+
3. Добавьте регистрацию сообщения в очереди:
6482

65-
#### Создание исходящего потока
83+
```bsl
84+
РегистрыСведений.инт_ОчередьИсходящихСообщений.ЗарегистрироватьСообщение(
85+
ИсходныеДанные, // Ссылка на объект или ФиксированнаяСтруктура
86+
ПотокДанных // СправочникСсылка.инт_ПотокиДанных
87+
);
88+
```
6689

67-
1. Создайте новый предопределенный элемент справочника "инт_ПотокиДанных"
68-
1. Определите моменты триггера для отправки сообщений
69-
1. Добавьте в момент триггера событие регистрации сообщения в очереди отправки(см. функцию ЗарегистрироватьСообщение в [модуле менеджера очереди исходящих сообщений.](src/cf/InformationRegisters/инт_ОчередьИсходящихСообщений/Ext/ManagerModule.bsl))
70-
1. Заполните в режиме предприятия направление потока(Исходящий) и текст обработчика.
71-
1. Добавьте в ТЧ подписчики получателя ваших сообщений.
90+
4. В режиме предприятия заполните направление потока (Исходящий) и текст обработчика
91+
5. Добавьте подписчиков в табличную часть
7292

73-
## Планы на будущее
93+
Подробнее в [документации](https://integration-subsystem-docs.1cdevelopers.ru/guide/create-flow).
7494

75-
- [ ] Добавить возможность приема сообщений в несколько потоков
76-
- [ ] Добавить поддержку протокола JRPC
77-
- [ ] Добавить поддержку протокола AMQP и rabbitMQ
78-
- [ ] Добавить версионирование обработчиков потоков в GIT
79-
- [ ] Добавить поддержку asyncapi для описания контрактов и добавить валидацию не только пэйлоада, но и метаданных
80-
- [x] Добавить поддержку внешних систем мониторинга
81-
- [ ] Добавить динамические подписки на события по потокам
82-
- [ ] Добавить синтаксическую подсказку по полям требуемых объектов на основании схемы контракта
95+
## Roadmap
96+
97+
- [x] ~~Поддержка внешних систем мониторинга (Prometheus)~~
98+
- [x] ~~Поддержка протокола JRPC 2.0~~
99+
- [x] ~~Поддержка RabbitMQ (AMQP)~~
100+
- [x] ~~Поддержка Apache Kafka~~
101+
- [ ] Приём сообщений в несколько потоков
102+
- [ ] Версионирование обработчиков потоков в Git
103+
- [ ] Поддержка AsyncAPI для описания контрактов
104+
- [ ] Динамические подписки на события по потокам
105+
- [ ] Синтаксическая подсказка по полям на основании схемы контракта
83106

84107
## Разработчикам
85108

86-
Информация для разработчиков подсистемы доступна по ссылке [CONTRIBUTING.md](CONTRIBUTING.md)
109+
Информация для разработчиков подсистемы доступна в [CONTRIBUTING.md](CONTRIBUTING.md).
110+
111+
## Ссылки
112+
113+
- 📚 [Документация](https://integration-subsystem-docs.1cdevelopers.ru)
114+
- 📊 [SonarQube](https://sonar.1cdevelopers.ru/dashboard?id=integration_subsystem)
115+
- 🐛 [Issues](https://github.com/Segate-ekb/integration_subsystem/issues)
87116

88117
## Лицензия

0 commit comments

Comments
 (0)