腾讯分布式服务框架 (Tencent Service Framework,以下简称 TSF) 是一个围绕着应用和微服务的 PaaS 平台,提供应用全生命周期管理、数据化运营和立体化监控等功能。
TSF 拥抱 Spring Cloud 微服务框架,帮助企业客户解决传统集中式架构转型的困难,打造大规模高可用 的分布式系统架构,实现业务、产品的快速落地。TSF 以腾讯云中间件团队多款成熟的分布式产品为核心基础组件,提供秒级推送的分布式配置服 务、链路追踪等高可用稳定性组件。此外,TSF 与腾讯云 API 网关打通,让企业轻松构建大型 分布式系统。
服务注册发现
TSF 服务注册发现包括三个角色,服务提供者,服务调用者和服务注册中心。服务提供者和服务 调用者将地址信息注册到服务注册中心,并从服务注册中心获取所有注册服务的实例列表。TSF 使用 Consul 作为服务注册中心。服务提供者和消费者使用 Spring Cloud Consul 组件来实现与 Consul 服务注册中心集群的通信。
Spring Cloud 支持的服务发现软件以及特性对比:
Consul 介绍
Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其它分布式服务注册与发现的方案,Consul 的方案更“一站式”,内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value 存储、多数据中心方案,不再需要依赖其它工具(比如 ZooKeeper 等)。使用起来也较 为简单。Consul 使用 Go 语言编写,因此具有天然可移植性(支持Linux、windows和Mac OS X);安装包仅包含一个可执行文件,方便部署,与 Docker 等轻量级容器可无缝配合。
Consul 的优势:
- 使用 Raft 算法来保证一致性, 比复杂的 Paxos 算法更直接. 相比较而言, zookeeper 采用的是 Paxos, 而 etcd 使用的则是 Raft。
- 支持多数据中心,内外网的服务采用不同的端口进行监听。多数据中心集群可以避免单数据中心的单点故障,而其部署则需要考虑网络延迟, 分片等情况等。zookeeper 和 etcd 均不提供多数据中心功能的支持。
- 支持健康检查。etcd 不提供此功能。
- 支持 http 和 dns 协议接口。zookeeper 的集成较为复杂, etcd 只支持 http 协议。
- 官方提供 web 管理界面, etcd 无此功能。
- 综合比较, Consul 作为服务注册和配置管理的新星, 比较值得关注和研究。
特性:
- 服务发现
- 健康检查
- Key/Value 存储
- 多数据中心
Consul 角色
- client: 客户端, 无状态, 将 HTTP 和 DNS 接口请求转发给局域网内的服务端集群。
- server: 服务端, 保存配置信息, 高可用集群, 在局域网内与本地客户端通讯, 通过广域网与其它数据中心通讯。每个数据中心的 server 数量推荐为 3 个或是 5 个。
Consul 客户端、服务端还支持夸中心的使用,更加提高了它的高可用性。
Consul 工作原理:
- 当 Producer 启动的时候,会向 Consul 发送一个 post 请求,告诉 Consul 自己的 IP 和 Port
- Consul 接收到 Producer 的注册后,每隔10s(默认)会向 Producer 发送一个健康检查的请求,检验Producer是否健康
- 当 Consumer 发送 GET 方式请求 /api/address 到 Producer 时,会先从 Consul 中拿到一个存储服务 IP 和 Port 的临时表,从表中拿到 Producer 的 IP 和 Port 后再发送 GET 方式请求 /api/address
- 该临时表每隔10s会更新,只包含有通过了健康检查的 Producer
Spring Cloud Consul 项目是针对 Consul 的服务治理实现。Consul 是一个分布式高可用的系统,它包含多个组件,但是作为一个整体,在微服务架构中为我们的基础设施提供服务发现和服务配置的工具。
应用生命周期管理
TSF 提供从创建应用到运行应用的全程管理,功能包括创建、删除、部署、回滚、扩容、下线、 启动和停止应用。TSF 提供应用分组来实现应用的版本控制和灰度发布功能。同时,在 TSF 控 制台上可以设置自定义 JVM 参数。TSF 将每次操作记录下来,用户可以在应用的变更记录页面 中查看和搜索变更记录。
数据化运营
TSF 提供全面的监控和分布式调用链分析工具,帮助用户把握应用上线后的运行状况。监控包括 IaaS 基础监控和应用监控。IaaS 基础监控的指标包括实例 CPU、内存、网络和磁盘 等,应用监控的指标包括应用的 QPS, 请求时间和请求出错率等。分布式调用链分析包括调用链查询和调用链详情。用户可以根据时间范围和服务名等条件来查询 一组调用链。调用链详情显示了请求经过每个服务的层次关系和耗时情况等信息。
应用生命周期管理相关名词
关注公众号 soft张三丰
标签:数据中心,服务,应用,TSF,Consul,注册,腾讯 From: https://blog.51cto.com/u_15501087/5834174