效果型网站网络营销推广的心得体会

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

效果型网站,网络营销推广的心得体会,免费帮朋友做网站,惠州抖音seoSentinel dashboard的使用 往期文章 Nacos环境搭建Nacos注册中心的使用Nacos配置中心的使用Sentinel 容灾中心的使用 参考文档 Sentinel alibaba/spring-cloud-alibaba Wiki GitHub 限流结果 下载sentinel-dashboard github地址#xff1a;Sentinel/sentinel-dashboar…Sentinel dashboard的使用 往期文章 Nacos环境搭建Nacos注册中心的使用Nacos配置中心的使用Sentinel 容灾中心的使用 参考文档 Sentinel · alibaba/spring-cloud-alibaba Wiki · GitHub 限流结果 下载sentinel-dashboard github地址Sentinel/sentinel-dashboard at master · alibaba/Sentinel · GitHub 启动脚本 创建sentinel-dashboard的启动脚本并添加如下信息 java -jar -Dserver.port8350 -Dcsp.sentinel.dashboard.serverlocalhost:8350 -Dproject.namesentinel-dashboard –add-exportsjava.base/sun.net.utilALL-UNNAMED sentinel-dashboard-1.8.4.jar目录
Jar客户端 !– 一定要放在前面 – !–Sentinel – dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-sentinel/artifactId /dependency !– sentinel-dashboard – dependencygroupIdcom.alibaba.csp/groupIdartifactIdsentinel-transport-simple-http/artifactId /dependency !–Spring Cloud Alibaba Nacos Discovery– dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId /dependency !–Spring Cloud Alibaba Nacos Config– dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId /dependency !–LoadBalancer– dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-loadbalancer/artifactId /dependency dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId /dependencyyml 注意sentinel-dashboard默认会在8720端口接收注册服务的数据所以dashboard使用的端口和接收数据的端口不要一样。 消费者 server:port: 8581 spring:application:name: nacos-consumercloud:nacos:config:group: DEFAULT_GROUPserver-addr: localhost:8848sentinel:transport:port: 8720dashboard: localhost:8350eager: trueconfig:import:# 父类配置要放在前面相同的项会被后面的配置覆盖- optional:nacos:nacos-discovery.yaml management:endpoints:web:exposure:include: *nacos-discovery.yml spring:cloud:nacos:discovery:server-addr: localhost:8848username: devilvanpassword: 741258963hjklfailure-tolerance-enabled: trueSentinel Dashboard的使用

  1. 关闭服务端硬编码的限流规则 服务端的代码参考Sentinel 容灾中心的使用
  2. 在dashboard中设置限流规则不推荐 不推荐的原因客户端、服务端重启后规则不会保存
  3. 限流效果 Nacos配置并保存Sentinel限流规则 步骤 引入sentinel和sentinel dashboard相关依赖服务端给对应controller添加SentinelResource注解并定义一个限流/熔断处理类负责处理该resource的限流/熔断逻辑注方法必须有static修饰。Nacos配置中心保存sentinel resource的配置信息即限流规则 Jar服务端 !– 一定要放在前面 – !–Sentinel – dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-sentinel/artifactId /dependency !– SpringCloud Alibaba CircuitBreaker Sentinel– dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-circuitbreaker-sentinel/artifactId /dependency !– sentinel-dashboard – dependencygroupIdcom.alibaba.csp/groupIdartifactIdsentinel-transport-simple-http/artifactId /dependency dependencygroupIdcom.alibaba.csp/groupIdartifactIdsentinel-datasource-nacos/artifactIdversion\({sentinel-version}/version /dependency dependencygroupIdcom.alibaba.csp/groupIdartifactIdsentinel-spring-webmvc-adapter/artifactIdversion\){sentinel-version}/version /dependency dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-webflux/artifactId /dependency !–Spring Cloud Alibaba Nacos Discovery– dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId /dependency !–Spring Cloud Alibaba Nacos Config– dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId /dependencyyml服务端 server:port: 8481 spring:application:name: nacos-providercloud:nacos:config:group: DEFAULT_GROUPserver-addr: localhost:8848discovery:server-addr: localhost:8848username: devilvanpassword: 741258963hjklsentinel:transport:port: 8720dashboard: localhost:8350eager: truedatasource:echo:nacos:server-add: \({spring.cloud.nacos.config.server-addr}groupId: \){spring.cloud.nacos.config.group}dataId: ${spring.application.name}-rulesrule-type: flowdata-type: jsonconfig:import:# 父类配置要放在前面相同的项会被后面的配置覆盖- optional:nacos:nacos-discovery.yaml management:endpoints:web:exposure:include: *Nacos配置并保存Sentinel限流规则
  4. Nacos配置中心添加配置文件 注建议单独起resource的名字不要将路由信息当做resource [{resource: echo,limitApp: default,grade: 1,count: 1,strategy: 0,controlBehavior: 0,clusterMode: false},{resource: echo2,limitApp: default,grade: 1,count: 1,strategy: 0,controlBehavior: 0,clusterMode: false} ]2. 服务端后台代码 注意echo2()方法是通过代码层面的try catch来进行限流/熔断的在nacos配置中定义的echo2的resource不能在该处添加SentinelResource注解 /*** Description Nacos生产者 控制层/ RestController RequestMapping(value nacosProviderController) public class NacosProviderController {Resource(name nacosProviderServiceImpl)private NacosProviderService nacosProviderService;GetMapping(value /echo/{str})SentinelResource(value echo, fallback echoFallback, fallbackClass EchoFallback.class,blockHandler echoBlockHandler, blockHandlerClass EchoFallback.class)public ResultMessageString echo(PathVariable String str) {return nacosProviderService.echo(str);}GetMapping(value /echo2/{str})public ResultMessageString echo2(PathVariable String str) {return nacosProviderService.echo2(str);} }3. 限流/熔断处理类 注意该类中的限流/熔断方法必须static修饰 /** Description echo方法 异常回调类/ public class EchoFallback {/** 遇到异常走的逻辑** param str 原方法的参数* param e 异常信息* return 异常回调方法返回值和原方法返回值一致/public static ResultMessageString echoFallback(String str, Throwable e) {ResultMessageString resultMessage new ResultMessage();String message 熔断-echo方法调用异常str: str \n e;resultMessage.setMessage(message);return resultMessage;}/** 方法限流逻辑** param str 原方法的参数* param e 异常信息* return 限流回调方法返回值和原方法返回值一致/public static ResultMessageString echoBlockHandler(String str, BlockException e) {ResultMessageString resultMessage new ResultMessage();String message 限流-echo方法进行 限流str: str \n e;resultMessage.setMessage(message);return resultMessage;} }4. 生产者业务逻辑代码 注echo2()方法中使用的是sentinel的api实现限流高亮的部分需要指定配置文件中已存在或在代码中定义限流规则的resource即echo2资源需要对应上方Nacos配置文件中的resource。 /** Description Nacos生产者 业务逻辑实现类/ Service public class NacosProviderServiceImpl implements NacosProviderService {/** 测试限流/熔断的方法** param str 原方法的参数* return 回调/Overridepublic ResultMessageString echo(String str) {ResultMessageString resultMessage new ResultMessage();if (devilvan.equals(str)) {String msg Hello Nacos Discovery str;resultMessage.setMessage(msg);} else {throw new RuntimeException();}return resultMessage;}/** 测试sentinel设置资源并使用的方法** param str 入参字符串* return 回调*/Overridepublic ResultMessageString echo2(String str) {String resource echo2;ResultMessageString resultMessage new ResultMessage();Entry entry null;try {entry SphU.entry(resource);if (devilvan.equals(str)) {String msg Hello Nacos Discovery str;resultMessage.setMessage(msg);} else {throw new RuntimeException();}} catch (BlockException e) {String msg 限流-echo2方法调用异常str: str \n e;resultMessage.setMessage(msg);} catch (Exception e) {String msg 熔断-echo2方法调用异常str: str \n e;resultMessage.setMessage(msg);} finally {if (entry ! null) {entry.exit();}}return resultMessage;} }