PostgreSQL расширение для работы с NATS
See INSTALL.md for instructions on how to install required system dependencies.
You can fine tune PostgreSQL build options:
cargo pgrx init --configure-flag='--without-icu'
cargo pgrx package
Warning
Before starting the test, NATS-Server should be started on a local host with port 4222.
Warning
You need docker installed for integration testing.
1. Run all tests
cargo pgrx test
2. Skip tests that require JetStream in NATS Server
SKIP_PGNATS_JS_TESTS=1 cargo pgrx test
3. Skip tests that require NATS Server
SKIP_PGNATS_TESTS=1 cargo pgrx test
Rust 1.81.0
cargo-pgrx 0.13.*
-- Конфигурируем
Set nats.host = '127.0.0.1';
Set nats.port = 4222;
Set nats.capacity = 128;
-- Перезагружаем конфигурацию
Select pgnats_reload_conf();
-- Перезагружаем конфигурацию без проверок на изменения конфигураций
Select pgnats_reload_conf_force();
-- Публикация в NATS
Select nats_publish('sub.ject', 'publish_text');
-- Публикация с помощью jetstream (sync)
Select nats_publish_stream('sub.ject', 'publish_text');
-- Функция сохраняет бинарные данные в Key-Value (KV) хранилище NATS JetStream, используя указанный ключ
Select nats_put_binary('bucket', 'key', 'binary data'::bytea);
-- Функция сохраняет текстовые данные в Key-Value (KV) хранилище NATS JetStream, используя указанный ключ
Select nats_put_text('bucket', 'key', 'text data');
-- Функция сохраняет данные в формате Binary Json в Key-Value (KV) хранилище NATS JetStream, используя указанный ключ
Select nats_put_jsonb('bucket', 'key', '{}'::jsonb);
-- Функция сохраняет данные в формате Json в Key-Value (KV) хранилище NATS JetStream, используя указанный ключ
Select nats_put_json('bucket', 'key', '{}'::json);
-- Извлекает бинарные данные по указанному ключу из указанного бакета
Select nats_get_binary('bucket', 'key');
-- Извлекает текстовые данные по указанному ключу из указанного бакета
Select nats_get_text('bucket', 'key');
-- Извлекает Binary Json по указанному ключу из указанного бакета
Select nats_get_jsonb('bucket', 'key');
-- Извлекает Json по указанному ключу из указанного бакета
Select nats_get_json('bucket', 'key');
-- Эта функция удаляет значение, связанное с указанным ключом, из указанного бакета
Select nats_delete_value('bucket', 'key');
При публикации с помощью jetstream
создается стрим с именем субъекта без последнего блока. Спецсимволы (.^?
) заменяются на _
.
Например:
luxmsbi.cdc.audit.events: luxmsbi_cdc_audit
Системные процедуры инициализации расширения
Точка входа в расширение, подключение необходимых модулей
Набор функций, экспортируемых в PostgreSQL
Функции для работы с NATS
Закрытые функции инициализации, настройка параметров по-умолчанию
Список настроек:
nats.host
- Адрес сервера NATS. По-умолчанию127.0.0.1
nats.port
- Порт, на котором работает сервер NATS. По-умолчанию4222
nats.capacity
- Емкость очереди команд в NATS Client. По-умолчанию128
Внутренние функции для работы с NATS-соединением и NATS-stream
Глобальный контекст, в котором хранятся NatsConnection
, tokio-runtime
и LocalSet
Внутренние типы ошибок
Функции тестирования
Вспомогательные функции