微服务保护—Sentinel快速入门+微服务整合 示例: 黑马商城

1.微服务保护

微服务保护是确保微服务架构可靠、稳定和安全的策略与技术。

在可靠性上,限流是控制进入微服务的请求数量,防止流量过大导致服务崩溃。比如电商促销时对商品详情服务进行流量限制。熔断是当被调用的微服务故障过多或响应过慢时,暂停对它的调用,避免资源浪费和故障蔓延。

在稳定性方面,有负载均衡来分配请求,让各个微服务实例合理承担任务。

从安全角度看,通过认证和授权来控制对微服务的访问,只有合法用户和经过许可的操作才能访问微服务。

微服务保护的技术有很多,但目前国内比较常用的的是Sentinel


2.Sentinel介绍

Sentinel是阿里巴巴开源的一款服务保护框架 ,目前已经加入SpringCloudAlibaba中。

官方网站: home | Sentinel

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

  • 核心库(Jar包):不依赖任何框架/库,能够运行于 Java 8 及以上的版本的运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。在项目中引入依赖即可实现服务限流、隔离、熔断等功能。

  • 控制台(Dashboard):Dashboard 主要负责管理推送规则、监控、管理机器信息等。


3.搭建Sentinel控制台步骤

3.1. 下载jar包

下载地址:https://github.com/alibaba/Sentinel/releases

这里直接使用黑马商城资料中已提供好版本:


3.2. 运行

jar包 放在任意非中文、不包含特殊字符 的文件夹目录下,重命名为sentinel-dashboard.jar

并且在该文件夹下创建一个text文本文档 ,然后把运行命令放入该文本中 ,最后将该文本的后缀名改为bat,这样一来就不用每次都在cmd中运行命令 ,只需要双击该文本文档运行即可

3.2.1 Sentinel运行命令
XML 复制代码
java -Dserver.port=8090 -Dcsp.sentinel.dashboard.server=localhost:8090 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar

点击文本文档运行


3.3访问

访问http://localhost:8090页面,就可以看到sentinel的控制台了:

需要输入账号和密码,默认都是:sentinel

登录后,即可看到控制台,默认会监控sentinel-dashboard服务本身


4. 微服务整合

cart-service模块中整合Sentinel,连接到sentinel-dashboard控制台,步骤如下:

4.1 导入依赖

代码如下:

XML 复制代码
<!--sentinel-->
<dependency>
    <groupId>com.alibaba.cloud</groupId> 
    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>

4.2 配置控制台

修改application.yaml 文件,包括打开Sentinel的请求方式前缀,内容如下:

代码如下:

XML 复制代码
spring:
  cloud:
    sentinel:
      transport:
        dashboard: localhost:8090   # sentinel控制台地址
      http-method-specify: true   # 开启http方法级别限流

4.3 访问cart-service端点

重启服务 ,然后访问查询购物车接口,sentinel的客户端就会将服务访问的信息提交到sentinel-dashboar控制台

然后就可以看到并展示出统计信息:

簇点链路,就是单机调用链路,是一次请求进入服务后经过的每一个被Sentinel监控的资源。

点击簇点链路菜单,就可以看到下面的页面:

说明我们将黑马商城中对应的操作请求方式都拿到了,这样也便于我们进行观察与测试

到这里,我们整个Sentinel就搭建完成了,并且同过微服务进行了一个整合,很好的用到了我们的项目中去!

相关推荐
荣--17 小时前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森17 小时前
动手实战学 Docker — 从零到集群编排完全指南
运维
蝎子莱莱爱打怪18 小时前
XZLL-IM干货系列 04|Netty 长连接实战:Pipeline 怎么排、心跳怎么跳、连接怎么管
后端·微服务·面试
Avan_菜菜1 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SamDeepThinking2 天前
Java微服务练习方式
java·后端·微服务
SelectDB2 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode4 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220704 天前
如何搭建本地yum源(上)
运维
米丘5 天前
微前端之 Web Components 完全指南
微服务·html
大树887 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai