- RPC调用过程的参与者主要涉及两个角色:主调方和被调方 。
- 首先,被调方使用
服务注册
功能 , 向北极星注册自身服务数据,包括节点列表,治理规则等 。 - 第二,主调方通过
服务发现
功能,拉取被调方的全量服务数据 。 - 第三,主调方通过
路由和负载均衡
功能,筛选出一个合适的被调方实例,进行RPC调用 。 - 第四,主调方记录RPC调用的成功失败结果,通过
熔断降级
功能,剔除出现故障的被调方节点 。 - 第五 , 北极星通过
健康检查
功能,主动剔除已经下线的被调方节点 。 - 第六,被调方通过
访问限流
功能 , 保护自身不被主调方的异常流量给击溃 。
- 服务名:服务的唯一标识,区分大小写 。
- 服务元数据:服务的标签信息 , KV格式,可对服务进行分类 , 可用于过滤 。
- 服务实例:提供服务的节点列表,以IP:PORT的方式提供 。
- 服务实例元数据:服务实例的标签信息,KV格式,通常用于描述节点的集群、版本等,用于后续流量治理等操作 。
文章插图
支持以下4种服务注册方式:
- 通过SDK注册:北极星提供了多语言SDK,服务可以通过集成SDK,调用registerInstance接口完成服务注册 。
- 通过服务框架注册:服务一般与服务框架集成(比如Spring Cloud Tencent (opens new window)) , 框架本身会提供服务自动注册功能,服务启动后,框架会将服务信息自动注册到北极星 。
- 通过k8s同步的方式注册:用户通过k8s部署服务,并注册为k8s的service,北极星通过controller的机制,从k8s中将service和endpoint信息同步到北极星 , 完成服务注册 。
- 通过OpenAPI注册:北极星控制面提供基于Rest标准的OpenAPI,用户可通过OpenAPI完成服务注册的操作 。
文章插图
支持以下4种方式进行服务发现:
- 通过SDK服务发现:北极星提供了多语言SDK,服务可以通过集成SDK,调用getAllInstances接口完成全量服务列表拉取 。
- 使用框架服务发现:北极星支持对接多个主流的服务框架(比如Spring Cloud Tencent (opens new window)),主调方服务通过服务框架进行发现RPC请求,即可通过框架内部扩展机制使用北极星服务发现能力 。
- 使用sidecar服务发现:北极星提供服务网格能力 , 服务程序可以基于sidecar的方式,通过DNS或者流量拦截,进行服务发现 。
- 使用OpenAPI服务发现:北极星控制面提供基于Rest标准的OpenAPI , 用户可通过OpenAPI完成服务发现的操作 。
文章插图
组件类型功能说明polaris最新stable版本系统组件服务治理控制面polaris-console最新stable版本系统组件服务治理控制台MySQL
>= 5.7
第三方依赖服务数据存储Redis>=4.0
第三方依赖心跳状态数据缓存Prometheus>=2.28.0
第三方依赖可观测性集群安装- 初始数据导入
# 下载polaris最新版本v1.12.1wget https://github.com/polarismesh/polaris/releases/download/v1.12.1/polaris-server-release_v1.12.1.linux.amd64.zip# 下载polaris-console最新版本v1.9.1wget https://github.com/polarismesh/polaris-console/releases/download/v1.9.1/polaris-console-release_v1.9.1.linux.amd64.zip# 解压polaris-serverunzip polaris-server-release_v1.12.1.linux.amd64.zip# 解压polaris-consoleunzip polaris-console-release_v1.9.1.linux.amd64.zip# 进入polaris-server目录cd polaris-server-release_v1.12.1.linux.amd64# 执行mysql脚本导入到mysql数据库mysql -u root -p 123456 -h 192.168.50.100 < store/sqldb/scripts/polaris_server.sql
将文件拷贝到两台服务器上,下面操作两台一样- 配置数据库参数:修改polaris-server.yaml里面的store配置,去掉单机文件存储的boltdbStore相关配置,并放开defaultStore相关配置 。
推荐阅读
- 四十八 SpringCloud微服务实战——搭建企业级开发框架:【移动开发】整合uni-app搭建移动端快速开发框架-使用第三方UI框架
- Dapr实现.Net Grpc服务之间的发布和订阅,并采用WebApi类似的事件订阅方式
- Silky微服务框架之模块
- 一篇文章带你了解轻量级Web服务器——Nginx简单入门
- iphone12有无线充电吗_iphone12可以使用无线充电吗
- 如何转账到支付宝(支付宝不绑卡怎么把钱转到微信)
- Seata 环境搭建
- 四十七 SpringCloud微服务实战——搭建企业级开发框架:【移动开发】整合uni-app搭建移动端快速开发框架-添加Axios并实现登录功能
- 记录一次sshd服务启动失败
- 微信小程序仿手机相册组件——简单版