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

学做家常菜去那个网站浏览器怎么下载视频

学做家常菜去那个网站,浏览器怎么下载视频,河南做网站最好的公司,百度不到公司网站在以 Nacos 作为服务注册与服务发现的微服务部署架构里,出于高可用性考量,每个微服务通常会部署至少两个实例。然而,在线上服务部署过程中,当停止其中一个实例时,因 Gateway 更新存在延迟,在新服务启动阶段…

       在以 Nacos 作为服务注册与服务发现的微服务部署架构里,出于高可用性考量,每个微服务通常会部署至少两个实例。然而,在线上服务部署过程中,当停止其中一个实例时,因 Gateway 更新存在延迟,在新服务启动阶段,仍会有请求被错误分配至该已停止实例,进而致使前端调用服务出现不可用状况。本文旨在从Nacos工作机制出发,详细阐述一种借助 Nacos API 达成前端无感知的微服务部署方法,为解决该问题提供有效思路与方案 。

一. Nacos 服务注册与发现的工作机制

1. 服务注册流程

(1)服务实例启动

当一个服务实例启动时,它会读取配置文件中关于 Nacos 服务注册中心的地址信息。

(2)发送注册请求

服务实例使用 Nacos 客户端 SDK 向 Nacos 服务端发送注册请求,请求中包含服务实例的相关信息。例如,在 Spring Cloud 应用中,Spring Cloud Alibaba Nacos Discovery 会自动完成这一过程。

(3)Nacos 服务端处理

Nacos 服务端接收到注册请求后,会将服务实例信息存储在内存中的服务注册表中,并持久化到磁盘,以防止数据丢失。同时,Nacos 会为该服务实例分配一个唯一的实例 ID。

(4)心跳机制

服务实例注册成功后,会定期向 Nacos 服务端发送心跳包,以表明自己处于健康状态。Nacos 服务端会根据心跳信息判断服务实例的健康状态,如果在一定时间内没有收到某个服务实例的心跳包,会将其标记为不健康。

2.服务注销流程

(1)主动注销

  • 服务实例关闭:当服务实例需要正常关闭时,会调用 Nacos 客户端 SDK 的注销方法,向 Nacos 服务端发送注销请求。
  • 从Nacos管理后台下线微服务。
  • 通过Nacos API下线微服务。

(2)被动注销

  • 心跳超时:如果 Nacos 服务端在一定时间内(由配置的心跳超时时间决定)没有收到某个服务实例的心跳包,会将该服务实例标记为不健康。
  • 实例移除:经过一段时间(由配置的实例过期时间决定)后,Nacos 服务端会将标记为不健康的服务实例从服务注册表中移除。

(3)Nacos 服务端处理

Nacos 服务端接收到注销请求后,会从服务注册表中移除该服务实例的信息,并更新相关的服务元数据。

(4)通知订阅的客户端更新服务列表

3.部署思路

基于以上Nacos注销流程,我们可以在不停止微服务的情况下,先通过Nacos API使得某个微服务实例下线,在Nacos通知客户端(网关服务)更新服务列表后,再部署该实例。

二. 服务下线脚本

通过调用Nacos API nacos/v2/ns/instance,设置参数enabled=false,使服务在nacos中下线。

如果使用dubbo进行服务间通讯,则同时要把对应的dubbo服务也下线:

#!/bin/bash  # 定义一个数组来存储服务名称和端口号的映射
declare -A services_ports
services_ports[service1]=18001
services_ports[service2]=18002declare -A dubbo_ports
dubbo_ports[service1]=20900
dubbo_ports[service2]=20901username=nacos_username
password=nacos_passwordserver_ip=$1
service_name=$2
service_port=${services_ports[$service_name]}
dubbo_port=${dubbo_ports[$service_name]}echo set $service_name service offline 
curl -X PUT 'http://192.168.0.xx:8848/nacos/v2/ns/instance?namespaceId=prod&groupName=DEFAULT_GROUP&serviceName='$service_name'&ip='$server_ip'&port='$service_port'&clusterName=DEFAULT&enabled=false&username='$username'&password='$password''
echo ""
echo set $service_name dubbo service offline 
curl -X PUT 'http://192.168.0.xx:8848/nacos/v2/ns/instance?namespaceId=prod&groupName=DUBBO_GROUP&serviceName='$service_name'&ip='$server_ip'&port='$dubbo_port'&clusterName=DEFAULT&enabled=false&username='$username'&password='$password''  
echo ""

替换以下内容:

(1)脚本中的service1为具体的服务名称,端口号为对应服务的端口号。

(2)username为Nacos的用户名,password为nacos的密码。

(3)http://192.168.0.xx:8848 修改为nacos服务的地址和端口。

(4)修改Curl 命令后面的参数groupName的值为具体nacos中的group名称。

保存上面的脚本保存为set_service_off.sh,并设为可执行:

chmod +x set_service_off.sh

使用以下命令:

./set_service_off.sh ip service_name

其中ip为微服务所在服务器的ip;service_name 为脚本中定义的微服务名称

三. 服务网关更新服务列表

在调用服务下线后,等待1-3秒,将不再有请求分配到该实例上。可通过执行下线脚本后执行

sleep(3)

四. 部署微服务

通过脚本或者通过自动化部署平台集成服务下线和上线脚本。

五. 服务上线脚本

服务上线脚本可以复制服务上线脚本,修改Nacos API其中的参数enabled=true,来上线微服务。

#!/bin/bash  # 定义一个数组来存储服务名称和端口号的映射
declare -A services_ports
services_ports[service1]=18001
services_ports[service2]=18002declare -A dubbo_ports
dubbo_ports[service1]=20900
dubbo_ports[service2]=20901username=nacos_username
password=nacos_passwordserver_ip=$1
service_name=$2
service_port=${services_ports[$service_name]}
dubbo_port=${dubbo_ports[$service_name]}echo set $service_name service offline 
curl -X PUT 'http://192.168.0.xx:8848/nacos/v2/ns/instance?namespaceId=prod&groupName=DEFAULT_GROUP&serviceName='$service_name'&ip='$server_ip'&port='$service_port'&clusterName=DEFAULT&enabled=true&username='$username'&password='$password''
echo ""
echo set $service_name dubbo service offline 
curl -X PUT 'http://192.168.0.xx:8848/nacos/v2/ns/instance?namespaceId=prod&groupName=DUBBO_GROUP&serviceName='$service_name'&ip='$server_ip'&port='$dubbo_port'&clusterName=DEFAULT&enabled=true&username='$username'&password='$password''  
echo ""

五.部署完后端,再部署前端

注意后端接口要做到向前兼容,即老版本前端可以和新版本后端交互。这样后端更新后,不影响老版本用户的使用,然后再更新前端web或者客户端。将上述脚本集成到你的自动化部署脚本中。


文章转载自:

http://u3ljLSaP.hsjrk.cn
http://JeNZ7J4H.hsjrk.cn
http://ebSOCGXP.hsjrk.cn
http://o5bFuArl.hsjrk.cn
http://cO8c5d2D.hsjrk.cn
http://EmlfP8Te.hsjrk.cn
http://QYpaJ5fL.hsjrk.cn
http://AbomhTJe.hsjrk.cn
http://7vm8GD0I.hsjrk.cn
http://dDiNBXM6.hsjrk.cn
http://9gztNQF7.hsjrk.cn
http://eyuKuLaj.hsjrk.cn
http://cr1crQqM.hsjrk.cn
http://qHLYhx9y.hsjrk.cn
http://kpoKaBqN.hsjrk.cn
http://lwOZ9hSo.hsjrk.cn
http://LL4Ma4go.hsjrk.cn
http://hq6t69bD.hsjrk.cn
http://1Z8XAfCq.hsjrk.cn
http://xL4aM60L.hsjrk.cn
http://0RIL11KC.hsjrk.cn
http://5jidTrw4.hsjrk.cn
http://kwL9K2A6.hsjrk.cn
http://Evf3lg2I.hsjrk.cn
http://BYwOOx3D.hsjrk.cn
http://mUE3GVeE.hsjrk.cn
http://fu5Er5FR.hsjrk.cn
http://xhc26c5q.hsjrk.cn
http://3b6J4WWq.hsjrk.cn
http://yyIse0DC.hsjrk.cn
http://www.dtcms.com/wzjs/680926.html

相关文章:

  • 网站建设公司彩铃成都高端响应式网站开发
  • 一些做系统的网站网络营销工具介绍
  • 残疾人无障碍网站怎么做网站开发公司云鲸互创怎么联系
  • 买卖平台有哪些网站中国建设银行u盾官方网站
  • 职业教育培训网站海南做公司网站
  • 如何查询网站的备案信息网站做一样的算侵权么
  • 关于重新建设网站的申请表网站规划的要素不包括
  • 邯郸哪个公司做网站好网站 防采集
  • 怎么修改网站标题找大连做企业网站的公司
  • python做的网站多吗网站域名备案主机名
  • 陕煤建设集团韩城分公司网站企业信息公示系统 全国
  • 教育网站建设改版烟台网站建设方案策划
  • 广西建设教育协会网站搜索引擎推广效果
  • 如何建立个人免费网站用什么网站做动感相册
  • 福建泉州做网站公司微电影网站源码xiazai
  • 做电影种子下载网站违法吗网站开发建
  • 低功耗集成主板做网站成免费crm特色大爆料
  • 河北公司网站制作设计从零开始wordpress主题
  • 免费制作软件的网站建设内部网站目的
  • 诸城网站建设wordpress 阅读插件
  • 茶叶公司网站源码网站建设一百互联
  • 博罗网站建设费用h5网站建设+案例
  • 做模块高考题的网站免费网上商城
  • wordpress 全站过滤做的网站在百度找不到了
  • 深圳建站公司优化做排行网站
  • 聊天网站建设重庆广告公司十大排名
  • 快速设计网站wordpress 破解后台
  • 湘潭网站建设优等磐石网络网站设计一般包括网站结构设计
  • 个人做流量大的网站开源手机网站模板
  • 做高端生活方式的网站wordpress蜘蛛记录插件