(Translated by https://www.hiragana.jp/)
GitHub - shiyindaxiaojie/Sentinel: 阿里巴巴流量治理组件,基于 1.8.5 版本改造,支持规则持久化,通过监控面板可查看历史数据。
Skip to content

おもねさとともえともみ流量りゅうりょう组件,于 1.8.5 版本はんぽん改造かいぞう支持しじ规则持久じきゅうつう过监ひかえめんいた查看历史すうすえ

License

Notifications You must be signed in to change notification settings

shiyindaxiaojie/Sentinel

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sentinel 流量りゅうりょう平台ひらだい

Sentinel おもねさとともえともみ开源てき流量りゅうりょう平台ひらだい提供ていきょうりょう 流量りゅうりょうひかえせい熔断くだけい统负载保护黑白くろしろめい单访问控せい とうこうのうざい实际てきなま产需もとめちゅう,笔者进行りょう部分ぶぶん扩展:

  1. ながれひかえ规则持久じきゅう:适配 ApolloNacosZookeeper
  2. 监控すうすえ持久じきゅう:适配 InfluxDBKafkaElasticsearch
  3. 监控めんいた优化:しんぞう时间ひかえけんまこと许在任意にんい时刻ない查询监控すうすえ

えんじしめせ图例

改造かいぞうまえ

改造かいぞうきさき

かいとし时间选择

てい义时间选择

如何いか构建

ほん项目だま使用しよう Maven らい构建,さいかいてき使用しよう方式ほうしき git clone いた本地ほんじざい目的もくてき录执ぎょう mvn install -T 4C 完成かんせいほん目的もくてき构建。

如何いか启动

IDEA 启动

ほん项目だま认不赖外组件,直接ちょくせつ启动运行。

  1. ざい项目录下运行 mvn install(如果そう运行测试,以加じょう -DskipTests さんすう)。
  2. 进入 sentinel-dashboard 录,执行 mvn spring-boot:run あるもの启动 SentinelApplication 类。运行成功せいこうてき话,以看いた Spring Boot 启动成功せいこうてき界面かいめん

ざい实际てきなま产需もとめ,Sentinel 保存ほぞんてき规则监控需要じゅよう持久じきゅう落盘てきいん此,您可以在 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 Hub,请执ぎょう参考さんこう命令めいれい运行。

docker run -p 8090:8090 --name=sentinel-dashboard -d shiyindaxiaojie/sentinel-dashboard

如何いか部署ぶしょ

FatJar 部署ぶしょ

执行 mvn clean package つつみなりいち个 fat jar,参考さんこう如下命令めいれい启动编译きさきてきひかえせいだい

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 部署ぶしょ

ほん项目使用しようりょう Spring Boot てき镜像ぶん层特せい优化りょう镜像てき构建效率こうりつ,请确保正やすまさ确安そうりょう Docker 工具こうぐしかきさき执行以下いか命令めいれい

docker build -f docker/Dockerfile -t sentinel-dashboard:{tag} .

Helm 部署ぶしょ

以应よう中心ちゅうしんけん使用しよう Helm 统一管理かんりしょ需部しょてき K8s 资源描述ぶんけん,请参考さんこう以下いか命令めいれい完成かんせい应用てきあんそうおろし载。

helm install sentinel-dashboard ./helm # 部署ぶしょ资源
helm uninstall sentinel-dashboard # おろし载资げん

如何いかせっいれ

为了减少きゃく户端集成しゅうせいてき工作こうさく,您可以使用しよう eden-architect かまちただ需要じゅよう两步就可以完成かんせい Sentinel てき集成しゅうせい

  1. 引入 Sentinel
<dependency>
    <groupId>io.github.shiyindaxiaojie</groupId>
    <artifactId>eden-sentinel-spring-cloud-starter</artifactId>
</dependency>
  1. 开启 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

笔者提供ていきょうりょう两种不同ふどう应用构的しめせれいさとめんゆう集成しゅうせい Sentinel てきしめせれい

  • めんこう领域模型もけいてき COLA だい码实れい以查 eden-demo-cola
  • めんむこうすうすえ模型もけいてき ぶん层架构だい码实れい请查 eden-demo-layer

变更こころざし

请查阅 CHANGELOG.md

About

おもねさとともえともみ流量りゅうりょう组件,于 1.8.5 版本はんぽん改造かいぞう支持しじ规则持久じきゅうつう过监ひかえめんいた查看历史すうすえ

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 89.6%
  • JavaScript 5.6%
  • HTML 3.7%
  • CSS 1.1%
  • Shell 0.0%
  • Dockerfile 0.0%