• sentinel环境搭建以及微服务接入


    • sentinel部署
    • sentinel-镜像制造
    • sentinel-镜像推送
    • sentinel-部署配置文件
    • 访问控制台
    • 外网访问控制台
    • 集群内访问
    • 配置规则
    • 限流效果
    • 微服务接入
    • pom文件引入依赖
    • pod部署文件添加配置

    Sentinel 控制台是流量控制、熔断降级规则统一配置和管理的入口,它为用户提供了机器自发现、簇点链路自发现、监控、规则配置等功能。在 Sentinel 控制台上,我们可以配置规则并实时查看流量控制效果。
    Sentinel 会在客户端首次调用的时候进行初始化,开始向控制台发送心跳包 ,将客户端纳入到控制台的管辖之下。 客户端正确配置并启动后,会 在初次调用后 主动向控制台发送心跳包,汇报自己的存在;
    控制台收到客户端心跳包之后,会在左侧导航栏中显示该客户端信息。如果控制台能够看到客户端的机器信息,则表明客户端接入成功了
    端口默认8719,假如被占用了会自动从8719开始依次+1扫描。直至找到未被占用的端口,可以通过参数指定

    -Dcsp.sentinel.api.port=8719
    -Dsentinel.dashboard.auth.username=sentinel
    -Dsentinel.dashboard.auth.password=123456
    
    • 1
    • 2
    • 3

    sentinel-镜像制造

    1、需要把制作好的镜像推送远程ecr,Dockerfile文件如下:

    #添加jdk镜像
    FROM openjdk:8-jdk-alpine
    #工作环境变量配置
    ENV SENTINEL_HOME=/home/
    #版本环境变量配置
    ENV SENTINEL_DASHBOARD_VERSION=1.8.6
    ENV SENTINEL_TOOL_OPTIONS=-Dserver.port=8088 
    -Dsentinel.dashboard.auth.password=123456
    #创建目录
    RUN mkdir ${SENTINEL_HOME} && cd ${SENTINEL_HOME}
    #工作目录
    WORKDIR ${SENTINEL_HOME}
    #添加sentinel dashboard镜像源
    ADD sentinel-dashboard-${SENTINEL_DASHBOARD_VERSION}.jar ${SENTINEL_HOME}/sentinel-dashboard-${SENTINEL_DASHBOARD_VERSION}.jar
    #启动命令
    ENTRYPOINT java ${SENTINEL_TOOL_OPTIONS} -jar sentinel-dashboard-${SENTINEL_DASHBOARD_VERSION}.jar
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    2、并上传sentinel-dashboard-1.8.6.jar到同一目录

    3、构建镜像,注意后面的.:

    docker build -f Dockerfile -t sentinel-dashboard:1.8.6 .
    
    • 1

    sentinel-镜像推送

    推送至远程ecr中

    sentinel-部署配置文件

    application配置文件
     sentinel-application.yaml(暂时没有配置项,可以不需要此项,后面的pod配置文件没有用到此项)
    apiVersion: v1
    data:
      application.properties: |-
    kind: ConfigMap
    metadata:
      name: sentinel-application
      namespace: vsim-core
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    pod配置文件

    sentinel-provider.yaml
    一些启动参数可以在这里配置:

    - env:
        - name: SENTINEL_TOOL_OPTIONS
          value: '-Dserver.port=8088 -Dsentinel.dashboard.auth.password=123456'
    
    • 1
    • 2
    • 3

    service文件:sentinel-svc.yml

    启动日志:

    访问控制台

    ip访问:http://172.25.6.8:8088/ 账号:sentinel 密码:123456

    配置规则

    配置的规则默认是没有持久化的,重启sentinel会把之前的规则都清掉,后面可以把配置持久化,支持不同的方式,如:nacos/redis/zeekeeper等
    针对此接口配置qps限额3,超过则快速失败,限流规则支持各种多样,此处取一种规则,除了限流还支持熔断、热点、授权等等
    在这里插入图片描述

    限流效果

    调用9次此接口查看效果
    成功4次,失败5次,每秒最多3次成功

    在这里插入图片描述

    微服务接入

    pom文件引入依赖

    version在parenmt控制:现在使用的是1.8.6,最新的发布版本

    
    <dependency>
    <groupId>com.alibaba.cspgroupId>
    <artifactId>sentinel-coreartifactId>
    dependency>
    
    <dependency>
    <groupId>com.alibaba.cspgroupId>
    <artifactId>sentinel-transport-simple-httpartifactId>
    dependency>
    
    <dependency>
    <groupId>com.alibaba.cspgroupId>
    <artifactId>sentinel-apache-dubbo3-adapterartifactId>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    pod部署文件添加配置

    需要引入限流的pod部署文件,如果之前引入的pom依赖则只需要引入sentinel即可控制每个dubbo限流、熔断等;
    参数说明:
    csp.sentinel.dashboard.server:sentinel的地址
    project.name:当前项目的名称,会展示在sentinel的dashboard左侧
    其它参数配置文档:http://sentinelguard.io/zh-cn/docs/general-configuration.html

    • name: JAVA_OPTS
      value: >-
      -Dcsp.sentinel.dashboard.server=172.25.6.8:8088
      -Dproject.name=data-service

    启动后正常会打印下面日志:
    在这里插入图片描述

    查看sentinel的dashboard控制台页面:
    在这里插入图片描述

    至此sentinel就整合完毕。

  • 相关阅读:
    使用idea开发工具maven 缺失依赖
    ALevel生物vs普高生物的区别
    python画图画字-turtle
    第1关:会话创建与关闭
    使用ScottPlot库在.NET WinForms中快速实现大型数据集的交互式显示
    爬取北京新发地当天货物信息并展示十五天价格变化(三)---获取物品十五天内的价格
    【JavaScript】fetch 处理流式数据,实现类 chatgpt 对话
    基于Java毕业设计幼儿影视节目智能推荐系统源码+系统+mysql+lw文档+部署软件
    关于Linux中作业调度 crond 和 systemd.timer 使用场景的一些笔记
    Pr:导出设置之音频
  • 原文地址:https://blog.csdn.net/wuyongde0922/article/details/133157832