简介:网关Gateway项目开发和配置
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<!--添加nacos客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
server:
port: 8889
spring:
application:
name: api-gateway
cloud:
#注册中心地址
nacos:
discovery:
server-addr: 112.74.55.160:8848
gateway:
routes: #数组形式
- id: product-service #商品服务 路由唯一标识
uri: lb://xdclass-product-service #从nocas进行转发
order: 1 #优先级,数字越小优先级越高
predicates: #断言 配置哪个路径才转发,前端访问路径统一加上XXX-server,网关判断转发对应的服务,如果是回调业务记得修改
- Path=/product-server/**
filters: #过滤器,请求在传递过程中通过过滤器修改
- StripPrefix=1 #去掉第一层前缀,转发给后续的路径
#开启网关拉取nacos的服务
discovery:
locator:
enabled: true
#设置日志级别,ERROR/WARN/INFO/DEBUG,默认是INFO以上才显示
logging:
level:
root: INFO
com.alibaba.nacos.client.config.impl: WARN
简介:1024电商平台整体功能测试验证《上》
简介:1024电商平台整体功能测试验证《下》
简介:微服务配置中心引入和配置
<!--配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
spring:
application:
name: xdclass-order-service
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848 #Nacos配置中心地址
file-extension: yaml #文件拓展格式
profiles:
active: dev
浏览器访问
http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=xdclass-coupon-service-dev.yaml&group=DEFAULT_GROUP
部分同学如果出现 config dta not exist 建议重启nacos
除开上述问题,如果还是拉取不到配置(保持和课程版本,文件名一样先)
重新构建下项目
mvn clean package -U
然后重启IDEA
${prefix}-${spring.profiles.active}.${file-extension}
prefix 默认为 spring.application.name 的值
spring.profiles.active 即为当前环境对应的 profile
当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。
简介:1024电商平台Nacos配置中心开发和功能验证
简介:Sentinel容器化部署
docker pull bladex/sentinel-dashboard:latest
docker images
docker run --name sentinel -d -p 8858:8858 镜像id
http://公网ip:8858
# 登录密码默认sentinel/sentinel
简介:微服务整合Sentinel项目依赖配置
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
spring:
cloud:
sentinel:
transport:
dashboard: 192.168.0.88:8858
port: 9999
#dashboard: 8858 控制台端口
#port: 9999 本地启的端口,随机选个不能被占用的,与dashboard进行数据交互,会在应用对应的机器上启动一个 Http Server,该 Server 会与 Sentinel 控制台做交互, 若被占用,则开始+1一次扫描
简介:微服务Sentinel限流配置实战和问题引出
简介:微服务整合Sentinel自定义降级异常数据开发实战
异常种类
FlowException //限流异常
DegradeException //降级异常
ParamFlowException //参数限流异常
SystemBlockException //系统负载异常
AuthorityException //授权异常
【新版】实现BlockExceptionHandler并且重写handle方法
@Component
public class XdclassUrlBlockHandler implements BlockExceptionHandler {
@Override
public void handle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, BlockException e) throws IOException {
}
}
简介:微服务Sentinel流控规则持久化到nacos配置中心
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
</dependency>
#流控面板ip
sentinel:
transport:
dashboard: 112.74.55.160:8858
#流控规则持久化到nacos配置中心
datasource:
ds1:
nacos:
server-addr: 192.168.0.88:8848
data-id: ${spring.application.name}.json
group-id: DEFAULT_GROUP
data-type: json
rule-type: flow
[
{
"resource":"/test",
"controlBehavior":0,
"count":2,
"grade":1,
"limitApp":"default",
"strategy":0
},
{
"resource":"/api/coupon/v1/page_coupon",
"controlBehavior":0,
"count":1,
"grade":1,
"limitApp":"default",
"strategy":0
}
]
resource:资源名,
limitApp:流控针对的调用来源,若为 default 则不区分调用来源
grade:限流类型(QPS 或并发线程数),0代表根据并发数量来限流,1代表根据QPS来进行流量控制
count:限流阈值
strategy:调用关系限流策略
controlBehavior:流量控制效果(直接拒绝、Warm Up、匀速排队)
clusterMode:是否为集群模式,存在问题
简介:微服务Sentinel流控规则持久化到nacos配置中心