Sentinel
、熔断
、
、
流 控 规则持久 化 :适配Apollo
、Nacos
、Zookeeper
- 监控
数 据 持久 化 :适配InfluxDB
、Kafka
、Elasticsearch
- 监控
面 板 优化:新 增 时间控 件 ,允 许在任意 时刻内 查询监控数 据 。
git clone
mvn install -T 4C
在 项目目 录下运行mvn install
(如果不 想 运行测试,可 以加上 -DskipTests
参 数 )。- 进入
sentinel-dashboard
目 录,执行mvn spring-boot:run
或 者 启动SentinelApplication
类。运行成功 的 话,可 以看到 Spring Boot
启动成功 的 界面 。
sentinel-dashboard/src/main/resources/application.properties
- 规则
存 储类型 :memory(默 认)、nacos(推荐)、apollo、zookeeper
# 规则存 储类型 ,可 选项:memory(默 认)、nacos(推荐)、apollo、zookeeper
sentinel.rule.type=nacos
# Nacos 存 储规则,如果您设置 了 sentinel.metrics.type=nacos,需要 调整相 关配置
sentinel.rule.nacos.server-addr=localhost:8848
sentinel.rule.nacos.namespace=demo
sentinel.rule.nacos.group-id=sentinel
sentinel.rule.nacos.username=nacos
sentinel.rule.nacos.password=nacos
# Apollo 存 储规则,如果您设置 了 sentinel.metrics.type=apollo,需要 调整相 关配置
sentinel.rule.apollo.portal-url=http://localhost:10034
sentinel.rule.apollo.token=
sentinel.rule.apollo.env=
# Zookeeper 存 储规则,如果您设置 了 sentinel.metrics.type=zookeeper,需要 调整相 关配置
sentinel.rule.zookeeper.connect-string=localhost:2181
sentinel.rule.zookeeper.root-path=/sentinel_rule
- 监控
存 储类型 :memory(默 认)、influxdb(推荐)、elasticsearch
# 监控存 储类型 ,可 选项:memory(默 认)、influxdb(推荐)、elasticsearch
sentinel.metrics.type=memory
# InfluxDB 存 储监控 数 据 ,如果您设置 了 sentinel.metrics.type=influxdb,需要 调整相 关配置
influx.url=http://localhost:8086/
influx.token=UfgaW37A93PkncmJum25G7M2QkBg6xqqjGthh-o-UIVIynC_-Q7RFWlTtEpMqhGLCuAsX64k3Isc2uN33YgElw==
influx.org=sentinel
influx.bucket=sentinel
influx.log-level=NONE
influx.read-timeout=10s
influx.write-timeout=10s
influx.connect-timeout=10s
# Elasticsearch 存 储监控 数 据 ,如果您设置 了 sentinel.metrics.type=elasticsearch,需要 调整相 关配置
sentinel.metrics.elasticsearch.index-name=sentinel_metric
spring.elasticsearch.rest.uris=http://localhost:9200
spring.elasticsearch.rest.connection-timeout=3000
spring.elasticsearch.rest.read-timeout=5000
spring.elasticsearch.rest.username=
spring.elasticsearch.rest.password=
# 监控数 据 存 储缓冲设置 ,降 低 底 层存储组件 写 入 压力。可 选项:none(默 认不启用)、kafka(推荐)
sentinel.metrics.sender.type=none
# Kafka 存 储监控 数 据 ,如果您设置 了 sentinel.metrics.sender.type=kafka,需要 调整相 关配置
sentinel.metrics.sender.kafka.topic=sentinel_metric
spring.kafka.producer.bootstrap-servers=localhost:9092
spring.kafka.producer.batch-size=4096
spring.kafka.producer.buffer-memory=40960
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer
docker run -p 8090:8090 --name=sentinel-dashboard -d shiyindaxiaojie/sentinel-dashboard
执行 mvn clean package
java -Dserver.port=8080 \
-Dsentinel.rule.nacos.server-addr=localhost:8848 \
-Dsentinel.rule.nacos.namespace=demo \
-Dsentinel.rule.nacos.group-id=sentinel \
-Dsentinel.metrics.type=influxdb \
-Dinflux.url=http://localhost:8086 \
-Dinflux.token=XXXXXX \
-Dinflux.org=sentinel \
-Dinflux.bucket=sentinel \
-jar target/sentinel-dashboard.jar
docker build -f docker/Dockerfile -t sentinel-dashboard:{tag} .
以应
helm install sentinel-dashboard ./helm # 部署 资源
helm uninstall sentinel-dashboard # 卸 载资源
为了减少
- 引入 Sentinel
依 赖
<dependency>
<groupId>io.github.shiyindaxiaojie</groupId>
<artifactId>eden-sentinel-spring-cloud-starter</artifactId>
</dependency>
- 开启 Sentinel
配置
spring:
cloud:
sentinel: # 流量 治 理 组件
enabled: false # 默 认关闭,请按需开启
http-method-specify: true # 兼 容 RESTful
eager: true # 立 刻 刷新 到 Dashboard
transport:
dashboard: localhost:8090
datasource:
flow:
nacos:
server-addr: ${spring.cloud.nacos.config.server-addr}
namespace: ${spring.cloud.nacos.config.namespace}
groupId: sentinel
dataId: ${spring.application.name}-flow-rule
rule-type: flow
data-type: json
笔者
面 向 领域模型 的 COLA架 构,代 码实例 可 以查看 eden-demo-cola面 向 数 据 模型 的 分 层架构,代 码实例 请查看 eden-demo-layer
请查阅 CHANGELOG.md