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

铜山微网站开发定州网页设计

铜山微网站开发,定州网页设计,企业管理咨询报告案例,渝北网站建设文章目录 1.微服务基本环境调整1.对10004模块的application.yml调整2.启动nacos以及一个消费者两个提供者3.测试1.输入http://localhost:8848/nacos/index.html 来查看注册情况2.浏览器访问 http://localhost:81/member/nacos/consumer/get/13.结果 2.使用OpenFeign实现微服务模… 文章目录 1.微服务基本环境调整1.对10004模块的application.yml调整2.启动nacos以及一个消费者两个提供者3.测试1.输入http://localhost:8848/nacos/index.html 来查看注册情况2.浏览器访问 http://localhost:81/member/nacos/consumer/get/13.结果 2.使用OpenFeign实现微服务模块间的远程调用1.消费者的pom.xml引入OpenFeign和Nacos的服务发现2.消费者的application.yml配置nacos服务注册3.消费者的启动类开启nacos的服务发现以及启动OpenFeign4.com/sun/springcloud/service/MemberOpenfeignService.java 编写与远程调用的方法匹配的接口1.将要远程调用的方法整个复制到这个接口然后去掉方法体2.在接口上添加FeignClient注解指定远程调用的服务在nacos中的名字 5.编写一个controller进行远程调用1.创建一个MemberOpenFeignController的controller并将要远程调用的controller上面的注解复制过来不能改2.依赖注入刚才编写的远程调用的接口的动态代理对象3.将要远程调用的接口再复制过来按Tab使用copilot来自动补全远程调用的代码 6.测试1.启动nacos81模块1000410006模块2.访问nacos查看注册情况3.浏览器输入 http://localhost:81/member/openfeign/get/1 必须加上http:// 7.切换负载均衡算法1.编写配置类注入一个负载均衡算法的bean2.重新启动报错bean已经被定义了说明之前可能定义了同样id的负载均衡算法的bean3.换一个id即可然后重新启动4.测试浏览器访问几次有时会出现超时的情况OpenFeign默认超时时间为1s5.设置超时时间 application.yml1.全局配置2.单个Feign客户端配置 6.又检查了一下远程调用的方法之前设置了休眠时间删除即可。。。 3.服务消费者整合Sentinel进行服务保护1.pom.xml引入Sentinel2.application.yml 配置Sentinel的客户端和服务端3.测试1.启动nacossentinel2.启动811000410006模块3.浏览器输入http://localhost:8080/ 进入Sentinel的服务端4.浏览器输入http://192.168.137.1:8848/nacos/index.html进入nacos查看注册情况5.浏览器访问 http://localhost:81/member/openfeign/get/1 然后查看Sentinel控制台 4.需求分析5.开始配置之前进行测试当10004和10006都down掉时不断请求会发生什么1.首先关闭10004和10006微服务2.浏览器发送请求 http://localhost:81/member/openfeign/get/1发现是超时3.浏览器发送请求 http://localhost:81/member/openfeign/get/1 可以发现服务不可用 6. 81模块配置如果远程调用的服务出现异常则立即返回结果1.MemberFeignFallbackService.java 实现 MemberOpenfeignService.java 并注入容器2.在application.yml配置启用openfeign和sentinel的整合3.MemberOpenfeignService 添加fallback属性指定出现异常要处理的类4.重新启动81模块浏览器输入 http://localhost:81/member/openfeign/get/1测试5.关闭10004和10006再次进行测试成功处理异常 4.消费者使用OpenFeign整合Sentinel进行服务保护小结1.服务消费者OpenFeign远程调用流程1.配置Nacos的服务发现和服务注册功能2.配置OpenFeign远程调用1.pom.xml引入OpenFeign依赖2.编写service接口存放服务发现和资源路径的信息3.编写controller进行远程调用 2.整合Sentinel进行服务保护流程1.配置Sentinel监控服务2.配置OpenFeign整合Sentinel使得远程调用出现异常集中处理 3.服务消费者OpenFeign远程调用整合Sentinel进行服务保护原理4.Sentinel仍然可以对这个controller进行流量控制熔断降级热点限流设置QPS为1 5.规则持久化1.规则持久化方案2.规则持久化原理3.需求分析4.具体配置1.在Nacos配置中心增加Sentinel的流控规则2.pom.xml引入nacos和sentinel持久化的依赖3.application.yml 拉取Nacos的配置信息并同步到Sentinel4.测试1.启动Nacos、Sentinel、81、10004、100062.查看Nacos注册情况3.浏览器快速请求 http://localhost:81/member/openfeign/get/1 流控规则生效4.查看同步到Sentinel的流控规则 5.其他规则配置 1.微服务基本环境调整 1.对10004模块的application.yml调整 2.启动nacos以及一个消费者两个提供者 目前的消费者是RibbonrestTemplate形式进行远程调用的 3.测试 1.输入http://localhost:8848/nacos/index.html 来查看注册情况 2.浏览器访问 http://localhost:81/member/nacos/consumer/get/1 3.结果 2.使用OpenFeign实现微服务模块间的远程调用 1.消费者的pom.xml引入OpenFeign和Nacos的服务发现 project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.example/groupIdartifactIde-commerce-center/artifactIdversion1.0-SNAPSHOT/version/parentartifactIdmember-service-nacos-consumer-81/artifactIdnameArchetype - member-service-nacos-consumer-81/nameurlhttp://maven.apache.org/urldependencies!-- 引入openfeign --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/dependency!--引入nacos的服务发现--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-nacos-discovery/artifactId/dependency!-- springboot web starter 用来监听端口--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId!-- 如果在子工程/模块指定了 version则以指定为准 --/dependency!--1. starter-actuator 是 springboot 程序的监控系统可以实现健康检查info 信息等2. 访问 http://localhost:10000/actuator 可以看到相关链接, 还可以做相关设置. --!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependency!-- lombok --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependency!-- test --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency!-- 公共模块的jar包 --dependencygroupIdorg.example/groupIdartifactIde_commerce_center-common-api/artifactIdversion1.0-SNAPSHOT/version/dependency/dependencies /project 2.消费者的application.yml配置nacos服务注册 server:port: 81 spring:application:name: member-service-nacos-consumer-81 # 配置nacos的服务注册cloud:nacos:discovery:server-addr: localhost:8848 # 配置要注册到的nacos地址根据实际情况填写3.消费者的启动类开启nacos的服务发现以及启动OpenFeign package com.sun.springcloud;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients;/*** author 孙显圣* version 1.0*/ SpringBootApplication // springboot启动类 EnableDiscoveryClient // 开启nacos服务发现 EnableFeignClients // 开启feign远程调用 public class MemberNacosCostomerApplication81 {public static void main(String[] args) {SpringApplication.run(MemberNacosCostomerApplication81.class, args);} } 4.com/sun/springcloud/service/MemberOpenfeignService.java 编写与远程调用的方法匹配的接口 1.将要远程调用的方法整个复制到这个接口然后去掉方法体 package com.sun.springcloud.service;import com.sun.springcloud.util.Result; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable;/*** Description:** Author sun* Create 2024/3/30 10:39* Version 1.0*/ public interface MemberOpenfeignService {/*** 根据id来获取某个会员的信息** param id 使用路径参数的形式传入参数* return 返回json格式的数据*/GetMapping(/memberget/{id}) // 这里使用的路径参数public Result getMemberById(PathVariable(id) Long id); } 2.在接口上添加FeignClient注解指定远程调用的服务在nacos中的名字 这样这个接口中就具备了所有远程调用微服务的信息后面在注入的时候就会注入针对这个接口的代理对象远程调用方法的时候通过FeignClient注解中的信息进行服务发现ip 端口 上下文路径并在前面加上http://最后再拼接上这个GetMapping注解中的资源路径完成远程调用简单来说这个接口需要包含要远程调用的服务发现和资源路径的信息这样才能够进行远程调用 package com.sun.springcloud.service;import com.sun.springcloud.util.Result; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable;/*** Description:** Author sun* Create 2024/3/30 10:39* Version 1.0*/ FeignClient(member-service-nacos-provider) // 会进行服务的发现发现服务的ip端口上下文路径 public interface MemberOpenfeignService {/*** 根据id来获取某个会员的信息** param id 使用路径参数的形式传入参数* return 返回json格式的数据*/GetMapping(/member/get/{id}) // 这里使用的路径参数public Result getMemberById(PathVariable(id) Long id); } 5.编写一个controller进行远程调用 1.创建一个MemberOpenFeignController的controller并将要远程调用的controller上面的注解复制过来不能改 package com.sun.springcloud.controller;import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RestController;/*** Description:** Author sun* Create 2024/3/30 10:53* Version 1.0*/ // 这两个注解是要远程调用的controller的注解 RestController Slf4j public class MemberOpenFeignController { } 2.依赖注入刚才编写的远程调用的接口的动态代理对象 package com.sun.springcloud.controller;import com.sun.springcloud.service.MemberOpenfeignService; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;/*** Description:** Author sun* Create 2024/3/30 10:53* Version 1.0*/ // 这两个注解是要远程调用的controller的注解 RestController Slf4j public class MemberOpenFeignController {Resourceprivate MemberOpenfeignService memberOpenFeignService; // 注入远程调用的接口 } 3.将要远程调用的接口再复制过来按Tab使用copilot来自动补全远程调用的代码 这里的url方法名参数都是可以修改的传入getMemberById的参数必须符合这个controller的要求getMemberById的返回类型也要匹配比如这里就必须使用RestController牢记接口三要素 url 参数 返回值建议如果只是想要远程调用一下的话就没必要修改了直接粘贴过来远程调用即可 package com.sun.springcloud.controller;import com.sun.springcloud.service.MemberOpenfeignService; import com.sun.springcloud.util.Result; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;/*** Description:** Author sun* Create 2024/3/30 10:53* Version 1.0*/ // 这两个注解是要远程调用的controller的注解 RestController Slf4j public class MemberOpenFeignController {Resourceprivate MemberOpenfeignService memberOpenFeignService; // 注入远程调用的接口/*** 根据id来获取某个会员的信息** param id 使用路径参数的形式传入参数* return 返回json格式的数据*/GetMapping(/member/openfeign/get/{id}) // 1.这里的url是可以改的public Result getMemberById(PathVariable(id) Long id) { // 2.这里的参数和方法名是可以改的// 远程调用member-service-nacos-provider的getMemberById方法return memberOpenFeignService.getMemberById(id); // 这里的参数和返回值是要远程调用的接口的参数和返回值} } 6.测试 1.启动nacos81模块1000410006模块 2.访问nacos查看注册情况 3.浏览器输入 http://localhost:81/member/openfeign/get/1 必须加上http:// 7.切换负载均衡算法 1.编写配置类注入一个负载均衡算法的bean package com.sun.springcloud.config;import com.netflix.loadbalancer.IRule; import com.netflix.loadbalancer.RandomRule; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;/** 配置类用于配置Ribbon的负载均衡策略* author 孙显圣* version 1.0*/ Configuration public class RibbonRule {Beanpublic IRule ribbonRule() {// 随机策略return new RandomRule();} } 2.重新启动报错bean已经被定义了说明之前可能定义了同样id的负载均衡算法的bean 3.换一个id即可然后重新启动 4.测试浏览器访问几次有时会出现超时的情况OpenFeign默认超时时间为1s 5.设置超时时间 application.yml 1.全局配置 feign:client:config:default:connectTimeout: 5000readTimeout: 10000 2.单个Feign客户端配置 feign:client:config:客户端的application-name:connectTimeout: 5000readTimeout: 10000 6.又检查了一下远程调用的方法之前设置了休眠时间删除即可。。。 3.服务消费者整合Sentinel进行服务保护 1.pom.xml引入Sentinel !-- 引入Sentinel --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-sentinel/artifactId/dependency2.application.yml 配置Sentinel的客户端和服务端 sentinel:transport:dashboard: localhost:8080 # 配置sentinel服务端的地址根据实际情况填写 port: 8719 # 配置sentinel客户端的端口根据实际情况填写如果冲突会自动1直到找到可用的端口3.测试 1.启动nacossentinel 2.启动811000410006模块 3.浏览器输入http://localhost:8080/ 进入Sentinel的服务端 4.浏览器输入http://192.168.137.1:8848/nacos/index.html进入nacos查看注册情况 5.浏览器访问 http://localhost:81/member/openfeign/get/1 然后查看Sentinel控制台 4.需求分析 5.开始配置之前进行测试 当10004和10006都down掉时不断请求会发生什么 1.首先关闭10004和10006微服务 2.浏览器发送请求 http://localhost:81/member/openfeign/get/1发现是超时 原因是OpenFeign会根据接口的信息来通过服务发现和资源路径找到要远程调用的接口并缓存在本地所以只要缓存还在就不会是服务不可用 3.浏览器发送请求 http://localhost:81/member/openfeign/get/1 可以发现服务不可用 此时的缓存已经不在OpenFeign重新从nacos获取服务信息但是获取不到所以会出现服务不可用的错误 6. 81模块配置如果远程调用的服务出现异常则立即返回结果 1.MemberFeignFallbackService.java 实现 MemberOpenfeignService.java 并注入容器 package com.sun.springcloud.service;import com.sun.springcloud.util.Result; import org.springframework.stereotype.Component;/*** Description: 会员服务的降级处理 当服务不可用时立即返回一个默认的结果** Author sun* Create 2024/3/30 14:32* Version 1.0*/ Component // 注入到spring容器中 public class MemberFeignFallbackService implements MemberOpenfeignService{Overridepublic Result getMemberById(Long id) {return Result.error(503, 服务降级返回, 服务不可用);} } 2.在application.yml配置启用openfeign和sentinel的整合 # 配置openfeign和sentinel的整合 feign:sentinel:enabled: true3.MemberOpenfeignService 添加fallback属性指定出现异常要处理的类 4.重新启动81模块浏览器输入 http://localhost:81/member/openfeign/get/1测试 5.关闭10004和10006再次进行测试成功处理异常 4.消费者使用OpenFeign整合Sentinel进行服务保护小结 1.服务消费者OpenFeign远程调用流程 1.配置Nacos的服务发现和服务注册功能 服务发现配置pom.xml和启动类开启服务发现的注解服务注册配置application.yml 2.配置OpenFeign远程调用 1.pom.xml引入OpenFeign依赖 2.编写service接口存放服务发现和资源路径的信息 将要远程调用的方法整个复制到这个接口然后去掉方法体在接口上添加FeignClient注解指定远程调用的服务在nacos中的名字 3.编写controller进行远程调用 将要远程调用的controller上面的注解复制过来不能改依赖注入刚才编写的远程调用的接口的动态代理对象将要远程调用的接口再复制过来去掉方法体按Tab使用copilot来自动补全远程调用的代码 2.整合Sentinel进行服务保护流程 1.配置Sentinel监控服务 pom.xml引入Sentinel依赖application.yml 配置Sentinel的客户端和服务端 2.配置OpenFeign整合Sentinel使得远程调用出现异常集中处理 编写一个类实现存放服务发现和资源路径的信息的service并实现其方法然后注入容器在application.yml配置启用openfeign和sentinel的整合在service中的FeignClient注解添加fallback属性指定出现处理异常的类 3.服务消费者OpenFeign远程调用整合Sentinel进行服务保护原理 4.Sentinel仍然可以对这个controller进行流量控制熔断降级热点限流 设置QPS为1 5.规则持久化 1.规则持久化方案 2.规则持久化原理 简单来说就是在Nacos配置Sentinel的规则然后在通过Sentinel监控的微服务通过底层通信同步到Sentinel上 3.需求分析 4.具体配置 1.在Nacos配置中心增加Sentinel的流控规则 2.pom.xml引入nacos和sentinel持久化的依赖 !-- 引入nacos和sentinel持久化的依赖 --dependencygroupIdcom.alibaba.csp/groupIdartifactIdsentinel-datasource-nacos/artifactId/dependency3.application.yml 拉取Nacos的配置信息并同步到Sentinel datasource:ds1: # 从Nacos中读取sentinel的规则配置nacos:server-addr: localhost:8848 # 配置要注册到的nacos地址根据实际情况填写dataId: member-service-nacos-consumer-81 # 配置要读取的配置的dataIdgroupId: DEFAULT_GROUP # 配置要读取的配置的groupIddata-type: json # 配置要读取的配置的类型rule-type: flow # 配置要读取的配置的规则类型为流控规则4.测试 1.启动Nacos、Sentinel、81、10004、10006 2.查看Nacos注册情况 3.浏览器快速请求 http://localhost:81/member/openfeign/get/1 流控规则生效 4.查看同步到Sentinel的流控规则 5.其他规则配置 官方文档
http://www.zqtcl.cn/news/361061/

相关文章:

  • 网站建设在线网站服务器和直播服务器一样吗
  • iapp网站做软件教程朋友圈广告投放平台
  • 优门设 网站网站代理 正规备案
  • 衡水做wap网站上海做网站吧
  • seo推广思路seo线下培训班
  • 没有备案的网站怎么做淘宝客html5开发手机网站
  • 酒店旅游团购网站建设推广普通话实践总结
  • 基本的网站开发技术路线建设网站的好处有哪些
  • 网站排行怎么做wordpress all in one seo插件
  • 河北特定网站建设推荐wordpress添加vip用户组
  • 北京商城网站建设地址asp.net网站开发 pdf
  • 如何用网页制作网站龙岩门户网站
  • 中国建设银行官网站下载建设网站弹出后加载不进去
  • 广告网站制作多少钱建设工程合同甲方
  • 一号网站建设誉重网站建设
  • 网站seo优化查询网站开发最合适的搭配
  • 做文员的网站知乎qq小程序怎么打开
  • 网站外链建设分析wordpress生成验证码发送代码
  • 网站设计与制作的过程珠海网站建设 旭洁科技
  • 网站建设项目经费的报告轻创网
  • 青岛网站建设制作软件开发培训学校排行
  • pk10网站怎么做网站建设名词
  • 秦皇岛哪有网站优化公司wordpress看图插件
  • ps做网站宽度想做个网站要多少钱
  • 马克斯网站建设外贸电商平台哪个网站最好
  • 国外网站做任务套利网络推广员怎么做
  • 如何创建一个网站用来存放东西wordpress 可以干嘛
  • 做健身俱乐部网站的目的和意义商超网站
  • 网站点击排名phpcms安装
  • 鹧鸪哨网站1v1深度开发最吸引人的营销广告文案