Back-end компоненты после совместного использования компонентов — высокопроизводительный и гибкий бентос потокового процессора на базе Golang
фон
В последнее время мы изучаем различные общие компоненты и инструменты на стороне интерфейса, сервера и системы и реорганизовали некоторые из общих компонентов, чтобы сформировать тему стандартизированных компонентов, которая позже будет включать некоторые часто используемые компоненты на разных языках. . Приветствую всех, чтобы продолжать обращать внимание.
Основная информация о компоненте
- Компоненты: бентос
- Соглашение об открытом исходном коде: лицензия MIT
- Официальный сайт: www.benthos.dev
содержание
В этом разделе мы делимся высокопроизводительным и эластичным потоковым процессором benthos на базе Golang , который может подключать различные источники и стоки в различных режимах прокси , а также выполнять гидратацию, обогащение, преобразование и фильтрацию полезной нагрузки .
Он поставляется с мощным языком сопоставления , прост в развертывании и мониторинге и может быть добавлен в ваш конвейер как статический двоичный файл, образ докера или бессерверная функция , что делает его облачным.
Бентос полностью декларативен, потоковые пайплайны определяются в одном конфигурационном файле, что позволяет указать список коннекторов и стадий обработки:
input:
gcp_pubsub:
project: foo
subscription: bar
pipeline:
processors:
- bloblang: |
root.message = this
root.meta.link_count = this.links.length()
root.user.age = this.user.age.number()
output:
redis_streams:
url: tcp://TODO:6379
stream: baz
max_in_flight: 20
Поддерживаемые источники и приемники
Apache Pulsar, AWS (DynamoDB, Kinesis, S3, SQS, SNS), Azure (хранилище BLOB-объектов, хранилище очередей, хранилище таблиц), Cassandra, Elasticsearch, File, GCP (Pub/Sub, облачное хранилище), HDFS, HTTP (сервер и клиент, включая веб-сокеты), Kafka, Memcached, MQTT, Nanomsg, NATS, NATS JetStream, NATS Streaming, NSQ, AMQP 0.91 (RabbitMQ), AMQP 1, Redis (потоки, список, pubsub, хэши), MongoDB, SQL (MySQL, PostgreSQL, Clickhouse, MSSQL), Stdin/Stdout, TCP и UDP, сокеты и ZMQ4.
Конкретное использование заключается в следующем:
1. установка докера
# Using a config file
docker run --rm -v /path/to/your/config.yaml:/benthos.yaml jeffail/benthos
# Using a series of -s flags
docker run --rm -p 4195:4195 jeffail/benthos \
-s "input.type=http_server" \
-s "output.type=kafka" \
-s "output.kafka.addresses=kafka-server:9092" \
-s "output.kafka.topic=benthos_topic"
Для конкретных случаев использования обратитесь к этому документу
, Для получения инструкций по настройке более сложных концепций обработки потоков (таких как потоковые соединения, расширенные рабочие процессы и т. д.) см. раздел руководства .
Чтобы получить рекомендации по созданию собственных пользовательских плагинов в Go, ознакомьтесь с общедоступным API.
В этой статье заявляется:
Эта работа лицензирована CN Hua Shao в рамках международной лицензии Creative Commons Attribution-Noncommercial 4.0.