【文件属性】:
文件名称:weaver:具有动态分片策略的高级HTTP反向代理
文件大小:200KB
文件格式:ZIP
更新时间:2021-02-03 14:27:37
go golang proxy proxy-server sharding
Weaver-具有高级功能的现代HTTP代理
描述
Weaver是具有动态分片策略的第7层负载均衡器。 它是具有高级功能的现代HTTP反向代理。
特征:
基于标题/路径/正文字段的分片请求
对每个后端每个路由的请求发出度量
动态配置不同的路由(不重新启动!)
快
支持用于分片请求的多种算法(一致的哈希,模,s2等)
打包为单个自包含二进制文件
登录失败(可观察性)
安装
从源代码构建
克隆仓库:
git clone git@github.com:gojektech/weaver.git
构建以创建weaver二进制文件
make build
各种架构的二进制文件
下载的二进制文件从释放:
建筑
Weaver使用etcd作为控制平面,以将传入的请求与特定的路由配置进行匹配,并根据某种分片策略将流量分片到不同的后端。
可以通过名为ACL的简单路由配置将Weaver配置为与具有不同分片策略的不同路径匹配的不同路由。
weaver支持的各种分片策略是:
一致的哈希(哈希)
基于简单的查询
模数
前缀查询
基于S2
部署到Kubernetes
目前,我们支持正式部署到kube
【文件预览】:
weaver-master
----.gitignore(804B)
----go.mod(4KB)
----Dockerfile(388B)
----Makefile(2KB)
----server()
--------mock.go(483B)
--------router.go(1KB)
--------server.go(1KB)
--------recovery.go(868B)
--------error.go(2KB)
--------wrapped_response_writer.go(442B)
--------loader.go(314B)
--------error_test.go(1KB)
--------handler.go(2KB)
--------router_test.go(4KB)
--------handler_test.go(6KB)
--------recovery_test.go(772B)
----pkg()
--------instrumentation()
--------util()
--------matcher()
--------shard()
--------logger()
----.travis.yml(2KB)
----endpoint.go(2KB)
----backend_test.go(724B)
----CONTRIBUTING.md(2KB)
----LICENSE(11KB)
----go.sum(17KB)
----docker-compose.yml(1KB)
----weaver.conf.yaml.sample(656B)
----examples()
--------body_lookup()
----README.md(4KB)
----backend.go(1KB)
----sharder.go(80B)
----deployment()
--------weaver()
----config()
--------config_test.go(2KB)
--------statsd.go(894B)
--------proxy.go(1KB)
--------newrelic.go(305B)
--------config.go(3KB)
----acl_test.go(786B)
----goreleaser.yml(224B)
----docs()
--------weaver-logo.png(57KB)
--------weaver_architecture.png(103KB)
--------weaver_acls.md(8KB)
----endpoint_test.go(1KB)
----cmd()
--------weaver-server()
----etcd()
--------routeloader_test.go(7KB)
--------routeloader.go(5KB)
--------aclkey.go(467B)
----acl.go(501B)