介绍
企业级微服务架构(源码地址),Gateway是很重要的组件之一
spring cloud gateway 响应式网关,基于nacos实现动态网关,基于sentinel实现动态限流,sentinel基于nacos数据持久化
软件架构
版本号:gateway、nacos、sentinel的版本号参考父级项目occo-parent
安装教程
-
启动限流服务Sentinel 文档地址:Sentinel文档 下载地址:Sentinel下载
-
启动网关
- 下载occo-gateway启动项目
- 启动gateway
- 在nacos中建《路由》配置:
Data ID: gateway_router Group:DEFAULT_GROUP (默认的) 配置内容:[{"id":"user-server","uri":"lb://kb-user-center","order":0,"predicates":[{"args":{"pattern":"/user/**"},"name":"Path"}],"filters":[{"name":"StripPrefix","args":{"_genkey_0":"1"}}]},{"id":"sso-server","uri":"lb://kb-user-center","order":0,"predicates":[{"args":{"pattern":"/sso/**"},"name":"Path"}],"filters":[{"name":"StripPrefix","args":{"_genkey_0":"1"}}]}] (JSON格式) 配置字段说明: ① id:路由的名字; ② uri:路由的地址,lb表示去那儿一个服务,kb-user-center是nacos注册中心的服务名; ③ order:0 ,直接配置为0,为1是请求的url就会带服务名; ④ predicates: After路由匹配:匹配指定时间之后的请求: name=After ,_genkey_0=2020-01-20T17:42:47.789-07:00[America/Denver] Before路由匹配:匹配指定时间之前的请求: name=Before,_genkey_0=2020-01-20T17:42:47.789-07:00[America/Denver] Between路由匹配:匹配指定时间区间的请求: name=Before,_genkey_0=时间一 ,时间二 (PS:两个时间逗号隔开) Cookie路由匹配:匹配指定Cookie的值匹配请求: name=Cookie, _genkey_0=chocolate, ch.p (PS:匹配cookie名为chocolate的值为ch.p的请求) Header路由匹配:匹配指定header的值匹配请求: name=Header, _genkey_0=X-Request-Id, \d+ (PS:匹配头信息X-Request-Id的值匹配\d+的正则表达式) Host路由匹配:Host匹配设定的表达式: name=Host, _genkey_0=**.fuse.org Method路由匹配:匹配HttpMethod方法