- 阻止故障的连锁反应
- 快速失败并迅速恢复
- 回退并优雅降级
- 提供近实时的监控和告警
什么是服务雪崩效应
hystrix并没有自带一个仪表盘,无法直观的查看接口的健康状况。所以,我们采用GitHub的一个开源实现hystrix-dashboard。
docker pull hystrix-dashboard
docker run --name hystrix-dashboard -d -p 9002:9002 mlabouardy/hystrix-dashboard:latest
- 限制流量, 在服务端生效
- 保护后端服务
- 与熔断互补
漏桶算法其实非常形象,如下图所示可以理解为一个漏水的桶,当有突发流量来临的时候,会先到桶里面,桶下有一个洞,可以以固定的速率向外流水,如果水从桶中外溢了出来,那么这个请求就会被拒绝掉。具体的表现就会向下图右侧的图表一样,突发流量就被整形成了一个平滑的流量。
将来自客户端的请求均匀的分配到后端多台服务器上,实现负载均衡。
- 第一层micro api网关层
- 第二层聚合业务层BFF层 提高可扩展性
- 第三层基础服务层
- 通过网关请求/greeter/say/hello, 这个路径,网关会将请求转发到go.micro.api.greeter服务的say.hello方法处理。
- go.micro.api 是网关的默认服务名的前缀。
- 路径中/cartApi/cartAPi/findAll 可以写成/cartAPi/findAll
- cart需求分析和项目目录创建
- cart代码开发
- cart 加入熔断,限流, 负载均衡。
- api网关使用及最终效果展示。
This is the Cart service
Generated with
micro new --namespace=go.micro --type=service cart
- FQDN: go.micro.service.cart
- Type: service
- Alias: cart
Micro services depend on service discovery. The default is multicast DNS, a zeroconf system.
In the event you need a resilient multi-host setup we recommend etcd.
# install etcd
brew install etcd
# run etcd
etcd
A Makefile is included for convenience
Build the binary
make build
Run the service
./cart-service
Build a docker image
make docker