本文主要是介绍Spring Cloud Netflix 微服务的综合治理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
介绍
goalkeeper致力于解决SpringCloudNetflix微服务的综合治理,客户端通过增加不同功能模块,实现了对应用的管理、流量管控监测、路由管理、灰度路由、配置中心等功能,是一个一站化治理平台。
项目地址:goalkeeper in gitee
如果对您有一定的帮助,希望可以给作者一颗小星星,谢谢!
软件架构
安装教程
- 从gitee或github上拉取源码到本地
- 提供一个mysql环境版本>8,执行docs/mysql下的gk.sql的建表脚本
- 修改goalkeeper-server下的dashboard的配置文件的中数据量链接账号密码等参数(上一步配置的参数),编译打包并启动
- 编译打包goalkeeper-sdk下的所有sdk包,并安装到本地maven仓库或远程私有仓库
- 客户端按需引入sdk,并配置链接dashboard的地址、令牌,即可获得该模块的能力
客户端SDK
所有模块都需要依赖于goalkeeper-client-bootstrap
SDK模块 | 说明 |
---|---|
goalkeeper-client-config-sdk | 配置中心模块 |
goalkeeper-client-flow-sdk | 限流模块 |
goalkeeper-client-flow-sdk-webflux-adapter | 限流模块WebFlux适配包 |
goalkeeper-client-route-feign-sdk | 非网关的Feign路由模块 |
goalkeeper-client-route-dubbo3-sdk | 非网关的Dubbo3路由模块(该模块后续会上传) |
goalkeeper-client-route-zuul-sdk | Zuul网关路由模块 |
goalkeeper-client-route-scg-sdk | SpringCloudGateway网关路由模块 |
使用事项
- 如果Dashboard配置了访问令牌和秘钥,则客户端也需要同样配置令牌和秘钥
- goalkeeper的注册中心模块依赖于eureka服务,需要提供eureka服务,如果是其他类型注册中心,则可以忽略该模块
- 自定义的路由规则不影响原有应用实例的区域化部署,比如eureka的zone
- flow sdk、route sdk依赖于config sdk, 即需要同时引入 config sdk
配置示例
客户端SDK配置
- 基础配置
goalkeeper:client:server-addrs: http://127.0.0.1:10500/goalkeeper
- config配置
goalkeeper:config:name: 'DEFAULT'file-extension: 'yaml'group: 'DEFAULT_GROUP'refresh-enabled: true
- flow配置
goalkeeper:flow:name: 'DEFAULT_FLOW'rules:enabled: truelimits:IP:127.0.0.1: 10
- zuul route配置
goalkeeper:route:enabled: truerule:rules:IP:"[127.0.0.1]":callerAppId: "*" # 调用方服务,* 所有服务calleeAppId: "service-u" # 被用方服务,* 所有服务callerKey: "127.0.0.1"callerValue: ""calleeLabel: "gk-route-rule"calleeLabelValue: "v0.2"weight: 100
服务端配置
# 项目配置
goalkeeper:security:token-header: 'Authorization'token-secret: '12345678ABCDEFGH'client-access-key: 'xxxxxxxxxxxxxxx'client-access-secret: 'xxxxxxxxxxxxxx'
最佳实践
- 虽然限流模块可以配置在任一客户端中,但是为了统一方便的管理限流,推荐将限流模块配置在网关集群中即可
- 路由模块支持全链路和单链路,一般来说如果功能重叠不见重复配置多个路由子项,可以在一项完成之后在重新配置一项
功能界面
这篇关于Spring Cloud Netflix 微服务的综合治理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!