• 【微服务|Sentinel】Sentinel快速入门|构建镜像|启动控制台


    简介

    Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。

    时间线

    2019 年,Sentinel 朝着多语言扩展的方向不断探索,推出 C++ 原生版本,同时针对 Service Mesh 场景也推出了 Envoy 集群流量控制支持,以解决 Service Mesh 架构下多语言限流的问题。

    2021 年,Sentinel 正在朝着 2.0 云原生高可用决策中心组件进行演进;同时推出了 Sentinel Rust 原生版本。

    2022 年,Sentinel 品牌升级为流量治理,领域涵盖流量路由/调度、流量染色、流控降级、过载保护/实例摘除等;同时社区将流量治理相关标准抽出到 OpenSergo 标准中,Sentinel 作为流量治理标准实现。

    两大模块

    Sentinel 的使用可以分为两个部分:

    1. 控制台(Dashboard):控制台主要负责管理推送规则、监控、集群限流分配管理、机器发现等。

    2. 核心库(Java 客户端):不依赖任何框架/库,能够运行于 Java 7 及以上的版本的运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。

    工作流程图

    在这里插入图片描述

    sentinel-dashboard-1.8.1镜像

    Dockerfile

    FROM java:8
    LABEL maintainer="issa <issavior@163.com>"
    ADD sentinel-dashboard-1.8.1.jar app.jar
    EXPOSE 80
    ENTRYPOINT ["java" ,"-Dserver.port=80","-Dcsp.sentinel.dashboard.server=localhost:80","-Dproject.name=mysentinel","-jar", "app.jar"]
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    前提条件:需要将sentinel-dashboard-1.8.1.jar上传至当前目录下。

    执行如下命令完成镜像的创建
    docker build -t mysentinel:1.8.1 .

    运行
    docker run -d -p 80:80 mysentinel:1.8.1

    控制台

    Sentinel 提供一个轻量级的开源控制台,它提供机器发现以及健康情况管理、监控(单机和集群),规则管理和推送的功能。

    Sentinel 控制台包含如下功能:

    查看机器列表以及健康情况:收集 Sentinel 客户端发送的心跳包,用于判断机器是否在线。

    监控 (单机和集群聚合):通过 Sentinel 客户端暴露的监控 API,定期拉取并且聚合应用监控信息,最终可以实现秒级的实时监控。

    规则管理和推送:统一管理推送规则。

    鉴权:生产环境中鉴权非常重要。这里每个开发者需要根据自己的实际情况进行定制。

    注意:Sentinel 控制台目前仅支持单机部署。Sentinel 控制台项目提供 Sentinel
    功能全集示例,不作为开箱即用的生产环境控制台,若希望在生产环境使用请根据文档自行进行定制和改造。

    sentinel控制台接入代码

    依赖

            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    配置文件:

    spring:
      cloud:
        sentinel:
          transport:
            dashboard: localhost
    #        port: 8719
    #        client-ip: localhost
          eager: true
    management:
      endpoints:
        web:
          exposure:
            include: '*'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    成功启动

    在这里插入图片描述

  • 相关阅读:
    IP-guard Web系统远程命令执行漏洞说明
    Traceroute
    【Java面向对象】对象和类
    手把手教你搭建规范的团队vue项目,包含commitlint,eslint,prettier,husky,commitizen等等
    2.redis缓存数据库学习
    《Operating Systems: Three Easy Pieces》 操作系统【一】 虚拟化 CPU
    Word 插入的 Visio 图片显示为{EMBED Visio.Drawing.11} 解决方案
    Tensorflow模型各部分自定义方式
    JUC下的异步编程工具使用详情以及源码分析(FutureTask、CompletableFuture)
    Java基础面试题&知识点总结(下篇)
  • 原文地址:https://blog.csdn.net/CSDN_SAVIOR/article/details/125413736