07-Spring Cloud

1、如何设计一个注册中心?

高可用:通过集群的方式

高并发:减少响应时间、提高吞吐量 并发用户数等,通过增加服务器性能、 扩展服务实例的方式

高性能:程序处理速度

考虑 数据存储结构、通信机制、集群同步

集群同步:涉及到数据同步,数据同步我们有哪些协议 raft 、distro、ZAB

2、Nacos 1.x作为注册中心的原理?

1、使用Http发送服务注册

2、查询服务提供方列表

3、定时拉取(每10秒)

4、如果检测到服务提供者异常,基于UDP协议推送更新

5、定时心跳(每5秒向服务端发送心跳包),检测服务状态

6、服务端做定时心跳任务检查,超过15s将节点设置为非健康状态,超过30s将节点进行删除。

7、集群数据 同步任务使用Distro协议。

3、Nacos服务领域模型有哪些?

4、Nacos中的Distro协议

1、Nacos 每个节点自己负责部分的写请求。

2、每个节点会把自己负责的新增数据同步给其他节点。

3、每个节点定时发送自己负责数据的校验值 到其他节点来保持数据一致性。

4、每个节点独立处理读请求,及时从本地发出响应。

5、新加入的 Distro 节点会进行全量数据拉取。(具体操作是轮询所有的 Distro节点,通过向其他

的机器发送请求拉取全量数据。)

5、配置中心的技术选型

如何进行技术选型:

1、社区活跃度

2、自己的技术栈

        我们选型rocketmq 和kafka ,rocketmq :不支持指定时间的延时消息

        rocketmq 是Java语言 kafka是 scala语言 ,我们技术栈是java ,方便进行二次开发,所以我们选择rocketmq。

3、产品功能

        rocketmq或者kafka技术栈是否hold住

6、Nacos1.x配置中心 长轮询机制?

        客户端会轮询向服务端发出一个长连接请求,这个长连接最多30s就会超时,服务端收到客户

端的请求会先判断当前是否有配置更新,有则立即返回,如果没有 服务端会新建一个定时任务线

程 把这个请求放到队列29.5s,最后0.5s再检测配置文件无论有没有更新都进行正常返回,但等待的

29.5s期间有配置更新可以提前结束并返回。

7、Nacos配置中心配置优先级?

优先级从高到低。

# ${application.name}-${profile}.${file- extension}            nacos-config-prod.yaml

# ${application.name}.${file-extension}         nacos-config.yaml

# ${application.name}         nacos-config

# extensionConfigs 扩展配置文件

# sharedConfigs 多个微服务公共配置 redis

8、Nacos2.x客户端探活机制?

        Nacos服务端会启动一个定时任务,每3秒执行一次,查看所有连接是否超过20s没有通信,

如果超过20秒没有通信,服务端就会给客户端发送一个请求,进行探活,如果能正常返回就表示这

个服务为正常服务,如果不能正常返回就将其连接删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/72398.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++中引用详解!

前言: 本文旨在讲解C中引用的相关操作,以及引用的一些注意事项!搬好小板凳,干货来了! 引用的概念 何谓引用呢?引用其实很容易理解,比如李华这个同学,他因为很调皮,所以…

【每日一题Day311】LC1761一个图中连通三元组的最小度数 | 枚举

一个图中连通三元组的最小度数【LC1761】 给你一个无向图,整数 n 表示图中节点的数目,edges 数组表示图中的边,其中 edges[i] [ui, vi] ,表示 ui 和 vi 之间有一条无向边。 一个 连通三元组 指的是 三个 节点组成的集合且这三个点…

目标检测网络系列之R-CNN

文章目录 前言目标检测任务数据集任务区别评判标准的区别IoU 交并比P-R曲线mAPR-CNNR-CNN的基本逻辑候选框挑选Efficient Graph-Based Image Segmentation算法Selective Search for Object Recognition尺寸变换特征提取与非极大值抑制非极大值抑制(NMS, Non-maximum suppressio…

提高数值预报水平:WRFDA资料同化实践技术应用

查看原文>>>WRFDA资料同化实践技术应用 数值预报已经成为提升预报质量的重要手段,而模式初值质量是决定数值预报质量的重要环节。资料同化作为提高模式初值质量的有效方法,成为当前气象、海洋和大气环境和水文等诸多领域科研、业务预报中的关键…

maven的scope总结

scope类型 compiletestprovidedruntimesystemimport compile 编译依赖范围。如果没有指定,就会默认使用该依赖范围。使用此依赖范围的Maven 依赖,对于编译、测试、运行三种classpath 都有效。大部分是这种,在编译、测试和运行的时候都需要使…

mysql5.7-基于docker-compose搭建主从同步

一、环境信息 系统版本:CentOS Linux release 7.9.2009 (Core) cat /etc/centos-release Docker版本:Docker version 20.10.6, build 370c289 docker --version Docker-compose版本:Docker Compose version v2.10.2 docker-compose --versio…

paddlenlp进行训练UIE-X相关问题

问题一:使用UIE-X 进行实体抽取的时候,如何提升OCR的识别(中文)准确率 问题描述:在使用UIE-X 模型微调时,进行实体抽取的时候,如何提升OCR的识别(中文)准确率,目前提取关系正常,但OCR识别结果存在错别字和未识别到的部分 OCR那里检测和识别要标注训练调整 OCR效果没有PA…

解密Kubernetes(K8s)集群的创建过程和关键步骤

文章目录 1. 准备环境2. 安装Docker3. 安装Kubernetes在Master节点上执行以下步骤:安装kubeadm、kubelet和kubectl初始化Master节点 在工作节点上执行以下步骤:加入集群 4. 设置Kubeconfig5. 安装网络插件6. 验证集群7. 部署应用程序8. 扩展和管理集群9.…

算法专栏——双指针

1.移动零 题目链接:移动 0_牛客题霸_牛客网 (nowcoder.com) 算法原理: 像这样子的将一整块数组划分很多部分可以称为数组划分,常用的解法可以是双指针。 说是双指针,但操作的对象是数组,因此下标就是指针。 双指针的…

Rust个人学习笔记

感悟:感觉rust好像缝合怪,既有python的影子,又有java和cpp的影子,可能这就是新型编程语言趋势吧。而且他的各种规范很严格很规范,比java还更工程,各种规范不对都有warning。 命名规范:蛇形命名…

【面试题精讲】Redis如何实现分布式锁

首发博客地址 系列文章地址 Redis 可以使用分布式锁来实现多个进程或多个线程之间的并发控制,以确保在给定时间内只有一个进程或线程可以访问临界资源。以下是一种使用 Redis 实现分布式锁的常见方法: 获取锁: 客户端尝试使用 SETNX命令在 Re…

LeetCode 48题: 旋转图像

题目 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]]…

MySql学习笔记04——DDL

DDL 建表语法 建表属于DDL语句,DDL语句包括create drop alter create table 表名(字段名1 数据类型,字段名2 数据类型,字段名3 数据类型,.. );表名一般建议使用t_开头,可读性更强。 Mysql数据类型 varchar 可变长度的字符串,最长为255&…

webserver 同步 I/O 模拟 Proactor 模式的工作流程

服务器基本框架、I/O 模型、事件处理模式 一、服务器编程基本框架 虽然服务器程序种类繁多,但其基本框架都一样,不同之处在于逻辑处理。 二、五种 I/O 模型 阻塞/非阻塞、同步/异步(网络IO)_呵呵哒( ̄▽ ̄)&…

LLVM编译安装

LLVM编译安装 #全量下载 git clone https://github.com/llvm/llvm-project.git #只下载最新commit版本 git clone --depth 1 https://github.com/llvm/llvm-project.git#配置 #!/bin/bash set -ex cmake -S llvm -B build -DCMAKE_INSTALL_PREFIX/data0/huozai/software/insta…

ElementUI浅尝辄止22:Alert 警告

用于页面中展示重要的提示信息。 常见于消息提示或警告框。 1.如何使用&#xff1f; 页面中的非浮层元素&#xff0c;不会自动消失。 //Alert 组件提供四种主题&#xff0c;由type属性指定&#xff0c;默认值为info。<template><el-alerttitle"成功提示的文案&…

python如何爬取手机app的数据

引言 随着移动互联网的发展&#xff0c;App已经成为了人们生活中必不可少的一部分。对于开发者来说&#xff0c;了解用户对App的使用情况和反馈意见非常重要。因此&#xff0c;爬取手机App的数据成为了一项必备技能。 本文将介绍如何使用Python爬取手机App的数据&#xff0c;并…

Increment Selection 插件

Increment Selection 插件实现递增 初次使用 按下快捷键 Alt Shift 鼠标左键向下拖拽 向下拖拽之后&#xff0c;在输入一个数字&#xff0c;比如我这里输入了一个数字1 然后按下快捷键 Ctrl Shift ← 进行选中数字 然后按下快捷键 Ctrl Alt i 建自动递增。 然后鼠标随…

使用cmake,将github上的某一个库进行集成到vs2022上

可以参考如下链接的内容: (还未完成,将在后序补充) 1.首先使用cmake,得到对应库的lib,include,bin文件夹 可以参考 https://www.youtube.com/watch?vu5-Df1YlxCI 2.现在我用cmake对这个第三方库进行编译&#xff0c;生成了三个文件夹&#xff1a;一个放的是lib文件(lib文件…

c#using关键字的作用

https://blog.csdn.net/Mona_Zhao/article/details/91363446 using关键字的三种作用&#xff1a; 1. 引用命名空间&#xff1b; 2. 为命名空间或者类型创建别名&#xff1b; 3. 使用using语句。 &#xff08;1&#xff09;引用命名空间 类似于c和c的#include<>, pyt…