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

网站开发需要注意什么中国建设银行英语网站

网站开发需要注意什么,中国建设银行英语网站,做网站签了合同后不想做了,推广赚钱平台有哪些目录 1. Nacos 的底层实现原理 1.1 配置中心自动刷新实现原理 1.2 注册中心底层实现原理 2. Nacos 注册中心的两种调用方式 2.1 RestTemplate Spring Cloud LoadBalancer 的调用方式 2.2 使用 OpenFeign Spring Cloud LoadBalancer 1. Nacos 的底层实现原理 1.1 配置中心…

目录

1. Nacos 的底层实现原理

1.1 配置中心自动刷新实现原理

1.2  注册中心底层实现原理

2. Nacos 注册中心的两种调用方式

 2.1 RestTemplate + Spring Cloud LoadBalancer 的调用方式

2.2 使用 OpenFeign + Spring Cloud LoadBalancer 


1. Nacos 的底层实现原理

1.1 配置中心自动刷新实现原理

Nacos 配置中心的自动刷新,其底层是基于长轮询+事件驱动的方式来实现的。

长轮询:客户端通过发送HTTP长轮询请求到Nacos服务器来实现配置更新的监听机制。这样做的目的是减少频繁的请求,同时能够保证配置更新时能快速通知到客户端。

事件驱动:当注册中心发生改变了,发生事件了,就会把这个事件推送给订阅者。

对比长连接来理解长轮询 >>

长连接(Persistent Connection):

  • 长连接是指在一次连接建立之后,客户端和服务器之间的连接会保持活跃,直到其中一方显式地关闭连接。
  • 长连接中,TCP连接默认不会在传输了HTTP响应后立即关闭,而是可以用来传输多个请求和响应。
  • 长连接减少了频繁建立和关闭连接的开销,但如果连接数多了,服务器端的资源压力会比较大。

长轮询(Long Polling):

  • 长轮询是,客户端发起请求到服务器,如果服务器端没有数据更新,它不会立即响应,而是保持这个请求开放(保持一段时间的连接),直到有数据更新或者超时。
  • 当有数据更新时,服务器响应请求,发送更新给客户端。客户端处理完响应后,会再次发起新的请求,重新开始长轮询。
  • 长轮询不是持续的网络连接,每次轮询完成后连接都会关闭,然后客户端再发起新的请求。这导致在每个轮询周期之间会有短暂的延迟。

基于以上对比,还可以看出长轮询是有助于 Nacos 进行健康检测的,因为健康检测就是隔一段时间发送心跳包。

🍁配置中心具体执行流程如下:

1. 客户端向 Nacos 服务器发送一个带有监听器的长轮询请求,以获取某个特定配置的值。

2. Nacos 服务器收到这个长轮询请求后,会检查该配置是否发生了变化。如果没有变化,则该请求将被阻塞,直到超时或者配置发生变化。(通常设置一个较长的超时时间,比如30秒)

3. 当配置发生变化时,Nacos 服务器会立即响应,并将新的配置响应给客户端。

4. 客户端接收到新的配置值之后,可以根据需要跟新自身的配置。

1.2  注册中心底层实现原理

Nacos 注册中心的底层实现主要依赖于两个关键的组件:服务注册 + 服务发现。

对于服务注册和服务发现的不是很理解的可以先去看看我的这篇文章:https://blog.csdn.net/xaiobit_hl/article/details/134142521

🍁Nacos 注册中心的执行流程如下

1. 服务注册:

  • 当服务启动的时候,它会向Nacos服务器发送一个注册请求,包含自己的元数据据信息
  • Nacos服务器接受到注册请求后,会在内存中维护一个注册表,然后将服务提供者的信息(如服务名、IP、端口、健康状态等)存储到服务注册表中,用于后续的服务发现。

2. 服务同步 (如果部署了多个Nacos实例):

  • Nacos集群中的服务同步机制确保所有的Nacos实例包含所有服务的最新信息。
  • 同步过程通常由Nacos集群内部协调完成,确保每个实例的数据一致性

3. 心跳机制:

  • 服务实例会定期向Nacos服务器发送心跳来保持其注册信息的活跃状态,表明自己的健康状态和可用性。
  • 如果Nacos在配置的心跳时间内没有收到某服务实例的心跳,它将认为该实例不可用,并可能将其从服务列表中剔除。

4.. 服务发现:

  • 服务消费者在调用服务时,会向Nacos发送一个服务发现请求。
  • Nacos会返回一份可用服务实例的列表,客户端基于这份列表通过负载均衡策略选择一个实例进行调用。

5. 负载均衡:

  • 在服务发现的过程中,Nacos还提供了负载均衡的支持,消费者可以选择合适的负载均衡策略来选择其中一个或多个实例进行调用。
  • Nacos 里的负载均衡策略有两种:权重 + CMDB。

2. Nacos 注册中心的两种调用方式

当 Nacos 注册了 Restful 接口时,它 的调用方式主要有两种:

  1. 使用 RestTemplate + Spring Cloud LoadBalancer
  2. 使用 OpenFeign + Spring Cloud LoadBalancer 

 2.1 RestTemplate + Spring Cloud LoadBalancer 的调用方式

实现步骤:

  1. 添加依赖:nacos + loadbalancer
  2. 设置配置信息
  3. 编写调用代码

① 添加依赖:nacos + loadbalancer

<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-loadbalancer</artifactId>
</dependency>

② 设置配置信息

spring:application:name: nacos-discovery-businesscloud:nacos:discovery:server-addr: localhost:8848username: nacospassword: nacosregister-enabled: false # 设置消费者不要注册到 Nacos

③ 编写调用代码

此处又分为两步实现:

  1. 增加 RestTemplate 的 LoadBalanced 支持
  2. 使用 RestTemplate 调用接口

1. 增加 RestTemplate 的 LoadBalanced 支持

        在Spring Boot启动类上添加 @EnableDiscoveryClient 注解,然后使用 @LoadBalanced 注解替换 Ioc 容器中的 RestTemplate。

@SpringBootApplication
@EnableDiscoveryClient // 增加 RestTemplate 的 LoadBalanced 支持
public class ConsumerApplication {@LoadBalanced@Beanpublic RestTemplate restTemplate() {return new RestTemplate();}public static void main(String[] args) {SpringApplication.run(ConsumerApplication.class, args);}
}

2. 使用 RestTemplate 调用接口

@RestController // 消费者
public class BusinessController2 {@Autowiredprivate RestTemplate restTemplate;@RequestMapping("/getnamebyid")public String getNameById(Integer id) {return restTemplate.getForObject("http://nacos-discovery-demo/
user/getnamebyid?id="+id,String.class);}
}

2.2 使用 OpenFeign + Spring Cloud LoadBalancer 

使用这种方式调用注册中心,实现步骤分为以下 5 步:

  1. 添加框架支持 【nacos discovery、spring cloud LoadBalancer、spring cloud OpenFeign】
  2. 配置 Nacos 连接信息
  3. 开启 OpenFeign 功能
  4. 声明 OpenFeign 式的 Service 【生产者的的服务】
  5. 调用服务【调用生产者的服务】

具体的实现代码可以参考我的上一篇博客:https://blog.csdn.net/xaiobit_hl/article/details/134142521 

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

相关文章:

  • 网站被百度k掉怎么办网站滑动效果怎么做
  • 网站上线后如何换模版手机端网站开发建设内容
  • wap 网站源码网络舆情监测工作总结
  • 珠海模板网站建设江苏省建设工程安全监督网站
  • 厦门最早做网站的公司搭建正规网站
  • 厦门市建设协会网站首页网站推广页
  • 网站发布 图片看不到优化推广什么意思
  • 洛阳网站建设找洛阳铭信网络百度seo优化价格
  • 网站建设飠金手指下拉做百度手机网站快速排
  • 什么网站可免费发布信息东莞免费企业网站建设
  • 专业3合1网站建设电话网站整体策划与设计
  • 天河建设网站开发wordpress使用个人写的页面
  • 天津公司建站3d人物建模软件
  • form e哪个网站做网页qq邮箱
  • 物流建设网站总结服务器租用
  • 重庆网站排名优化教程私人代理服务器
  • vs2012怎么做网站电子商城采购流程
  • 常州金坛网站建设仿站违法吗
  • 中企动力建的网站如何从哪里找外贸公司电话
  • js 网站首页下拉广告淘大象关键词排名查询
  • 网站项目建设建设期详情页制作
  • 网站的分页效果怎么做最热门网页游戏排行榜
  • 上饶高端网站建设wordpress添加友链
  • 十度公司做网站怎么样erp软件怎么安装
  • 懂做网站怎么赚钱网站建设评审会
  • 网站域名注册网站WordPress调用外链
  • 做网站常见程序wordpress文章内乱码
  • 南昌网站建设哪家好薇百度搜索引擎下载免费
  • 厦门app网站设计详情页设计公司
  • 深圳市福田建设股份有限公司网站长沙市网站推广哪家专业