# 网关配置
# 网关
网关地址:https://gateway-test.tq-service.com
1.所有服务统一通过网关对外访问
2.正式服务器将只有网关一个对外出入口,其余服务原则上只能集群内部访问
3.新增服务须到nacos 配置中心配置访问规则方可访问
4.到nacos配置中心->系统工具列表下,服务中gateway-router.json文件配置route
eg:
{
"id":"client",
"order":0,
"predicates":[
{
"args":{
"pattern":"/client/**"
},
"name":"Path"
}
],
"uri":"lb://nacos服务名称/"
}
配置好后即可通过网关访问自己的服务:网关/(服务名)/(服务内部函数地址)
如:https://gateway-test.tq-service.com/client/api/demo?t=demo
# http方式配置
{
"id":"example",
"order":0,
"predicates":[{"args":{"pattern":"/example/**"}, "name":"Path"}],
"uri":"http://ip:port/example/"
},
# nacos服务方式配置
{
"id":"example",
"order":0,
"predicates":[{"args":{"pattern":"/example/**"}, "name":"Path"}],
"uri":"lb://nacos服务名称/example/"
},
# sentinel
系统集成sentinel流控,实现流量控制,熔断降级,排队,负载,QPS
# 集成方法
- 1.引入sentinel核心包
<dependency>
<groupId>com.jinke.ts</groupId>
<artifactId>ts-module-sentinel</artifactId>
<version>${ts.last.version}</version>
</dependency>
- 2.新增配置,在bootstrap.yaml新增以下配置,开启服务
feign:
sentinel:
enabled: true
- 3.新增sentinel服务地址配置
spring:
cloud:
sentinel:
transport:
dashboard: sentinel-dashboard.tq-midware.svc.cluster.local:8080
- 4.完成以上配置后登录后端管理系统即可查看对应的服务
- 注意:新服务注册需要触发一次对应服务的接口,否则平台无法查看
# 引入feign
- 首先引入包
<dependency>
<groupId>com.jinke.ts</groupId>
<artifactId>ts-module-feign</artifactId>
<version>${ts.last.version}</version>
</dependency>
- 参照demo编写相应功能
/**
* @author xiangjx
* @date 2020-5-9 16:32
* @Version 1.0
* 这里的名称为项目服务名称 spring.application.name
**/
@FeignClient(name = "pay-center-server",fallback = EchoServiceFallback.class)
public interface IDemoService {
/**
* context-path: service 名称发生改变SDK也要修改
* RequestParam 为必须
* @param t
* @return
*/
@RequestMapping(value = "server/api/demo", method = RequestMethod.GET)
String demo(@RequestParam("t") String t);
/**
* @author xiangjx
* @date 2020-8-19 15:01
* @Version 1.0
**/
public class EchoServiceFallback implements IDemoService{
public String demo(String t) {
return "fallback";
}
}
/**
* @author xiangjx
* @date 2020-8-19 15:01
* @Version 1.0
**/
public class EchoServiceFallback implements IDemoService{
public String demo(String t) {
return "fallback";
}
}
}