Skip to content

Allow request Confluent schema registry with multiple brokers in mean time

Notifications You must be signed in to change notification settings

SteveLin100132/-wisrtoni40-confluent-schema

Repository files navigation

wisrtoni40-confluent-schema

Install

npm i wisrtoni40-confluent-schema --save

Table of Contents

Quickstart

Consumer

Full Example

import {
  ConfluentAvroStrategy,
  ConfluentMultiRegistry,
  ConfluentSubResolveStrategy,
} from 'wisrtoni40-confluent-schema';

const registryHost = 'http://localhost:8585,http://localhost:8585,http://localhost:8585';

const schemaRegistry = new ConfluentMultiRegistry(registryHost);
const avro = new ConfluentAvroStrategy();
const resolver = new ConfluentSubResolveStrategy(schemaRegistry, avro);

const data = new Buffer();
resolver.resolve(data).then(val => console.log(val));

Producer

Full Example

import {
  ConfluentAvroStrategy,
  ConfluentMultiRegistry,
  ConfluentPubResolveStrategy,
} from 'wisrtoni40-confluent-schema';

const registryHost = 'http://localhost:8585,http://localhost:8585,http://localhost:8585';
const topic = 'testing.topic'

const schemaRegistry = new ConfluentMultiRegistry(registryHost);
const avro = new ConfluentAvroStrategy();
const resolver = new ConfluentPubResolveStrategy(schemaRegistry, avro, topic);

const data = { name: 'name', age: 18 };
resolver.resolve(data).then(buf => console.log(buf));

Feature

  • 提供多個Brokers的Confluent Avro Schema解析API

API

ConfluentMultiRegistry

Class implements SchemaRegistry,多個Brokers的Confluent Schema Registry

constructor

ConfluentMultiRegistry的建構值

Parameter Type Required Default Description
host string Required undefined Brokers Host 多筆可用,隔開,如: 'http://localhost:8585,http://localhost:8585,http://localhost:8585'

ConfluentAvroStrategy

Class implements AvroResolveStrategy,Confluent Avro Schema的解析策略

ConfluentSubResolveStrategy

Class implements ConsumerResolveStrategy,Confluent Schema Consumer的解析器

constructor

ConfluentSubResolveStrategy的建構值

Parameter Type Required Default Description
schemaRegistry SchemaRegistry Required undefined Schema Registry
avroResolver AvroResolveStrategy Required undefined Avro解析策略

Methods

resolve

將Avro資料解析成特定JSON格式

Parameter Type Required Default Description
input string | Buffer Required undefined 要解析的資料
returns Promise<T> Required undefined 回傳解析後的資料

ConfluentPubResolveStrategy

Class implements ProducerResolveStrategy,Confluent Schema Producer的解析器

constructor

ConfluentPubResolveStrategy的建構值

Parameter Type Required Default Description
schemaRegistry SchemaRegistry Required undefined Schema Registry
avroResolver AvroResolveStrategy Required undefined Avro解析策略
destination string Required undefined 發送資料的目的地

resolve

將特定JSON資料解析成Avro

Parameter Type Required Default Description
input any | any[] Required undefined 要解析的資料
returns Promise<Buffer | Buffer[]> Required undefined 回傳解析後的Avro

About

Allow request Confluent schema registry with multiple brokers in mean time

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published