isconn

package module
v0.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 4, 2023 License: MIT Imports: 8 Imported by: 0

README

isconn

Inter-service connector

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultNatsDisconnectErrHandler

func DefaultNatsDisconnectErrHandler(logger Logger) nats.ConnErrHandler

func DefaultNatsErrHandler

func DefaultNatsErrHandler(logger Logger) nats.ErrHandler

func DefaultNatsReconnectHandler

func DefaultNatsReconnectHandler(logger Logger) nats.ConnHandler

func NewNatsClient

func NewNatsClient(cfg *Config, logger Logger) (*nats.Conn, error)

func NewNatsJS

func NewNatsJS(cfg *Config, nc *nats.Conn) (nats.JetStreamContext, error)

Types

type Config

type Config struct {
	NatsURL                string
	ServiceName            string
	ServiceVersion         string
	ServiceSubjectPrefix   string
	ConnectTimeout         time.Duration
	ReconnectWait          time.Duration
	TotalWait              time.Duration
	ReconnectBufSize       int
	PublishRetryWait       time.Duration
	MaxWaitResp            time.Duration
	MaxWaitJsPull          time.Duration
	RatryFailedMsgChanSize int
}

func DefaultConfig

func DefaultConfig(name string) *Config

type Logger

type Logger interface {
	Info(args ...interface{})
	Infof(template string, args ...interface{})
	Error(args ...interface{})
	Errorf(template string, args ...interface{})
}

type Manager

type Manager struct {
	NC  *nats.Conn
	JS  nats.JetStreamContext
	Pub *Publisher
	Sub *Subscriber
	Svc *Service
	// contains filtered or unexported fields
}

func NewManager

func NewManager(cfg *Config, logger Logger) (*Manager, error)

func (*Manager) Run

func (m *Manager) Run(ctx context.Context) error

func (*Manager) Stop

func (m *Manager) Stop()

type Publisher

type Publisher struct {
	// contains filtered or unexported fields
}

func NewPublisher

func NewPublisher(cfg *Config, nc *nats.Conn, js nats.JetStreamContext, logger Logger) *Publisher

func (*Publisher) JsPublish

func (p *Publisher) JsPublish(msg *nats.Msg)

func (*Publisher) Publish

func (p *Publisher) Publish(msg *nats.Msg)

func (*Publisher) Request

func (p *Publisher) Request(msg *nats.Msg, timeout time.Duration) (*nats.Msg, error)

func (*Publisher) Run

func (p *Publisher) Run(ctx context.Context) error

type Service

type Service struct {
	// contains filtered or unexported fields
}

func NewService

func NewService(nc *nats.Conn, name, version, groupPrefix string) (*Service, error)

func (*Service) AddEndpoint

func (s *Service) AddEndpoint(subject string, f func(r micro.Request)) error

func (*Service) Info added in v0.0.2

func (s *Service) Info() micro.Info

func (*Service) Stats added in v0.0.2

func (s *Service) Stats() micro.Stats

func (*Service) Stop

func (s *Service) Stop() error

type Subscriber

type Subscriber struct {
	// contains filtered or unexported fields
}

func NewSubscriber

func NewSubscriber(cfg *Config, nc *nats.Conn, js nats.JetStreamContext, logger Logger) *Subscriber

func (*Subscriber) AddChanSyncSubscription

func (s *Subscriber) AddChanSyncSubscription(ctx context.Context, subject string, chanSize, msgLimit, bytesLimit int, f func(m *nats.Msg))

func (*Subscriber) AddJsPullSubscription

func (s *Subscriber) AddJsPullSubscription(ctx context.Context, subject, durable string, batch int, handler func(msgs []*nats.Msg), opts ...nats.SubOpt)

func (*Subscriber) AddSyncSubscription

func (s *Subscriber) AddSyncSubscription(ctx context.Context, subject string, msgLimit, bytesLimit int, f func(m *nats.Msg))

func (*Subscriber) Run

func (s *Subscriber) Run(ctx context.Context) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL