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

app制作过程和网站一样吗c2c网站建设

app制作过程和网站一样吗,c2c网站建设,html5响应式布局网站,周口公司做网站一、OpenFeign基础应用 1.1 概念 OpenFeign是一种声明式、模板化的HTTP客户端。在Spring Cloud中使用OpenFeign,可以做到使用HTTP请求访问远程服务,就像调用本地方法一样的,开发者完全感知不到这是在调用远程方法,更感知不到在访…

一、OpenFeign基础应用

1.1 概念

OpenFeign是一种声明式、模板化的HTTP客户端。在Spring Cloud中使用OpenFeign,可以做到使用HTTP请求访问远程服务,就像调用本地方法一样的,开发者完全感知不到这是在调用远程方法,更感知不到在访问HTTP请求,用法其实就是编写一个接口,在接口上添加注解即可。

可以简单理解它是借鉴Ribbon的基础之上,封装的一套服务接口+注解的方式的远程调用器。

1.2 OpenFeign作用

它的宗旨是在编写Java Http客户端接口的时候变得更加容易,其底层整合了Ribbon,所以也支持负载均衡。

之前我们使用Ribbon的时候,利用RestTemplate对Http请求进行封装处理,但是在实际开发中,由于对服务依赖的调用不可能就一处,往往一个接口会被多处调用,所以通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用。所以OpenFeign在此基础之上做了进一步的封装,由它来帮助我们定义和实现依赖服务接口的定义,我们只需创建一个接口并使用注解的方式来配置它,即可完成对微服务提供方的接口绑定,简化Ribbon的操作。

1.3 具体案例

模拟两个服务提供者 9001,9002,一个消费者9003。三个服务

  • 首先在父工程的pom.xml文件引入
<dependency>  <groupId>org.springframework.cloud</groupId>  <artifactId>spring-cloud-starter-openfeign</artifactId>  <version>2.2.3.RELEASE</version>  
</dependency>
  • 然后再9003服务引入依赖
 <dependency>  <groupId>org.springframework.cloud</groupId>  <artifactId>spring-cloud-starter-openfeign</artifactId>  
</dependency>
  • 启动类增加@EnableFeignClients注解
  • 创建远程调用服务接口FeignService
@Service  
@FeignClient(value = "nacos-payment-provider")  
public interface FeignService {  @GetMapping("/demo")  public String demo();  
}
  • controller层调用

@Resource  
private FeignService feignService;  @GetMapping("/demoTest")  
public String demoTest(){  return feignService.demo();  
}

通过浏览器访问,负载均衡的调用9001 9002服务
image.png

1.4 OpenFeign超时时间控制

OpenFeign 客户端默认等待1秒钟,但是如果服务端业务超过1秒,则会报错。为了避免这样的情况,我们需要设置feign客户端的超时控制。

由于OpenFeign 底层是ribbon 。所以超时控制由ribbon来控制。在yml文件中配置

server:  port: 9003  
spring:  application:  name: cloud-nacos-consumer  cloud:  nacos:  discovery:  server-addr: localhost:8848  #设置feign客户端超时时间(OpenFeign默认支持ribbon)  
ribbon:  #指的是建立连接后从服务器读取到可用资源所用的时间  ReadTimeout: 5000  #指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间  ConnectTimeout: 5000

1.5 OpenFeign日志打印

Feign 提供了日志打印功能,我们可以通过配置来调整日志级别,从而了解 Feign 中 Http 请求的细节。 简单理解,就是对Feign接口的调用情况进行监控和输出

日志级别:

  • NONE:默认的,不显示任何日志;
  • BASIC:仅记录请求方法、URL、响应状态码及执行时间;
  • HEADERS:除了 BASIC 中定义的信息之外,还有请求和响应的头信息;
  • FULL:除了 HEADERS 中定义的信息之外,还有请求和响应的正文及元数据

具体应用

需要在启动类中通过@Bean注解注入OpenFeign的日志功能

@Bean  
Logger.Level feignLoggerLevel(){  return Logger.Level.FULL;  
}

在yaml配置文件中配置日志级别

server:  port: 9003  
spring:  application:  name: cloud-nacos-consumer  cloud:  nacos:  discovery:  server-addr: localhost:8848  #设置feign客户端超时时间(OpenFeign默认支持ribbon)  
ribbon:  #指的是建立连接后从服务器读取到可用资源所用的时间  ReadTimeout: 5000  #指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间  ConnectTimeout: 5000  logging:  level:  com.wsrbb.service.FeignService: debug

image.png

1.6 Sentinel整合OpenFeign

  • 在我们的9003消费者服务里面增加依赖
<dependency>  <groupId>com.alibaba.cloud</groupId>  <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>  
</dependency>  
<dependency>  <groupId>org.springframework.cloud</groupId>  <artifactId>spring-cloud-starter-openfeign</artifactId>  
</dependency>  
<dependency>  <groupId>com.alibaba.cloud</groupId>  <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>  
</dependency>
  • 激活Sentinel对OpenFeign的支持,配置yml
# 激活Sentinel对OpenFeign的支持
feign:sentinel:enabled: true
  • OpenFegin接口编写
    fallback: 定义容错的处理类,当调用远程接口失败或超时时,会调用对应接口的容错逻辑,fallback指定的类必须实现@FeignClient标记的接口
@Service  
@FeignClient(value = "nacos-payment-provider",fallback = FeignServiceFallBack.class)  
public interface FeignService {  @GetMapping("/demo")  public String demo();  
}@Component  
public class FeignServiceFallBack implements FeignService {  @Override  public String demo() {  return "服务降级";  }  
}
  • 测试访问,正常没问题,如果我们手动关闭9001 9002两个服务,则会出现
    image.png

二、 Sentinel持久化配置

在Sentinel Dashboard中配置规则之后重启应用就会丢失,所以实际生产环境中需要配置规则的持久化实现,Sentinel提供多种不同的数据源来持久化规则配置,包括file,redis、nacos、zk。

2.1 Sentinel规则持久化到Nacos

将限流规则持久化进Nacos保存,只要刷新8401某个接口地址,Sentinel控制台的流控规则就能感应到,同时只要Nacos里面的配置不删除,针对8401上Sentinel的流控规则就持续有效。
![[Pasted image 20240110233829.png]]

其实就是实现Sentinel Dashboard与Nacos之间的相互通信

通过Nacos配置文件修改流控规则—拉取—>Sentinel Dashboard界面显示最新的流控规则

**注意:在Nacos控制台上修改流控控制,虽然可以同步到Sentinel Dashboard,但是Nacos此时应该作为一个流控规则的持久化平台,所以正常操作过程应该是开发者在Sentinel Dashboard上修改流控规则后同步到Nacos,遗憾的是目前Sentinel Dashboard不支持该功能。

2.2 具体操作步骤

  • 引入依赖
<dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-datasource-nacos</artifactId><version>1.8.1</version>
</dependency>
  • 配置yaml文件
server:  port: 8042  
spring:  application:  name: cloud-sentinel-8042  cloud:  nacos:  discovery:  server-addr: localhost:8848  sentinel:  transport:  # 配置Sentinel dashboard地址  dashboard: localhost:8080  # 默认8719端口,键入被占用会自动从8719+1,直到找到未被占用的端口  port: 8719  web-context-unify: false  datasource:  nacos:  nacos:  server-addr: localhost:8848  groupId: DEFAULT_GROUP  dataId: ${spring.application.name}-flow-rules.json  rule-type: flow
  • 进入到Nacos控制台。添加配置

image.png

具体配置内容:

[   {"resource": "test1","limitApp": "default","grade": 1,"count": 2,"strategy": 0,"controlBehavior": 0"clusterMode": false}
]
---------------具体内容含义-----------------
resource:资源名称;
limitApp:来源应用;
grade:阈值类型,0表示线程数,1表示QPS;
count:单机阈值;
strategy:流控模式,0表示直接,1表示关联,2表示链路;
controlBehavior:流控效果,0表示快速失败,1表示Warm Up,2表示排队等待;
clusterMode:是否集群。

重启项目,刷新对应的接口,我们就可以在Sentinel界面上看到对应的限流规则
image.png

如果对你有帮助,可以关注博主(不定期更新各种技术文档)
给博主一个免费的点赞以示鼓励,谢谢 ! 欢迎各位🔎点赞👍评论收藏⭐️

http://www.yayakq.cn/news/999448/

相关文章:

  • 做网站必须要电脑吗网页设计网站怎么放到域名里
  • 哈尔滨建设银行网站首页企业网站代码模板
  • 江苏网站建设优化促销网站怎么做
  • 网站建设的中期报告网站注册账号怎么做
  • 网站如何做搜索功能的wordpress编辑器内容
  • 免费qq刷赞网站推广网站设计制作步骤
  • 做网站推广需要哪些知识江西赣州网站建设
  • 南京网站建设网站设计 雷仁网络台州市椒江建设工程机械厂网站
  • 信息化网站建设有什么用曹鹏wordpress教程 下载
  • 网站安全认证多少钱做网站排行
  • 个人网站怎么建立流程初学php者网站首页怎么做
  • 策勒网站建设网站建设文件夹名字
  • 东台做网站wordpress放在哪
  • 做设计网站的工作内容济南网站建设 首选搜点网络
  • 做网站的第一步是确定主题如何提升网站打开速度
  • 外国网站备案公司核名查询系统
  • 网站建设与优化计入什么科莫wordpress in depth
  • 伦教网站设计盐城专业网站建设哪家好
  • 宝坻手机网站建设vi设计什么意思
  • 出版社网站必须做企业可信认证嘛中国网站建设20强
  • 泉州微信网站建设公司网站开发 合同
  • 微信辅助网站制作自己创建一个app要多少钱
  • 建设网站怎么挣钱查网站服务器地址
  • 网站开发交什么税网站建设实训报告目的
  • 一家专做有机蔬菜的网站php网站怎么做缓存
  • 如何在网站做投票浦项建设(中国)有限公司网站
  • 网站怎么做可留言功能开发公司成本部职责
  • 备案 网站负责人手机网站建站
  • asp.net 4.0网站开发实例教程网站区域名是什么意思
  • 自己做网站统计wordpress更新方法