热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SpringCloud笔记(三)——Nacos

原标题:SpringCloud笔记(三)——NacosNacos学习视频链接:黑马程序员:https://ww

原标题:SpringCloud笔记(三)——Nacos


Nacos

学习视频链接:
黑马程序员:https://www.bilibili.com/video/BV1LQ4y127n4



1、认识文章来源地址43139.html与安装nacos



什么是nacos?

Nacos 支持基于 DNS 和基于 RPC 的服务发现(可以作为springcloud的注册中心)、动态配置服务(可以做配置中心)、动态 DNS 服务。

官方介绍是这样的:文章来源地址43139.html

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构(例如微服务范式、云原生范式)的服务基础设施。

官方网址:http://nacos.io


nacos安装

1、先到nacos的GitHub官网进行下载:https://github.com/alibwww.yii666.comaba/nacos/tags

请添加图片描述

2、下载完成后,点击解压到我们方便找到的路径当中

请添加图片描述

3、在命令行当中启动bin文件夹当中的startup.cmd

startup.cmd -m standalone

请添加图片描述

4、在浏览器中输入http://192.168.17.1:8848/nacos/index.html (默认的账号密码都是nacos)

请添加图片描述

如果需要修改端口,在conf文件夹当中用记事本打开application.properties文件,找到server.port修改即可
请添加图片描述


2、服务注册

1、在父工程中添加spring-cloud-alilbaba的管理依赖

<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
<version>2.2.5.RELEASEversion>
<type>pomtype>
<scope>importscope>
dependency>

2、添加nacos的客户端依赖

<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
dependency>

3、在yml配置文件当中配置naco服务地址

spring
cloud:
nacos:
server-addr: localhost:8848 #nacos服务地址

请添加图片描述


3、Nacos服务分级存储模型

请添加图片描述

关于服务跨集群调用问题


  • 服务调用尽可能选择本地集群的服务,跨集群调用延迟较高

  • 本地集www.yii666.com群不可访问时,再去访问其它集群

spring
cloud:
nacos:
server-addr: localhost:8848 #nacos服务地址
discovery:
cluster-name: 文章来源站点https://www.yii666.com/HZ #集群名称

请添加图片描述

如果没有定义集群默认默认就是归属本地

Nacos服务分级存储模型


  • 一级是服务,例如userService

  • 二级是集群,例如杭州/上海

  • 三级是实例,例如杭州机房的某台部署了userService的服务器

设置实例的集群属性方法:

在配置文件中添加spring.cloud.nacos.dicovery.cluster-name属性即可


4、NacosRule负载均衡

在没开启NacosRule负载均衡之前,Nacos默认使用轮询的方式在各个服务器当中进行访问。

配置NacosRule:

userService #配置服务名称
ribbon:
NFloadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule #开启NacosRule负载均衡


  • NacosRule负载均衡默认同集群服务实例优先

  • NacosRule确定了可用实例后,访问方式为随机访问

  • 如果跨集群访问会有警告信息



5、服务实例的权重设置


目的:在服务器设备性能好的机器上多承担一些用户请求,性能差的少承担一些用户请求

Nacos提供了权重配置来控制访问频率,权重越大则访问频率越高!

配置方式:

1、在Nacos控制台选中实例后面的编辑按钮

请添加图片描述

2、将权重设置为你想要的大小(0-1)即可(越小访问的几率也越小)

请添加图片描述


6、环境隔离配置

Nacos管理台有一个单独的菜单”命名空间”,里面默认存在一个名为"public" 的默认命名
空间,我们在使用Nacos时不管是作为注册中心还是配置中心,都是作用在该命名空间之下
的,那么这个命名空间到底起着什么作用呢?其实Nacos基于Namespace帮助用户逻辑隔离
多个命名空间,这可以帮助用户更好的管理测试、预发、生产等多环境服务和配置,让每个环
境的同一个配置(如数据库数据源)可以定义不同的值。

让我们先来看看隔离之前的配置:

开启两个服务分别开启了orderService和userService,此时在nacos控制台的界面为;

请添加图片描述

到nacos控制台新建一个命名空间名为dev

请添加图片描述

配置orderService环境隔离:

cloud:
nacos:
server-addr: localhost:8848 # nacos服务地址
discovery:
namespace: 7712e234-2a11-4bd6-a5ba-e12caedef75a #dev环境,此字符串为nacos控制台新建命名空间时生成的id

重启服务之后,nacos控制台显示为:

请添加图片描述
请添加图片描述

可以发现,orderService被分组到了dev,此时接口调用会发现orderService无法调用userService,提示服务器错误
请添加图片描述

圈红翻译:负载平衡器没有可用于客户端的服务器:userservice


可知


  1. namespace用来做环境隔离

  2. 每个namespace都有唯一id

  3. 不通namespace下的服务不可见



7、Nacos、Eureka

相同点


  1. 都支持服务注册和服条拉取

  2. 都支持服务提供者心跳方式做健康检测

区别


  1. Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式

  2. 临时实例心跳不正常会被剔除,非临时实例则不会被
    剔除

  3. Nacos支持服务列表变更的消息推送模式,服务列表
    更新更及时

  4. Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式

来源于:SpringCloud笔记(三)——Nacos


推荐阅读
  • VSCode快速查看函数定义和代码追踪方法详解
    本文详细介绍了在VSCode中快速查看函数定义和代码追踪的方法,包括跳转到定义位置的三种方式和返回跳转前的位置的快捷键。同时,还介绍了代码追踪插件的使用以及对符号跳转的不足之处。文章指出,直接跳转到定义和实现的位置对于程序员来说非常重要,但需要语言本身的支持。以TypeScript为例,按下F12即可跳转到函数的定义处。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • springboot启动不了_Spring Boot + MyBatis 多模块搭建教程
    作者:枫本非凡来源:www.cnblogs.comorzlinp9717399.html一、前言1、创建父工程最近公司项目准备开始重构,框 ... [详细]
  • 寻求更强大的身份和访问管理(IAM)平台的企业正在转向云,并接受身份即服务(IDaaS)的灵活性。要为IAM选择正确的场外解决方案,业务管理人员和IT专业人员必须在实施之前评估安全 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了SpringCloudRibbon部分源码相关的知识,希望对你有一定的参考价值。1:ribbon是提供通过servi ... [详细]
  • clickhouse 二(springboot+mybatis配置clickhouse,实现插入查询)
    原标题:clickhouse二(springboot+mybatis配置clickhouse,实现插入查询)开发步骤 ... [详细]
  • JavaScript实现拖动对话框效果
    原标题:JavaScript实现拖动对话框效果代码实现:<!DOCTYPEhtml><htmllan ... [详细]
  • yii框架目录结构详细分析说明
    php教程|php手册yii,目录结构php教程-php手册yii框架目录结构详细分析说明猫狗大战源码,华为云电脑ubuntu,梦见放走很多爬虫,parttmpphp,seo页面描 ... [详细]
  • 原标题:(C语言实现)页面置换——先进先出算法(FIFO)一、设计目的:加深对请求页式存储管理实现原理的理解,掌握页面置换算法中的 ... [详细]
  • 1.使用升级命令update的问题composerupdate提示下面的错误:1、Warning:Thisdevelopmentbuildofcomposer ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
author-avatar
mobiledu2502874643
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有