网站服务器端口号是什么营销推广手段有什么
news/
2025/10/4 1:52:25/
文章来源:
网站服务器端口号是什么,营销推广手段有什么,网站建设经验与教训,大连市住建局官方网本文同名博客老炮说Java#xff1a;https://www.laopaojava.com/#xff0c;每天更新Spring/SpringMvc/SpringBoot/实战项目等文章资料SentinelNacos 是微服务环境搭建必不可少的两个组件#xff0c;这里给大家推荐一套微服务教程#xff1a;SpringCloud微服务电商项目教程…本文同名博客老炮说Javahttps://www.laopaojava.com/每天更新Spring/SpringMvc/SpringBoot/实战项目等文章资料SentinelNacos 是微服务环境搭建必不可少的两个组件这里给大家推荐一套微服务教程SpringCloud微服务电商项目教程 - 老炮说Java-程序员编程资料和编程经验分享平台www.laopaojava.com教程主要包含下面内容Sentinel 可以简单的分为 Sentinel 核心库和 Dashboard。核心库不依赖 Dashboard但是结合 Dashboard 可以取得最好的效果。这篇文章主要介绍 Sentinel 引入和规则配置等使用方法。 我们说的资源可以是任何东西服务服务里的方法甚至是一段代码。因为Sentinel控制台配置的规则是在内存中的所以我们需要Nacos来存储规则实现持久化。本文主要分为四个部分Sentinel代码方式示例效果Sentinel控制台安装Springboot项目接入Sentinel控制台配置规则使用Nacos存储规则并实时更新Sentinel代码方式示例效果在讲解如何使用nacos存储规则之前我们先来看下直接代码定义规则和资源的使用方式这部分不是本文重点。Sentinel的使用步骤大致可以分为三步引入依赖定义资源定义规则我们先来看下Sentinel文档上的一段代码。1.引入依赖dependencygroupIdcom.alibaba.csp/groupIdartifactIdsentinel-core/artifactIdversion1.8.0/version
/dependency
2.定义资源public static void main(String[] args) {// 配置规则.initFlowRules();while (true) {// 1.5.0 版本开始可以直接利用 try-with-resources 特性自动 exit entrytry (Entry entry SphU.entry(HelloWorld)) {// 被保护的逻辑System.out.println(hello world);} catch (BlockException ex) {// 处理被流控的逻辑System.out.println(blocked!);}}
}
在这里我们定义了一个“HelloWorld”的资源不断打印hello world。3.定义规则private static void initFlowRules(){ListFlowRule rules new ArrayList(); //定义规则列表FlowRule rule new FlowRule(); //定义一个规则rule.setResource(HelloWorld); //什么资源应用此规则rule.setGrade(RuleConstant.FLOW_GRADE_QPS);rule.setCount(20); //没秒只能20次请求rules.add(rule);//加入该规则FlowRuleManager.loadRules(rules); //载入规则列表
}
这里定义了资源“HelloWorld”每秒只能通过20个请求。运行该main方法可以看到控制台输出以下内容。Sentinel代码方式示例效果可以看到请求通过20次打印hello world后再请求会阻塞打印blocked!等到下一秒才会继续打印hello world。这是一个简单的示例用于说明下Sentinel的作用下面我们会介绍Sentinel控制台的使用以及搭配Nacos存储规则并实时更新规则。Sentinel控制台安装Sentinel控制台提供web可视化页面配置规则我们需要下载官方提供的jar包安装启动该服务。1.jar包下载可以在官网github上下载https://github.com/alibaba/Sentinel/releases拉到每个版本信息区块的最下方有jar文件的下载地址。jar文件的下载地址2.启动脚本注意根据下载的jar包修改文件名java -Dserver.port8080 -Dcsp.sentinel.dashboard.serverlocalhost:8080 -Dproject.namesentinel-dashboard -jar sentinel-dashboard-1.8.0.jar
启动Sentinel控制台3.访问Sentinel控制台地址和账号密码 http://localhost:8080 账号sentinel 密码sentinel访问Sentinel控制台访问Sentinel控制台控制台已经启动完成可以看到左边首页下面显示了一个sentinel-dashboard的项目项目包含了监控、链路、各种规则配置和机器列表等菜单可以管理该项目规则如果有新项目连接到控制台这里会出现新的项目菜单。springboot项目接入Sentinel控制台配置规则1.引入依赖dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-sentinel/artifactId
/dependency
注意我这里没有写版本因为我在父项目的pom文件中指定了阿里巴巴的依赖版本子项目的相关依赖会自动寻找版本。dependencyManagementdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversionHoxton.SR8/versiontypepom/typescopeimport/scope/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion2.2.3.RELEASE/versiontypepom/typescopeimport/scope/dependency/dependencies
/dependencyManagement
2.配置yml接下去我们可以在项目中连接到该控制台这样项目里的资源就可以被控制台管理了。spring:application:name: sentinelcloud:sentinel:transport:port: 8719dashboard: localhost:8080 #启动本项目后需要请求一次才能向sentinel控制台注册
注意启动项目后需要请求一次项目才能向sentinel控制台注册。启动项目后我们请求一下项目随便一个接口然后在控制台可以看到多了一个新项目的菜单了。新项目的菜单3.控制台配置项目资源规则我在项目里写了一个简单的接口如下RequestMapping(/)
public String test(){return ok;
}
可以在控制台的簇点链路菜单看到这个接口资源。簇点链路菜单可以看到表格右边有四个按钮可以对该资源进行流控、降级、热点、授权的配置。流控 流量控制可以在流控中设置主要三块内容阈值类型阈值、流控模式、流控效果。流控阈值类型阈值可以设置QPS的阈值代表每秒最多允许请求多少次资源可以设置线程数代表可以同时运行的线程数量。 流控模式有直接、关联、链路三种。 --直接代表超过阈值直接限流 --关联代表关联的资源达到阈值时也进行限流比如支付接口不行了把下单接口也限流掉。 --链路代表当服务到达阈值时所有使用该服务的服务也限流。 流控效果有快速失败、Warm Up、排队等待三种。 --快速失败直接限流操作。 --Warm Up冷启动需要配置预热时长意思是当突然有大量请求时慢慢的放一些请求通过预热时长过后恢复到正常限流状态达到阈值时再进行限流。 --排队等待让限流的请求排队等待系统空闲时再通过需要配置超时时间过了超时时间再拒绝请求。降级 降级有慢调用比例、异常比例、异常数三种熔断策略。降级--慢调用比例需要设置最大RT最大的响应时间和比例阈值0.0至1.0之间请求大于最大RT的判定为慢调用当慢调用比例到达比例阈值时进行熔断降级。 --异常比例需要设置一个比例阈值当异常比例达到该阈值时进行熔断降级。 --异常数需要设置一个异常数达到该异常数时进行熔断降级。 降级需要设置一个熔断时长和最小请求数代表熔断持续的时间当大于最小请求数时降级规则才生效。热点 热点即经常访问的数据 很多时候我们希望统计某个热点数据中访问频次最高的 Top K 数据并对其访问进行限制。对请求中携带的参数进行判断是否是热点数据是热点数据则根据规则限流。需要设置参数所有和阈值参数所有从0开始代表请求的第几个参数是热点参数。授权 授权其实就是黑白名单的设置黑名单模式代表黑名单里的不允许访问白名单模式代表白名单里的才允许访问。需要设置对应的应用名称。4.示例配置我们以流控操作来做个示例我们在根请求接口的资源上配置一个流控规则。示例配置设置阈值类型为QPS阈值为1代表每秒只能通过1个请求。我们来看看效果。浏览器请求接口然后按F5不停刷新可以看到每秒会出现一次返回一次正确信息其他都会返回限流信息。返回正确信息返回限流信息项目接入控制台部分就讲到这了需要注意的是这里的控制台配置是存在内存中的如果你的项目重新启动配置的规则就没了所以我们需要一个可以持久化配置规则的地方接下去我们介绍下Nacos来持久化存储Sentinel配置规则。使用Nacos存储规则并实时更新Sentinel提供了多种数据源的支持包括Nacos、Zookeeper、文件数据源等。使用Nacos存储需要先安装Nacos可以看我的另外一篇Nacos安装教程文章。1.引入Nacos依赖dependencygroupIdcom.alibaba.csp/groupIdartifactIdsentinel-datasource-nacos/artifactId
/dependency
2.配置Nacos数据源安装完Nacos后我们首先在项目中配置Sentinel的数据源为Nacos。spring:application:name: sentinelcloud:sentinel:transport:port: 8719dashboard: localhost:8080 #启动本项目后需要请求一次才能向sentinel控制台注册datasource: ds2:nacos: server-addr: 192.168.67.129:8848data-id: sentinelgroup-id: Sentinel:Demodata-type: jsonrule-type: flow
ds2是数据源名称其他主要配置下Nacos的地址data-id和group-id等会需要在Nacos控制台新增一个同样的配置才能生效data-type配置规则数据类型rule-typeflow代表流控类型3.在Nacos控制台配置规则内容我们在Nacos控制台的配置列表新增一个配置。新增一个配置新增一个配置配置内容部分如下[{resource: /,limitApp: default,grade: 1,count: 2,strategy: 0,controlBehavior: 0,clusterMode: false}
]
resource资源名资源名是限流规则的作用对象count限流阈值grade限流阈值类型QPS 模式1或并发线程数模式0limitApp流控针对的调用来源strategy调用关系限流策略直接、链路、关联controlBehavior流控效果直接拒绝/WarmUp/匀速排队等待不支持按调用关系限流clusterMode是否集群限流4.效果启动项目配置好Nacos后我们可以直接在Sentinel控制台看到nacos的配置已经同步到Sentinel控制台了并且规则已经生效了以后该规则只需要在Naocs配置规则就能实时生效了。Nacos规则同步到Sentinel控制台需要注意的是目前只支持Nacos规则同步到Sentinel控制台不支持在Sentinel控制台配置规则同步到Nacos。好了今天的内容就讲到这里了希望本文对你有所帮助。来源https://www.toutiao.com/i6893111350684287496作者程序员柳大侠
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/926500.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!