微服务保护—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就搭建完成了,并且同过微服务进行了一个整合,很好的用到了我们的项目中去!

相关推荐
企鹅侠客4 分钟前
Ubuntu本地部署AnythingLLM实现本地文档RAG
linux·运维·ubuntu·llm
醇氧6 分钟前
Git 合并冲突提示 Local Changes Prevent from Merge
运维·git
被AI抢饭碗的人30 分钟前
linux:进程间通信
linux·运维·服务器
chao1031 小时前
ubuntu下业务运行环境搭建
linux·运维·ubuntu
海阔的天空1 小时前
VSCode通过continue插件免费安装AI模型实现自动编程
运维·ide·人工智能·vscode·编辑器·ai编程
weixin_46681 小时前
Docker Dockerfile文件
linux·运维·服务器
保持低旋律节奏1 小时前
linux——软件包、yum 安装和卸载
linux·运维·服务器
深圳市恒讯科技2 小时前
美国服务器备份策略:快照、异地备份与恢复演练指南
运维·服务器·github
LSL666_2 小时前
docker概述
运维·docker·容器
翼龙云_cloud2 小时前
阿里云渠道商:无影云电脑怎么使用?
运维·服务器·阿里云·云计算·电脑