今日总结

目录

今日总结

详细内容

java随笔录

微服务间的远程调用

配置Feign的开发环境

熔断降级

AI随探录

张量

RNN(传统序列模型):循环神经网络

多层结构

双向结构

多层+双向

代码随想录

今天偷懒了,以后每天早上写。


详细内容

java随笔录

微服务间的远程调用

微服务之间难免会存在远程调用,在Spring Cloud中可以使用Feign进行远程调用。

Feign是一个声明式的http客户端,官方地址:https://github.com/OpenFeign/feign

配置Feign的开发环境

1. 首先在模块中添加依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- Spring Cloud 微服务远程调用 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
    <groupId>io.github.openfeign</groupId>
    <artifactId>feign-httpclient</artifactId>
</dependency>
<!--feign支持Multipart格式传参-->
<dependency>
    <groupId>io.github.openfeign.form</groupId>
    <artifactId>feign-form</artifactId>
    <version>3.8.0</version>
</dependency>
<dependency>
    <groupId>io.github.openfeign.form</groupId>
    <artifactId>feign-form-spring</artifactId>
    <version>3.8.0</version>
</dependency>

2. 在ymlProperties配置文件中进行配置(如果采用nacos进行配置,如下所示):

feign:
  hystrix:
    enabled: true
  circuitbreaker:
    enabled: true
hystrix:
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 30000  #熔断超时时间
ribbon:
  ConnectTimeout: 60000 #连接超时时间
  ReadTimeout: 60000 #读超时时间
  MaxAutoRetries: 0 #重试次数
  MaxAutoRetriesNextServer: 1 #切换实例的重试次数

熔断降级

某个服务远程调用另一个服务的上传文件接口,当微服务运行不正常会导致无法正常调用微服务,此时会出现异常,如果这种异常不去处理可能导致雪崩效应。

微服务的雪崩效应表现在服务与服务之间调用,当其中一个服务无法提供服务可能导致其它服务也死掉,比如:服务B调用服务A,由于A服务异常导致B服务响应缓慢,最后B、C等服务都不可用,像这样由一个服务所引起的一连串的多个服务无法提供服务即是微服务的雪崩效应。

对此,可以采用熔断和降级的方法解决,二者属于不同的技术手段,但二者又存在联系。

熔断:

当下游服务异常而断开与上游服务的交互,它就相当于保险丝,下游服务异常触发了熔断,从而保证上游服务不受影响。

降级:

当下游服务异常触发熔断后,上游服务就不再去调用异常的微服务而是执行了降级处理逻辑,这个降级处理逻辑可以是本地一个单独的方法。

AI随探录

张量

在人工智能领域,张量(Tensor) 是深度学习模型(如 CNN、RNN)中的核心数据结构,用于表示和处理多维数据。

RNN(传统序列模型):循环神经网络

曾是序列建模领域的主流模型,被广泛应用于各类NLP任务,但随着技术的发展,RNN已经被结构灵活、计算效率更高的Transform模型所取代,后者已经成为当前自然语言处理的主流方法。

RNN就是一个带循环连接的隐藏层, 

最后总结公式:

多层结构

为了捕捉更复杂的语言特正,让多个RNN层堆叠起来,让不同的层次去学习不同层次的信息。 

多层RNN结果,每一层的输出序列会作为下一层的输入序列。

双向结构

基础的RNN每个时间步值输出一个隐藏层状态,该状态仅包含来自上文的信息,而无法利用当前词之后的下文,因此双向结构可以解决此问题。

双向RNN同时使用两层RNN:
正向RNN:按照时间顺序处理序列(从前到后)

反向RNN:逆时间

每个时间步的输出,是正反两向的组合

                                              

多层+双向

代码随想录

今天偷懒了,以后每天早上写。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐