当前位置: 首页 > news >正文

网站源码推荐开发公司属于什么行业

网站源码推荐,开发公司属于什么行业,织梦网站地图制作教程,宜昌网站seo公司一、Sentinel 简介 Sentinel 是阿里巴巴开源的面向分布式服务架构的流量控制组件,主要提供以下核心功能: 流量控制:针对不同的调用关系,以不同的运行指标(如 QPS、线程数、系统负载等)为基准,对…

一、Sentinel 简介

Sentinel 是阿里巴巴开源的面向分布式服务架构的流量控制组件,主要提供以下核心功能:

  • 流量控制:针对不同的调用关系,以不同的运行指标(如 QPS、线程数、系统负载等)为基准,对资源调用进行流量控制

  • 熔断降级:当资源调用出现不稳定(如响应时间变长、异常比例升高)时进行熔断降级

  • 系统自适应保护:根据系统负载动态调整流量,保护系统稳定性

  • 实时监控和控制面板:提供实时监控和规则配置的 UI 控制台

二、环境准备

本人使用的版本:

  • JDK 1.8

  • Spring Boot 2.7.18

  • Spring Cloud 2021.0.8

  • Spring Cloud Alibaba 2021.0.5.0

  • Sentinel  1.8.8

三、项目搭建与整合

1、新建shop-product 服务

这里就不过多赘述了,如果有需要可以参考我的这篇文章SpringCloud Alibaba微服务工程搭建_搭建spring-cloud-alibaba微服务项目-CSDN博客

2、添加依赖

配置pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.shop.parent</groupId><artifactId>shop-cloud-service</artifactId><version>1.0-SNAPSHOT</version></parent><groupId>com.shop</groupId><artifactId>shop-product</artifactId><version>0.0.1-SNAPSHOT</version><name>shop-product</name><description>商品服务模块</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--nacos 注册中心--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!--   sentinel     --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency><!-- Sentinel Datasource Nacos --><dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-datasource-nacos</artifactId><version>1.8.6</version></dependency><dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2</artifactId><version>2.0.52</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

3、配置 Sentinel

server:port: 39698spring:application:name: shop-productcloud:nacos:discovery:                      #注册中心配置server-addr: 127.0.0.1:8848  # Nacos服务器地址username: nacos      # Nacos账号password: nacos      # Nacos密码namespace: 89aa8b8a-11fd-48cc-9163-06f1925cae03 # 命名空间IDgroup: DEV_GROUP  # 服务分组enabled: true  # 是否开启服务注册发现,默认为trueregister-enabled: true  # 是否注册服务,默认为trueservice: ${spring.application.name}  # 服务名,默认为spring.application.namesentinel:transport:dashboard: localhost:8080 # Sentinel控制台地址eager: true                 # 是否立即初始化web-context-unify: false  #关闭context整合

4、自定义限流异常返回

package com.shop.product.config;import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.BlockExceptionHandler;
import com.alibaba.csp.sentinel.slots.block.BlockException;
import com.alibaba.csp.sentinel.slots.block.authority.AuthorityException;
import com.alibaba.csp.sentinel.slots.block.degrade.DegradeException;
import com.alibaba.csp.sentinel.slots.block.flow.FlowException;
import com.alibaba.csp.sentinel.slots.block.flow.param.ParamFlowException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** 自定义限流异常返回** @author XXY* @date 2025-04-24 15:56:13*/
@Slf4j
@Component
public class MyBlockException implements BlockExceptionHandler {@Overridepublic void handle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, BlockException e) throws Exception {String msg = "系统未知异常!";int status = 429;if (e instanceof FlowException) {msg = "抱歉,请求被限流了!";} else if (e instanceof DegradeException) {msg = "抱歉,请求被降级了!";} else if (e instanceof ParamFlowException) {msg = "抱歉,热点参数限流!";} else if (e instanceof AuthorityException) {msg = "抱歉,请求没有权限!";status = 401;}log.error(msg);httpServletResponse.setContentType("application/json;charset=utf-8");httpServletResponse.setStatus(status);httpServletResponse.getWriter().println("{\"message\": \"" + msg + "\", \"status\": " + status + "}");}
}

5、 启动Sentinel

java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar

访问 http://localhost:8080,默认用户名和密码都是 sentinel

到这里,整合已经完成了~~~~~~

四、Sentinel 功能分析

1、前期准备

新建一个controller层,写一个接口,访问http://localhost:39698/v1/product/getProduct,刷新Sentinel 控制台就能看到服务。

    @GetMapping(value = "/getProduct")public String getProduct() {return "查询商品!";}

2、流量控制

点击簇点链路,找到流控,对请求路径设置流控。

使用jmeter测试接口,观察结果发现,前五个请求成功,后五个请求失败,限流生效。

3、熔断规则

五、常见问题

  1. 规则不生效:检查是否开启了 Sentinel(spring.cloud.sentinel.enabled=true

  2. 控制台看不到应用:检查应用与控制台的网络连通性,确保应用正确配置了控制台地址

  3. 注解不生效:确保添加了 @EnableAspectJAutoProxy 注解并引入了 sentinel-annotation-aspectj 依赖

  4. 规则频繁失效:考虑使用动态数据源持久化规则

六、总结

通过 Spring Cloud Alibaba 整合 Sentinel,我们可以轻松为微服务架构添加强大的流量控制、熔断降级和系统保护功能。Sentinel 丰富的功能和灵活的配置方式使其成为微服务治理的重要工具。合理使用 Sentinel 可以有效防止服务雪崩,提高系统的整体稳定性。

希望本文能帮助你快速上手 Sentinel,为你的微服务架构保驾护航!

http://www.dtcms.com/a/552237.html

相关文章:

  • 长沙o2o网站制作公司企业网站建设问题
  • 网站备案失败东莞网站建设功能
  • 自适应网站制作费用pc网站增加手机站
  • 网站建设与维护管理办法甜品网站建设策划书
  • 网站常用代码烟台网站制作方案定制
  • 南通如何制作一个网站找个兼职做网站的
  • 门户网站开发一般多少钱中文企业网站html模板
  • 网站开发公司售后服务阿里巴巴网站域名
  • 广州品牌网站设计免费棋牌网站建设
  • 素材网站下载无锡室内设计学校
  • 山东专业网站开发公司如何用自己电脑做网站
  • 网站拒绝了您的访问南宁 网站建设
  • 外贸网站建设策划wordpress打开置顶文章没用
  • 新的网站做淘宝客常州市天宁区建设局网站
  • 织梦网站加网站地图通信网站建设
  • 渭南公司做网站建设公司网站开发方案
  • jsp网站建设项目实战电子版彩票网站给实体店做代销
  • 虚拟主机做视频网站可以吗怎么制作网站页面
  • 烟台网站建设seowordpress 增加楼层
  • 济南WordPress培训王通seo
  • 天津网站制作南昌注册安全工程师需要什么条件
  • 设计非常好的网站广州注册公司全包
  • 云南品牌网站开发vi企业设计
  • 做网站的公司首选智投未来品牌建设内容
  • 六安网站制作金狮最后两年会出妖
  • 专业网页网站设计图书档案信息网站建设工作经验
  • 网站建设项目总结永久在线观看电影网址
  • 网站访问量统计工具营销型网站建设要多少钱
  • 网站用的服务器多少钱专做坏消息的网站
  • 南山做网站方案百度联盟 网站备案