首页 > 其他分享 >Nacos

Nacos

时间:2024-10-24 22:47:20浏览次数:1  
标签:服务 配置 Nacos nacos 实例 集群

Nacos注册中心

①:Nacos基础Linux的安装配置

 nacos的默认端口号为8848

登录的用户名和密码默认的都是nacos

②:服务注册到Nacos

<!--父工程管理依赖-->
      <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
           <version>2021.1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <!--Nacos客户端依赖包-->
 <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2021.1</version>
        </dependency>

主要bug
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.Bootstrapper
这个报错主要原因是springcloud与springboot版本之间的问题。

打开查看spring alibaba、springcloud、springboot对应版本

③:demo演示

 

④:Nacos服务分级存储模型

 

⑤:服务跨集群调用问题

服务调用尽可能选择本地集群的服务,跨集群调用延迟较高
本地集群不可访问时候、再去访问其他集群

⑥:服务集群属性

⑥:根据集群负载均衡

⑦:根据权重负载均衡

实际部署中会出现这样的场景
服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求
Nacos提供了权重配置来控制访问频率,权重越大则访问频率越高

包括服务器的升级、我们可以使用权重来使得某个微服务无人访问,然后停机升级。这样也不会影响正在使用的用户

实例的权重控制
Nacos控制台可以设置实例的权重值,0~1之间
同集群内的多个实例,权重越高被访问的频率越高
权重设置为0则完全不会被访问

 

⑧:环境隔离 - namespace

Nacos中服务存储和数据存储的最外层都是一个名为namespace的东西,用来做最外层隔离

 搭建过程

 

 

 

Nacos环境隔离
namespace用来做环境隔离
每个namespace都有唯一id
不同namespace下的服务不可见

⑨:nacos注册中心细节分析

⑩:临时实例与非临时实例

临时实例的情况下,如果你终止程序,过30s,到nacos中查看就会发现爆红然后直接消失(被nacos踢出)
非临时实例终止程序,nacos中查看该服务爆红,但不会踢出。重新启动非临时实力即可

 

nacos与eureka的区别

1.Nacos与eureka的共同点
   都支持服务注册和服务拉取
   都支持服务提供者心跳方式做健康检测
2.Nacos与Eureka的区别
   Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式
   临时实例心跳不正常会被剔除,非临时实例则不会被剔除
   Nacos支持服务列表变更的消息推送模式,服务列表更新更及时
   Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式 ; Eureka采用AP方式

2.微服务架构组件

①:Nacos配置管理

配置更改热更新

 : Nacos配置文件中的内容不是随便写的,不是把项目中的yml配置文件拉进去就可以了,我们只写一些通用的、需要热更新的内容。
像数据库地址一般都是固定的,就不必写。

 data ID: 服务器名-开发环境-后缀名

 如此一来我们就配置好了,接下来就需要将微服务连接上配置

②:统一配置管理

服务获取配置的步骤、顺序如下:

 

 注意: springboot 2.4以后,bootstrap默认关闭,你需要添加依赖

   <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
            <version>3.1.1</version>
        </dependency>

 这个配置在微服务本地配置是不存在的,也是刚刚在nacos当中的配置。
输出的日期与nacos配置当中一直,这就 说明我们确实获取到了nacos中的配置

③:热更新配置

④:多环境配置共享

共享前提: 微服务的bootstrap配置名相同

spring:
  application:
    name: orderService

 

 关于配置的拆分管理

⑤:nacos集群搭建

点击观看

1.搭建MySQL集群并初始化数据库表
2.下载解压nacos
3.修改集群配置(节点信息)、数据库配置
4.分别启动多个nacos节点
5.nginx反向代理

⑥:RestTemplate方式调用存在的问题

 这样的代码可读性差、参数复杂URL难以维护

⑦:Feign声明式http客户端

 feignclient 客户端名字根据你服务名来的,可以要yml文件中查看,需要调用哪个服务就放哪个名字进去

⑧:自定义Feign配置

 

方式一是配置文件,feign.client.config.xxx.loggerLevel
如果xxx是default则代表全局
如果xxx是服务名称,例如userservice则代表某服务

方式二是java代码配置Logger.Level这个Bean
如果在@EnableFeignClients注解声明则代表全局
如果在@FeignClient注解中声明则代表某服务

 

⑨:Feign性能调优

Feign底层的客户端实现
URLConnection: 默认实现,不支持连接池
Apache HttpClient: 支持连接池
OKHttp: 支持连接池
我们知道没有连接池的情况下,需要每次都重连和断开,影响性能

因此优化Feign的性能主要包括:

使用连接池代替默认的URLConnection
日志级别,最好用basic或none

 

标签:服务,配置,Nacos,nacos,实例,集群
From: https://www.cnblogs.com/zhao-ke-ming/p/18501523

相关文章

  • 全网最详细K8S部署Nacos集群
    K8S部署Nacos集群简介Nacos是阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台,特别设计用于简化云原生应用的构建与管理。Nacos的核心特性包括:服务发现与健康检查:Nacos支持DNS与RPC方式的服务发现机制,能够自动发现、路由及负载均衡微服务。它通过健康检查机制监......
  • kubesphere搭建nacos2.2.3(MySQL)
    环境准备创建nacos数据库,sql来自于nacos官网,自行查找并执行启动环境配置如图具体配置如下具体含义请参考nacos官网#***************SpringBootRelatedConfigurations***************####Defaultwebcontextpath:server.servlet.contextPath=/nacos###Inc......
  • Spring Cloud Alibaba [Nacos]配置中心。
    一启动配置管理1添加依赖:2在 bootstrap.properties 中配置Nacosserver的地址和应用名3添加配置并编写controller类4启动项目,访问配置文件与地址二Nacos配置1在Nacos页面的配置管理-配置列表中添加配置信息【DataId】2命名空间2.1命名空间:配置隔离2.2同......
  • nacos 下载与启动
    1.情景展示Nacos/nɑ:kəʊs/是DynamicNamingandConfigurationService的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务......
  • 通过命令行修改nacos配置文件
    通过命令行修改nacos配置文件1、介绍nacos-cli是一个命令行工具,用来代替nacos的图形界面操作。下载地址:GitHub-szpinc/nacos-cli:用终端命令行的方式操作nacos2、安装进入页面之后,下载对应的文件,上传到服务器上,授予执行权限,放到Linux执行文件bin目录,/usr/local/bin和/u......
  • Nacos K8s
    Nacos是DynamicNamingandConfigurationService的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos是构建以服务为中心的现代应用架构(例如微服务范式、云原生范式)的服务基础设施。更多的功能特性介绍请查看 Nacos概览。在本......
  • 关于spring.cloud.nacos.config.import配置不生效问题
    从SpringCloudAlibaba2.2.0.RELEASE版本开始,spring.cloud.nacos.config.import被废弃,取而代之的是spring.cloud.nacos.config.extension-configs。spring:application:name:gateway-servicecloud:nacos:discovery:server-addr:127.0.0.......
  • Nacos学习圣经:从入门到精通 Nacos,最全详解 (30+图文全面总结)
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • 微服务之nacos&openfeign
    nacos使用方法:在docker容器中创建nacosdockerrun-d\--namenacos\--env-file./nacos/custom.env\-p8848:8848\-p9848:9848\-p9849:9849\--restart=always\nacos/nacos-server:v2.1.0-slim网址为ip:8848/nacos,账号密码都是nacos 服务注册:在pop.xml中引......
  • 第二章:Nacos的快速入门
    前言:这一专栏是应用专栏,对于原理性的不过多赘述,源码的部分小编也会逐渐更新,敬请期待。一.Nacos介绍   Nacos /nɑ:kəʊs/ 是DynamicNamingandConfigurationService的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。   Na......