viola package - github.com/CharLemAznable/viola - Go Packages

viola

package module
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Dec 5, 2023 License: MIT Imports: 21 Imported by: 0

README

viola

Build GitHub release (latest by date)

MIT Licence GitHub code size

Quality Gate Status

Reliability Rating Bugs

Security Rating Vulnerabilities

Maintainability Rating Technical Debt Code Smells

Lines of Code Coverage

HTTP容错代理服务.

使用 resilience4go 包装代理请求.

支持:

  • 舱壁隔离
  • 限时
  • 限速
  • 熔断
  • 重试
  • 缓存
  • 故障恢复

配置样例

请参考: config_help.toml

部署执行

  1. 下载最新的可执行文件压缩包并解压

    下载地址: viola release

$ tar -xvJf viola.[version].[os].[arch].tar.xz
  1. 新建/编辑配置文件, 启动运行
$ nohup ./viola.[version].[os].[arch].bin -configFile config.toml &

数据平面

端口号: 22915

控制平面

端口号: 22920

/config: 响应返回当前配置

/metrics: 响应返回Prometheus指标数据

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	RegisterRspFailedPredicate = resilience.RegisterRspFailedPredicate
	RegisterRspCachePredicate  = resilience.RegisterRspCachePredicate
	RegisterFallbackFunction   = resilience.RegisterFallbackFunction
)

Functions

func ShowConfigOf

func ShowConfigOf(dataPlane DataPlane) http.Handler

Types

type BulkheadConfig

type BulkheadConfig = resilience.BulkheadConfig

type CacheConfig

type CacheConfig = resilience.CacheConfig

type CircuitBreakerConfig

type CircuitBreakerConfig = resilience.CircuitBreakerConfig

type Config

type Config struct {
	Endpoint []EndpointConfig

	Defaults Defaults
}

func FormatConfig

func FormatConfig(config *Config) *Config

func LoadConfig

func LoadConfig(data string) (*Config, error)

type DataPlane

type DataPlane interface {
	http.Handler
	RawConfig() *Config
	Update(*Config)
}

func NewDataPlane

func NewDataPlane(config *Config) DataPlane

type Defaults

type Defaults struct {
	Resilience ResilienceConfig
}

type EndpointConfig

type EndpointConfig struct {
	Name string

	Location            string
	StripLocationPrefix string

	TargetURL string

	DumpTransport string
	DumpProxy     string

	Resilience ResilienceConfig
}

type FallbackConfig

type FallbackConfig = resilience.FallbackConfig

type RateLimiterConfig

type RateLimiterConfig = resilience.RateLimiterConfig

type ResilienceConfig

type ResilienceConfig struct {
	Bulkhead       BulkheadConfig
	TimeLimiter    TimeLimiterConfig
	RateLimiter    RateLimiterConfig
	CircuitBreaker CircuitBreakerConfig
	Retry          RetryConfig
	Cache          CacheConfig
	Fallback       FallbackConfig
}

type RetryConfig

type RetryConfig = resilience.RetryConfig

type TimeLimiterConfig

type TimeLimiterConfig = resilience.TimeLimiterConfig

Directories

Path Synopsis
cmd
main command
internal
elf

Jump to

Keyboard shortcuts

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