SpringCloud Alibaba整合Sentinel

Sentinel 控制台

1. 概述

Sentinel 提供一个轻量级的开源控制台,它提供机器发现以及健康情况管理、监控(单机和集群),规则管理和推送的功能。另外,鉴权在生产环境中也必不可少。这里,我们将会详细讲述如何通过简单的步骤就可以使用这些功能。

接下来,我们将会逐一介绍如何整合 Sentinel 核心库和 Dashboard,让它发挥最大的作用。同时我们也在阿里云上提供企业级的控制台:AHAS Sentinel 控制台,您只需要几个简单的步骤,就能最直观地看到控制台如何实现这些功能。

Sentinel 控制台包含如下功能:

注意:Sentinel 控制台目前仅支持单机部署。

2. 启动控制台[Sentinel服务端]

2.1 获取 Sentinel 控制台
  1. 您可以从 release 页面 下载最新版本的控制台 jar 包。

  2. 您也可以从最新版本的源码自行构建 Sentinel 控制台:

    • 下载 控制台 工程
    • 使用以下命令将代码打包成一个 fat jar: mvn clean package
2.2 启动

注意:启动 Sentinel 控制台需要 JDK 版本为 1.8 及以上版本。

使用如下命令启动控制台:

java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar
# 注意上述命令在PowerShell 执行不了,要在cmd中执行

其中 -Dserver.port=8080 用于指定 Sentinel 控制台端口为 8080

从 Sentinel 1.6.0 起,Sentinel 控制台引入基本的登录功能,默认用户名和密码都是 sentinel。可以参考 鉴权模块文档 配置用户名和密码。

注:若您的应用为 Spring Boot 或 Spring Cloud 应用,您可以通过 Spring 配置文件来指定配置,详情请参考 Spring Cloud Alibaba Sentinel 文档

Sentinel 客户端

FeginService.java

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; /**
* @Author xiongmin
* @Description //TODO
* @Date 2020/12/5 20:15
* @Version 1.0
**/
@FeignClient(value = "nacos-provider", fallback = FallBackFeginServiceImpl.class)
public interface FeginService { @GetMapping(value = "/echo/{message}")
String echo(@PathVariable String message); @GetMapping(value = "/test/{message}")
String test(@PathVariable String message);
}

FallBackFeginServiceImpl.java

import org.springframework.stereotype.Component;

/**
* @Author xiongmin
* @Description //TODO
* @Date 2020/12/13 19:54
* @Version 1.0
**/
@Component
public class FallBackFeginServiceImpl implements FeginService { @Override
public String echo(String message) {
String result = "FallBack echo() method";
return result;
} @Override
public String test(String message) {
String result = "FallBack test() method";
return result;
}
}

编写一个SpringCloud的消费者用例,配置如下:前提,要先启动Nacos和Sentinel

spring:
application:
name: nacos-consumer-feign
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
sentinel:
transport:
port: 8720
dashboard: localhost:8080 server:
port: 9092 feign:
sentinel:
enabled: true management:
endpoints:
web:
exposure:
include: "*"
  1. 应用名称为nacos-consumer-feign,如果不指定,在dashboard上就会显示你的包路径,很丑。
  2. spring.cloud.sentinel.transport.port是本地启的端口,与dashboard进行数据交互。官方文档是这样写的:这里的 spring.cloud.sentinel.transport.port 端口配置会在应用对应的机器上启动一个 Http Server,该 Server 会与 Sentinel 控制台做交互。比如 Sentinel 控制台添加了一个限流规则,会把规则数据 push 给这个 Http Server 接收,Http Server 再将规则注册到 Sentinel 中。
  3. spring.cloud.sentinel.transport.dashboard是指明了dashboard的地址,格式为IP:Port

Sentinel 客户端注册到SentinelDashboard 需要时间,项目启动之后可能要等待一会;如果SentinelDashboard一直没有加载Sentinel 客户端的话,可以将服务提供者暂时关闭,那么请求接口就会在SentinelDashboard有记录。

如果SentinelDashboard检测到Sentinel 客户端的话,那么此时会多一个名为 应用程序名 的服务

参考链接

最新文章

  1. SQL Server2008清除数据库日志
  2. 相克军_Oracle体系_随堂笔记009-检查点队列
  3. spring4+websocket+nginx详细配置
  4. Camstar Portal modeling user guid --自定义用户菜单
  5. 双系统如何删除Linux,恢复Windows从MBR引导启动?
  6. Struts2的类型转换
  7. 动态生成C# Lambda表达式
  8. Unity3D Script KeynoteII
  9. Codeforces Round #337 (Div. 2) A. Pasha and Stick 数学
  10. github 中redisPhpAdmin redis 可视化界面
  11. bzoj1563: [NOI2009]诗人小G
  12. 用反射,将DataRow行转为Object对象
  13. 基于DDD的.NET项目搭建
  14. Java监听器Listener使用详解
  15. hdu 1290_献给杭电五十周年校庆的礼物
  16. 在lua中创建字段安全的对象
  17. URL基本结构
  18. SRS服务器搭建,ffmpeg 本地推流,srs从本地拉流
  19. TCP 的那些事儿(下)(转)
  20. 【spring boot】spring boot 前台GET请求,传递时间类型的字符串,后台无法解析,报错:Failed to convert from type [java.lang.String] to type [java.util.Date]

热门文章

  1. JavaScript学习总结6-apply
  2. Windows原理深入学习系列-强制完整性检查
  3. Intellij IDEA 2022 正式发布,这些功能真不错
  4. React 日常记录
  5. 2021.11.11 EXKMP
  6. struts2绕过waf读写文件及另类方式执行命令
  7. MATLAB R2019b超详细安装教程(附完整安装文件)
  8. jmeter元件分析
  9. 『现学现忘』Git对象 — 15、blob对象介绍
  10. 字节跳动构建Data Catalog数据目录系统的实践(上)