mucp

package
v3.8.8 Latest Latest
Warning

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

Go to latest
Published: Aug 31, 2022 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Overview

Package mucp transparently forwards the incoming request using a go-micro client.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewProxy

func NewProxy(opts ...proxy.Option) proxy.Proxy

NewProxy returns a new proxy which will route based on mucp headers

Types

type Proxy

type Proxy struct {

	// Endpoint specifies the fixed service endpoint to call.
	Endpoint string

	// The client to use for outbound requests in the local network
	Client client.Client

	// Links are used for outbound requests not in the local network
	Links map[string]client.Client

	// The router for routes
	Router router.Router

	// A fib of routes service:address
	sync.RWMutex
	Routes map[string]map[uint64]router.Route

	// selector used for load balancing
	Selector selector.Selector
	// contains filtered or unexported fields
}

Proxy will transparently proxy requests to an endpoint. If no endpoint is specified it will call a service using the client.

func NewSingleHostProxy

func NewSingleHostProxy(endpoint string) *Proxy

NewSingleHostProxy returns a proxy which sends requests to a single backend

func (*Proxy) ProcessMessage

func (p *Proxy) ProcessMessage(ctx context.Context, msg server.Message) error

ProcessMessage acts as a message exchange and forwards messages to ongoing topics TODO: should we look at p.Endpoint and only send to the local endpoint? probably

func (*Proxy) ServeRequest

func (p *Proxy) ServeRequest(ctx context.Context, req server.Request, rsp server.Response) error

ServeRequest honours the server.Router interface

func (*Proxy) String

func (p *Proxy) String() string

Jump to

Keyboard shortcuts

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