- 更改内容支持
- 错误信息回调
- 支持自定义负载均衡
- URL重写功能
- 连接池
- 支持websocket
- 支持HTTPS
- 使用工厂方法拓展
- 使用接口统一封装
- 熔断的意义:熔断器是当前依赖服务已经出现故障时,为了保证自生服务的正常运行不再访问依赖服务,防止 雪崩
- 降级的意义:当服务器压力巨增时,根据业务策略降级,以此释放服务资源保证业务正常。
- hystrix-go 熔断,降级,限流集成类库
- 证书创建
- CA私钥 openssl genrsa -out ca.key 2048
- CA数据证书 openssl req -x509 -new -nodes -key ca,key -subj "/CN=example1.com" -days 5000 -out ca.crt
- 服务器私钥: openssl genrsa -out server.key 2048
- 服务器证书签名请求: openssl req -new -key server.key -subj="/CN=example1.com" -out server.csr
- 上面两个生成服务器证书:openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 5000
本质上是7层反向代理,只是代理的内容是TCP协议包
- 初始化TCP服务器
- 创建上游链接
- 创建下游链接
- 上下游数据交换
TCP代理实现
- 参照 http.util.ReverseProxy实现,服务和代理逻辑分离
- 基于HTTP/2 设计
- 支持普通RPC也支持双向流式传递
- 相对于thrift 🔗可以多路复用,可以传递header头信息
- start go mod:export GO111MODULE=on
- start proxy: export GOPROXY=https://goproxy.io
- grpc go get -u google.golang.org.grpc
- proto go get -u github.com/golang/protobuf/proto
- protoc-gen-go go get -u github.com/golang/protobuf/protoc-gen-go
- echo.proto
- protoc -I . --go_out=plugins=grpc:proto ./echo.proto
- go install github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
- go install github.com/grpc-ecosystem/grpc-gateway/grotoc-gen-swagger
- go install github.com/golang/protobuf/protoc-gen-go
- protoc -I /usr/local/include -I . -I $GOPATH/src/ -I $GOPATH/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis --grpc-gateway_out=logtostderr=true:proto echo-gateway.proto
- 服务发现是指用注册中心来记录服务信息,方便其他服务快速查找已经注册的服务
- 服务发现分类
- 客户端服务发现
- 服务端服务发现
- 分布式数据库, hadoop子项目
- 树状方式维护节点数据的增删该茶
- 监听通知机制:通过监听可以获取相应消息事件