2017
/01 严选 Service Mesh 演进
/02 混合云架构落地实践
/03 规划与展望
## 严选ServiceMesh演进
· 使用
Consul 作为服务发现组件
· 数据面:cNginx
· 控制面:
Consul 管理后台
 | 服务提供方 (Server) |
| 服务注册与发现 | 注册发现:基于Consul | √ | |
| 调用控制 | 协议支持:HTTP 1.X/2.X,可扩展至TCP | √ colspan="2">能力提供方 |
| 服务调用方 (Client) | 服务提供方 (Server) |
| 服务注册与发现 | 注册发现:云外基于Consul,云内基于K8s默认的ETCD | √ | |
| 调用控制 | 协议支持:HTTP 1.X/2.X,GR 0 码力 |
25 页 |
2.07 MB
| 1 年前 3 全程自动化-个人环境
巧妙管理第三方依赖(包括工具链)
自我迭代
(只支持命令行)
开发环境构建:Goflow
’ alt=‘OCR图片’/>
微服务选型:gRPC
使用pb来描述接口
扩展代码生成
使用consul用于服务发现和负载均衡
微服务选型:接口定义
包->服务->方法
可以拥有接口级别的配置
package greeter
service Greeter {
rpc SayHello TraceWithField(err, "dial", name)
}
return &Client{grpcClient}, nil
}
GopherChina 2017
Consul
程序内维护地址列表
polling 获取更新
func (r *Resolver) watchLoop(addrs []string) error {
wp, err := s.s.WebApiHandleResp(ctx, w, resp, err)
}
Webapi生成代码
GopherChina 2017
微服务选型:gRPC + Webapi
consul-template 自动注册路由
找出支持webapi的接口
共享一个端口 (github.com/cockroachdb/cmux)
mux := cmux.New(ln)
if s.GrpcServer 0 码力 |
45 页 |
3.62 MB
| 1 月前 3 致谢
介绍
1 微服务简介
2 Spring Cloud
2.1 服务发现
2.1.1 Eureka
2.1.2 Eureka的高可用
2.1.3 Consul
2.1.4 Consul安装与使用
2.1.5 Consul常用命令
2.1.6 Consul高可用
2.2 服务提供者
2.3 服务消费者
2.3.1 Ribbon
2.3.2. Feign
2.4 熔断器
2.4.1. Hystrix
2 Discovery)是关键原则之一。手动配置每个客户端或某种形式的约定是很难做的,并且很脆弱。 Spring Cloud提供了多种服务发现的实现方式,例如:Eureka、 Consul、Zookeeper。
Spring Cloud支持得最好的是Eureka,其次是Consul,最次是 Zookeeper。
2.1.1 Eureka
2.1.1 Eureka
准备工作
代码示例
代码地址(任选其一)
2.1.1 Eureka c/Brixton.SR5/#spring-cloud-eureka-server
2.1.3 Consul
2.1.3 Consul
2.1.3 Consul
Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,Consul的方案更“一站式”,内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储 0 码力 |
179 页 |
2.57 MB
| 1 月前 3 总体架构-高层视图
灰度发布
APP: Canary
Deployment
APP ...
Jaeger
管控规则
Pilot
Mixer
MSB-SDClient
MSB-Consul
K8s API Server
 _1.jpg)
## Consul Registry遇到的坑:
1.0版本的Consul Registry只能算PoC(原型验证),远未达到产品要求
CPU占用率超高不下 (Pilot+Consul 占用冲高到 400%)
• TIME_WAIT Sockets 太多导致FD耗光
## Consul Registry优化
• 增加数据缓存,减少无谓的Consul Catalog API调用 API调用
• 将Polling改为Watch,大幅降低Consul服务数据变化后的同步时延
## 优化效果
• 200个服务的规模下,CPU占用率降低了一个数量级
• 服务数据变化同步时延从分钟级降低到秒级
• Consul调用导致的TIME_WAIT Sockets数量减少到个位级
## 产品化增强-Ingress API Gateway

Consul 架构

• 注册中心容灾
## ## 注册中心 - Consul
## Datacenter1 (Region1)
## • 架构设计
LEADER FORWARDING
LEADER FORWARDING
• 多地域?
· 多租户?
Consul Server (Follower)
REPLICATION
Consul Server
(Leader)
REPLICATION
Consul Server (Follower) 0 码力 |
38 页 |
1.38 MB
| 1 年前 3 维护到淘汰只有一步之遥,未来的选型将何去何从?
’ alt=‘OCR图片’/>
Spring Cloud 未来走向
选项一:Spring Cloud Zookeeper
选项二:Spring Cloud Consul
选项三:Spring Cloud Kubernetes
选项四:Spring Cloud Alibaba
选项五:Spring Cloud 退化,仅剩 Spring Boot
Spring Cloud Zookeeper
Spring Cloud Consul
Spring Cloud Kubernetes
Spring Cloud Alibaba
分布式配置
Archaius
Zookeeper
Consul
ConfigMap
+Nacos
服务注册与发现
Eureka
Zookeeper
Consul
API Server
+Nacos
服务路由
Zuul
Gateway Spring Cloud 特性强依赖于 Netflix OSS,后者大量组件却处于维护状态,Spring Cloud 的命运存在着不确定性
Spring Cloud Zookeeper 和 Consul 的实现不完整,大部分依赖于 Netflix OSS 组件,难当大任
Spring Cloud Kubernetes 被 Spring Cloud 限制了原生能力,否则 Spring Cloud就没有存在的必要 0 码力 |
31 页 |
1.69 MB
| 1 月前 3
|