Spring cloud alibaba--Nacos注册中心

一文快速上手 Nacos 注册中心+配置中心! Nacos 致力于帮助开发者发现、配置和管理微服务。它提供了一组简单易用的特性集,帮助开发者快速实现动态服务发现、服务配置、服务元数据及流量管理。服务发现和服务健康监测:支持基于DNS和基于RPC的服务发现,支持对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。动态配置服务:动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。... 阅读详情

目录

1.什么是Nacos

2.注册中心演变及其设计思想

 3.Nacos注册中心服务架构

 4.Nacos核心功能

5.Nacos Server 部署

 6.搭建Nacos Client服务

 7.nacos服务心跳、服务健康检查

8. Nacos服务调用、负载均衡

 9.启动多个提供者,进行负载均衡调用

10.服务永久实例、保护阈值、雪崩保护

 11.Nacos更多配置项

12.Nacos集群部署

13.Nacos集群架构、nginx代理

14.CAP理论


1.什么是Nacos

官方:一个更易于构建云原生应用的动态服务发现、服务配置、服务管理平台

Nacos的关键特性包括:

(1)服务发现和服务健康监测

(2)动态配置服务

(3)动态DNS服务

(4)服务及其元数据管理

2.注册中心演变及其设计思想

管理所有微服务,解决微服务之间调用关系错综复杂,难以维护的问题。

(1)硬编码方法:把服务写入到代码里面

存在问题:ip和port变更,服务迁移、集群部署时,都需要重新修改url

 (2)维护一张注册表方式:url有变动,在表中进行编辑链接

存在问题:订单服务进行水平扩容后,没法负载均衡调用;某个服务宕机了,没法响应服务

 (3)引入nginx进行负载均衡:nginx通过配置订单服务url,负载均衡请求

存在问题:成千上万的服务,nginx配置文件会特别复杂,每有一个服务地址变动需要在nginx中进行配置,难以维护

(4)服务启动后向注册中心写入接口服务:nacos服务器,当服务启动时,向注册中心注册表中添加接口服务信息;调用服务时,再从注册中心中获取服务地址。

存在问题:每次都需要去注册中心中拉取url信息,太浪费资源;若是拉取到的服务宕机了,没法响应请求;注册中心宕机了,整个服务都没法响应。

 (5)nacos注册中心添加心跳、缓存、负载均衡:服务启动时,向nacos注册中心写入接口服务;订单服务TimeTask定时访问心跳接口,若是过了心跳接口没接收到订单服务的访问,则状态status由up改为down;若是过了一定的时间点,心跳接口还是没有收到心跳调用,则从注册表中移出这个注册信息;当服务停止stop时,向注销接口中发送请求,从注册表中移出服务地址;定时器获取服务调用接口,缓存获取到的服务接口,当调用时从缓存中获取接口服务;当远程调用时使用负载均衡器从缓存中获取到接口服务url

 3.Nacos注册中心服务架构

 4.Nacos核心功能

(1)服务注册:Nacos Client会通过发送REST请求的方式向Nacos Server注册自己的服务,提供自身的元数据,例如ip地址、端口等信息。Nacos Servcer接收到注册请求后,就会把这些元数据信息存储在一个双层的内存Map中。

(2)服务心跳:在服务注册后,Nacos Client会维护一个定时心跳来持续通知Nacos Server,说明服务一直处于可用状态,防止被剔除。默认5s发送一次心跳

(3)服务同步:Nacos Server集群之间会互相同步服务实例,用来保证服务信息的一致性。leader raft

(4)服务发现:服务消费者(Nacos Client)在调用服务提供者的服务时,会发送一个REST请求给Nacos Server,获取上面的注册服务清单,并且缓存在Nacos Client本地,同时会在Nacos Client本地开启一个定时任务定时拉取服务端最新的注册表信息更新到本地缓存

(5)服务健康检查:Nacos Server会开启一个定时任务来检查注册服务实例的健康情况,对应超过15s没有收到客户端心跳的实例会将他的healthy属性设置为false(此时客户端服务再来获取服务列表时获取不到它)。如果某个实例超过30秒没有收到心跳,直接剔除该实例(被剔除的实例如果恢复发送心跳则会重新注册)。

5.Nacos Server 部署

(1)下载安装包

地址:Releases · alibaba/nacos · GitHub,找到我们需要的nacos版本1.4.2,下载window系统的安装包

(2)解压下载的nacos压缩文件,bin目录存放启动文件,conf存放配置信息文件

(3)在目录bin/startup.cmd编辑nacos为单机模式,启动项默认是集群的方式

默认的启动方式为集群:

 修改为单体的方式:

 (4)在目录conf/application.properties可以修改启动的端口,是否使用数据库,数据库的配置信息等,单体的情况下不做任何修改

 (5)目录bin/startup.cmd下双击,控制台打印出nacos启动模式,以及控制台访问连接

(6)通过Console的连接访问系统

 (7)输入默认用户名密码nacos/nacos,访问系统

 6.搭建Nacos Client服务

(1)在Spring cloud alibaba--环境搭建时创建项目的基础上,复制一份Order,命名为OrderNacos;复制一份Stock,命名为StockNacos。

(2)新复制的项目删除Order.iml和Stock.iml,分别编辑pom.xml的artifactId为OrderNacos、StockNacos

 (3)由于是复制出来的项目,需要在父项目SpringCloudAlibaba的pom.xml中进行model配置,若是点击父项目新建出来的,会自动在pom.xml中配置

(4)刷新工程,形成编译的maven项目(项目上有蓝色框)

 (5)OrderNacos和StockNacos项目在pom.xml中添加Nacos服务注册发现依赖

        <!-- Nacos服务注册发现-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
(6)OrderNacos和StockNacos项目在application.properties中添加Nacos服务注册的相关信息。

OrderNacos项目的application.properties:

server.port=8084
#应用名称,nacos会将该名称当做服务名称
spring.application.name=order-service
#nacos服务连接地址
spring.cloud.nacos.server-addr=127.0.0.1:8848
#nacos discovery连接用户名
spring.cloud.nacos.discovery.username=nacos
#nacos discovery连接密码
spring.cloud.nacos.discovery.password=nacos
#nacos discovery工作空间
spring.cloud.nacos.discovery.workspace=public

 StockNacos项目的application.properties:

server.port=8085
#应用名称,nacos会将该名称当做服务名称
spring.application.name=stock-service
#nacos服务连接地址
spring.cloud.nacos.server-addr=127.0.0.1:8848
#nacos discovery连接用户名
spring.cloud.nacos.discovery.username=nacos
#nacos discovery连接密码
spring.cloud.nacos.discovery.password=nacos
#nacos discovery工作空间
spring.cloud.nacos.discovery.workspace=public

(7)启动项目,控制台打印nacos注册成功--服务注册

 刷新Nacos控制平台,可以看到两个服务已经注册到nacos中来。

 7.nacos服务心跳、服务健康检查

 (1)服务心跳:在服务注册后,Nacos Client会维护一个定时心跳来持续通知Nacos Server,说明服务一直处于可用状态,防止被剔除。默认5s发送一次心跳。

(2)服务健康检查:Nacos Server会开启一个定时任务来检查注册服务实例的健康情况,对应超过15s没有收到客户端心跳的实例会将他的healthy属性设置为false(此时客户端服务再来获取服务列表时获取不到它)。如果某个实例超过30秒没有收到心跳,直接剔除该实例(被剔除的实例如果恢复发送心跳则会重新注册)。

(3)停止一个服务stock-service,通过控制台刷新查看服务列表变化。

15秒后触发保护阈值,由false变为true:

点击详情查看健康状态为false:

 30秒之后,从服务列表中移出:

 再次启动服务,再次把服务注册进来:

Nacos客户端心跳机制原理:

     当客户端启动后,会向nacos中注册服务,同时创建一个ScheduledThreadPoolExecutor定时线程池,使用线程池的定时机制向nacos服务器发送注册服务,每次发送心跳完成,再次创建一个定时任务。创建ScheduledThreadPoolExecutor的源码:

public class BeatReactor {
    public BeatReactor(NamingProxy serverProxy, int threadCount) {
        this.serverProxy = serverProxy;
        // 创建一个线程池
        executorService = new ScheduledThreadPoolExecutor(threadCount, new ThreadFactory() {
            @Override
            public Thread newThread(Runnable r) {
                Thread thread = new Thread(r);
                thread.setDaemon(true);
                thread.setName("com.alibaba.nacos.naming.beat.sender");
                return thread;
            }
        });
    }
}

第一次发送心跳注册的源码:

public void addBeatInfo(String serviceName, BeatInfo beatInfo) {
	NAMING_LOGGER.info("[BEAT] adding beat: {} to beat map.", beatInfo);
	String key = buildKey(serviceName, beatInfo.getIp(), beatInfo.getPort());
	BeatInfo existBeat = null;
	//fix #1733
	if ((existBeat = dom2Beat.remove(key)) != null) {
		existBeat.setStopped(true);
	}
	dom2Beat.put(key, beatInfo);
	/**
	 * 这个schedule只会发送一次心跳
	 */
	executorService.schedule(new BeatTask(beatInfo), beatInfo.getPeriod(), TimeUnit.MILLISECONDS);
	MetricsMonitor.getDom2BeatSizeMonitor().set(dom2Beat.size());
}

发送执行的Runnable是BeatTask类,看下BeatTask的源码:

@Override
public void run() {
	if (beatInfo.isStopped()) {
		return;
	}
	long nextTime = beatInfo.getPeriod();
	try {
		/**
		 * 这里是去调用服务端的心跳检测的代码
		 * 这里返回的报文中,会有一个下次心跳检测的执行间隔
		 */
		JsonNode result = serverProxy.sendBeat(beatInfo, BeatReactor.this.lightBeatEnabled);
		long interval = result.get("clientBeatInterval").asLong();
		boolean lightBeatEnabled = false;
		if (result.has(CommonParams.LIGHT_BEAT_ENABLED)) {
			lightBeatEnabled = result.get(CommonParams.LIGHT_BEAT_ENABLED).asBoolean();
		}
		BeatReactor.this.lightBeatEnabled = lightBeatEnabled;
		if (interval > 0) {
			nextTime = interval;
		}
		int code = NamingResponseCode.OK;
		if (result.has(CommonParams.CODE)) {
			code = result.get(CommonParams.CODE).asInt();
		}
		if (code == NamingResponseCode.RESOURCE_NOT_FOUND) {
			Instance instance = new Instance();
			instance.setPort(beatInfo.getPort());
			instance.setIp(beatInfo.getIp());
			instance.setWeight(beatInfo.getWeight());
			instance.setMetadata(beatInfo.getMetadata());
			instance.setClusterName(beatInfo.getCluster());
			instance.setServiceName(beatInfo.getServiceName());
			instance.setInstanceId(instance.getInstanceId());
			instance.setEphemeral(true);
			try {
				serverProxy.registerService(beatInfo.getServiceName(),
						NamingUtils.getGroupName(beatInfo.getServiceName()), instance);
			} catch (Exception ignore) {
			}
		}
	} catch (NacosException ex) {
		NAMING_LOGGER.error("[CLIENT-BEAT] failed to send beat: {}, code: {}, msg: {}",
				JacksonUtils.toJson(beatInfo), ex.getErrCode(), ex.getErrMsg());

	}
	/**
	 * 在心跳机制的方法里面,会循环调用这个方法进行重复发送心跳
	 */
	executorService.schedule(new BeatTask(beatInfo), nextTime, TimeUnit.MILLISECONDS);
}

每次调用executorService.schedule定时任务,任务的具体执行者是BeatTask,当BeatTask执行完成,又调用executorService.schedule,循环访问,实现心跳注册机制。

8. Nacos服务调用、负载均衡

(1)服务之间调用,需要使用负载均衡器

 (2)RestTemplate创建时添加负载均衡配置@LoadBalanced,默认轮询的方式

(3)服务调动的地址,可以把ip+端口替成系统名称

库存系统服务名称:

(4)页面访问订单系统方法,使用负载均衡调用另一个系统,返回结果值

 9.启动多个提供者,进行负载均衡调用

(1)idea2020开启Services管理多个启动类,之前版本是Run dashboard

控制台添加services:View->Tool Windows ->Services 

点开底栏的Services,第一次点开是一片空白。点add,点Run Configuration Type,弹出一个菜单,选择Spring Boot。

 此时会罗列出一系列的Spring Boot启动类

 可以右键编辑启动服务类名

 

 (2)复制一份库存订单启动系统,修改下端口:右键启动项选择Copy Configuration

 修改Name名称,覆盖的参数为server.port系统端口号

 (3)配置通过服务名调用服务

 (4)创建调用的RestTemplate需要使用负载均衡的注解@LoadBalanced

 (5)被调用的类中添加此系统的端口号,用于区分调用时哪个系统响应的

 (6)启动这两个不同端口的提供者(库存项目)

(7)页面访问系统,使用负载均衡,轮询处理请求

 (8)通过依赖的jar可以看出,使用的负载均衡为ribbon

10.服务永久实例、保护阈值、雪崩保护

(1)启动服务名称相同端口不同的两个服务,从控制台可以看到实例数为2

 (2)目前Nacos注册的服务都是临时实例,当服务宕机后有心跳检测和剔除服务的操作;

在application.properties中配置服务为永久实例,添加配置

#永久实例,服务宕机后也不会被剔除,默认是true临时实例
spring.cloud.nacos.discovery.ephemeral=false

重启服务后:属于永久实例,心跳检测机制也不会把服务从服务列表中剔除 

(3)我们可以设置服务保护阈值,用于防止服务雪崩。

例:当我们设置保护阈值为0.6,当健康实例/总实例数 < 保护阈值时,为了防止服务雪崩,服务全部不能使用,就算宕机的服务也会对外提供服务。服务雪崩:请求的数量大于服务器处理的能力,会导致但服务器处理不过来集群架构才能处理的洪峰。

 11.Nacos更多配置项

地址:Nacos discovery · alibaba/spring-cloud-alibaba Wiki · GitHub

配置项Key默认值说明

服务端地址

spring.cloud.nacos.discovery.server-addr

无

Nacos Server 启动监听的ip地址和端口

服务名

spring.cloud.nacos.discovery.service

${spring.application.name}

给当前的服务命名

服务分组

spring.cloud.nacos.discovery.group

DEFAULT_GROUP

设置服务所处的分组

权重

spring.cloud.nacos.discovery.weight

1

取值范围 1 到 100,数值越大,权重越大

网卡名

spring.cloud.nacos.discovery.network-interface

无

当IP未配置时,注册的IP为此网卡所对应的IP地址,如果此项也未配置,则默认取第一块网卡的地址

注册的IP地址

spring.cloud.nacos.discovery.ip

无

优先级最高

注册的端口

spring.cloud.nacos.discovery.port

-1

默认情况下不用配置,会自动探测

命名空间

spring.cloud.nacos.discovery.namespace

无

常用场景之一是不同环境的注册的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。

AccessKey

spring.cloud.nacos.discovery.access-key

无

当要上阿里云时,阿里云上面的一个云账号名

SecretKey

spring.cloud.nacos.discovery.secret-key

无

当要上阿里云时,阿里云上面的一个云账号密码

Metadata

spring.cloud.nacos.discovery.metadata

无

使用Map格式配置,用户可以根据自己的需要自定义一些和服务相关的元数据信息

日志文件名

spring.cloud.nacos.discovery.log-name

无

集群

spring.cloud.nacos.discovery.cluster-name

DEFAULT

配置成Nacos集群名称

接入点

spring.cloud.nacos.discovery.enpoint

UTF-8

地域的某个服务的入口域名,通过此域名可以动态地拿到服务端地址

是否集成Ribbon

ribbon.nacos.enabled

true

一般都设置成true即可

是否开启Nacos Watch

spring.cloud.nacos.discovery.watch.enabled

true

可以设置成false来关闭 watch

12.Nacos集群部署

(1)单机环境下部署伪集群,复制nacos,分别命名为nacos8849、nacos8850、nacos8851

 (2)配置mysql数据源(版本要求,5.7及以上),若是不配置数据源,nacos所有的操作都在内存中进行,没法进行集群方式管理。在目录conf/application.properties中配置数据源,默认使用mysql,修改位置:

 修改情况:放开注释,配置mysql的连接信息(用户名密码等信息),三个集群的nacos都修改

 (3)在连接的数据库中创建nacos数据库,执行命令

CREATE DATABASE nacos

 (4)执行nacos初始sql语句,在目录conf/nacos-mysql.sql 

选择刚才建好的nacos数据库,执行SQL语句

(5)在目录conf/application.properties下,修改三个nacos的端口分别为8849、8850、8851

 (6)在目录conf下,把集群实例配置文件cluster.conf.example重命名为cluster.conf,三个文件都需要重命名

 (7)把这三台nacos服务器的访问信息(ip+端口)配置到conf/cluster.conf文件中,三个文件都需要配置,配置内容:

127.0.0.1:8849
127.0.0.1:8850
127.0.0.1:8851

(8)确保启动的模式为集群方式,在目录bin/startup.cmd中,使用编辑器打开,默认的启动方式为集群cluster。

 (9)启动时若是出现内存不足的情况,在bin/startup.cmd中修改启动jvm参数,分为单机standalone和集群cluster的启动方式,可以配置初始内存、最大内存、年轻代大小。 

(10)双击bin/startup.bat,启动nacos8849服务,控制台输出集群模式cluster启动成功,使用外部数据源 

(11)登陆nacos控制台界面,查看集群情况,目前只有8849启动,其它两台服务状态为down 

(12)启动8850和8851两台服务器,集群界面都显示上线

13.Nacos集群架构、nginx代理

(1)集群部署架构图

(2)nginx反向代理

①nginx安装:下载地址:http://nginx.org/en/download.html  ,下载后解压

 ②在conf/nginx.conf配置文件中配置服务启动端口,默认是80

③启动nginx服务,方式有:

--直接双击nginx.exe,双击后一个黑色的弹窗一闪而过

--打开cmd命令窗口,切换到nginx解压目录下,输入命令 nginx.exe 或者 start nginx ,回车即可

 ④启动之后,输入地址和配置的端口访问nginx,看到此界面说明启动成功

 ⑤关闭nginx

如果使用cmd命令窗口启动nginx,关闭cmd窗口是不能结束nginx进程的,可使用两种方法关闭nginx

--输入nginx命令  nginx -s stop(快速停止nginx)  或  nginx -s quit(完整有序的停止nginx)

--使用taskkill   taskkill /f /t /im nginx.exe

⑥使用nginx代理服务器做负载均衡

我们可以修改nginx的配置文件nginx.conf 达到访问nginx代理服务器时跳转到指定服务器的目的,即通过proxy_pass 配置请求转发地址,即当我们依然输入http://localhost:8088 时,请求会跳转到我们配置的服务器

 同理,我们可以配置多个目标服务器,当一台服务器出现故障时,nginx能将请求自动转向另一台服务器,例如配置如下:

当服务器127.0.0.1:8849 挂掉时,nginx能将请求自动转向服务器 127.0.0.1:8850 。上面还加了一个weight属性,此属性表示各服务器被访问到的权重,weight越高被访问到的几率越高。

⑦nginx配置静态资源

将静态资源(如jpg|png|css|js等)放在如下配置的d:/software/nginx-1.18.0/static目录下,然后在nginx配置文件中做如下配置(注意:静态资源配置只能放在 location / 中),浏览器中访问  http://localhost:8082/1.png 即可访问到 d:/software/nginx-1.18.0/static目录下的 1.png图片

 

 ⑧nginx可以配置多个服务端口,ip+端口访问时,nginx默认会去找到nginx的html下面的index.html页面

 

 (3)使用nginx代理分析

在conf/nginx.conf中配置了三台nacos集群的服务

 (4)通过nginx代理访问nacos服务,输入nginxip+端口+前缀即可使用代理访问到nacos系统

(5)把系统中访问nacos的地址改成nginx代理的地址

 (6)启动系统,发现控制台报错com.alibaba.nacos.api.exception.NacosException: failed to req API:/nacos/v1/ns/instance after all servers

 (7)解决启动连接不到nginx代理的nacos服务器:我们配置的所有ip都不能使用127.0.0.1来代替本地,需要使用真实ip地址,否则ngin路由不到地址;涉及到的配置为nacos的集群文件cluster.conf、nginx的nginx.conf、项目的application.properties,都修改为服务器自己的ip地址。

三个nacos集群配置cluster.conf修改:

 nginx的nginx.conf:

 项目的application.properties:

(8)启动服务,访问系统,验证是否通过nginx代理成功

访问服务正常,nginx代理服务正常

 

14.CAP理论

  • 一致性(Consistency) (所有节点在同一时间具有相同的数据)
  • 可用性(Availability) (保证每个请求不管成功或者失败都有响应)
  • 分隔容忍--分区容错性(Partition tolerance) (系统中任意信息的丢失或失败不会影响系统的继续运作)

nacos支持CP+AP,zookeeper支持CP。

CAP是在分布式环境下出现的问题,P是一定要保证的,分布式环境下不管是否有节点异常,都要对外提供服务;一致性就是说node1和node2,不管访问哪个节点都要能拿到最新的数据;可用性就是说不管访问node1还是node2都要能够拿到数据。例如当调用node1更新数据,此时node1和node2之间网络有故障,没法把变更后的数据同步到node2,此时新的线程来访问node2获取数据,若是要保证一致性,那就让请求一直等待,等到node1和node2的网络通畅数据同步过来后再响应,这样可能就会导致超时;若要保证可用性,直接把node2中存放的原数据返回,就会导致从node2获取到的不是最新的数据。

Spring Cloud Alibaba 使用nacos 注册中心 背景 上一文我们讲到了如何去搭建注册中心,这一次我们讲述如何使用nacos作为注册中心 spring-cloud-alibaba-basis 创建基础依赖 首先我们创建一个spring-cloud-alibaba-basis 基础依赖 工程里面制定我们要用到的公用的版本 spring boot 版本 2.1.7.RELEASE spring cloud 版本 Greenwich.RELEASE... 阅读详情

相关推荐

云原生微服务实战 Spring Cloud Alibaba 之 Nacos

云原生微服务治理有很多手段,但在Java生态里,最主流的还是Spring Cloud Alibaba 、Spring Cloud Netflix。 Spring Cloud文章的前部分已经把Spring Cloud Netflix相关组件讲解且实践过了,这章我们讲解了Spring Cloud Alibaba的Nacos discovery,后续还会继续讲解完Spring Cloud Alibaba其他组件。

Java 技术专栏,从入门到精通,熟悉企业级开发 3万+

SpringCloud:注册中心nacos

Nacos 英文全称Dynamic Naming and Configuration Service,Na为naming/nameServer即注册中心,co为configuration即配置中心,service是指该注册发现/配置中心都是以服务为核心,是阿里巴巴的产品,相较于Eureka也是SpringCloud中的一个组件,但是比Eureka功能更加丰富 ,国内更受欢迎。同时社区和参考文档更加便捷,上手程度相较于其他注册中心(Eureka、consul)更加容易。..................

Cx的博客 1386

【SpringCloud】Nacos 自定义登录用户名和密码

现在,您可以使用您在 nacos-user-mgmt.properties 文件中定义的用户名和密码来登录 Nacos 控制台。将 username 替换为您想要的用户名,将 password 替换为您想要的密码。4. 保存文件,并重新启动 Nacos 服务器。

九师兄 1万+

Spring Cloud Alibaba Nacos Discovery 组件介绍

1. 概述 Spring Cloud Alibaba提供的Spring Cloud Alibaba Nacos Discovery组件,基于 Spring Cloud 的编程模型,接入 Nacos 作为注册中心,实现服务的注册与发现。 服务注册/发现: Nacos Discovery 服务发现是微服务架构体系中最关键的组件之一。如果尝试着用手动的方式来给每一个客户端来配置所有服务提供者的服务列表是一件非常困难的事,而且也不利于服务的动态扩缩容。 Nacos Discovery 可以帮助您将...

liuerchong的博客 2万+

Spring Cloud Alibaba微服务架构实战教程—10集成nacos注册中心

前言 如图,在微服务架构的系统中,当服务A调用服务B、服务C时,若服务A不知道B、C服务所在的服务器是可用还是不可用状态,就会不停发起请求做无用功。如何解决这类问题呢?——建立注册中心。 一、什么是注册中心? 注册中心主要保存了各个可用服务的网络地址,如ip和port等信息。 在服务相互调用时,可以统一把服务名字都注册到中心,该中心则记录这些服务的不同名称和当前状态,通过心跳机制来动态感知服务的状态,以此来准确帮助服务之间的交互。 二、注册中心的组件 在SpringCloud架构中,可以作为注册中心的

空空说技术的博客 782

二期 1.3 Spring Cloud Alibaba微服务组件Nacos注册中心介绍

对于Spring Cloud Alibaba来说,Nacos是首选,因为它是Spring Cloud Alibaba微服务组件中标配的注册中心,也是阿里开源的非常重要的微服务组件,不止可以做注册中心,也可以做配置中心。当一个服务启动时,它会向注册中心注册自己的服务实例信息,包括服务名称、IP地址、端口号等。服务元数据是指包括服务端点(endpoints)、服务标签、服务版本号、服务实例权重、路由规则、安全策略等描述服务的数据。话说微服务架构下 服务的数量都是非常多的,而且服务的实例数量也可能会动态变化。

天罡gg的专栏 4117

Spring Cloud Alibaba快速入门-Nacos注册中心(上)

Nacos是一个动态服务发现和配置管理平台,可作为Spring Cloud生态中Eureka等组件的替代方案。文章介绍了Nacos的安装和单机模式启动方法,详细演示了服务注册到Nacos的流程:添加依赖、配置Nacos地址、启动服务后即可在控制台查看注册效果。同时展示了通过IDEA配置多实例集群的方法,以及使用@EnableDiscoveryClient实现服务发现的测试过程,包括获取服务实例列表及端口信息。测试结果验证了服务注册与发现功能的正确性。

weixin_46425661的博客 1111

差分运放实战:如何快速计算带直流偏置的电路(附详细推导步骤)

本文详细解析了差分运放电路在带直流偏置设计中的核心计算方法和实战技巧。通过可视化参数关系和分步拆解,帮助工程师快速掌握电路设计精髓,包括虚短虚断原理、偏置电压计算及非理想因素处理,提升信号调理和传感器接口设计的效率与精度。

o4p5q6r7s的博客 408

芋道 Spring Cloud Alibaba 注册中心 Nacos 入门

点击上方“芋道源码”,选择“设为星标”做积极的人,而不是积极废人!源码精品专栏原创 | Java 2020 超神之路,很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络...

芋艿V 1103

AD5700 HART芯片实战笔记:从时钟检测到数据收发,一个STM32工程师的踩坑实录

本文详细记录了STM32工程师在AD5700 HART芯片开发中的实战经验,涵盖时钟信号检测、RTS切换时序优化及HART数据解析等关键问题。通过硬件设计检查、定时器配置优化和大小端转换方案对比,解决了工业级芯片开发中的典型挑战,为嵌入式开发者提供宝贵参考。

weixin_42715608的博客 162

ICCompiler II学习笔记(一)ICC II使用全流程 overview

学习笔记同步发布在我的个人网站上,欢迎来访查看。 个人学识有限,理解可能有误,仅供参考。 文章目录一、前言二、 ICC II 简介和 GUI2.1 Blocks 和 Design Libraries2.2 Objects2.3 Application Options三、Design Setup四、APR flow五、 课程主题:如何用 ICC II来实现最好的PPA 一、前言 现在的芯片都在追求一个极致的PPA 芯片的生成可以分为以下 5大步骤: Front-end Design:前端设计,最终产生

一名FPGA芯片设计爱好者的技术博客 2万+

spring cloud alibaba——Nacos 注册中心

nacos简介 在 spring cloud alibaba中,nacos类似于Eureka的功能,它的作用一个是注册中心,另外一个是配置中心。 nacos文档::https://nacos.io/zh-cn/docs/what-is-nacos.html nacos博客:https://nacos.io/zh-cn/blog/index.html Nacos安装方式 可以...

WannaRunning的博客 261

【RK3399 Ubuntu】基于rk3399的lxde的lubuntu桌面移植适配记录之第二步:最基本Ubuntu根文件系统的相关常用工具完善

文章目录1.使能系统网络管理服务1.1 安装驱动modules管理工具1.2 使能网络服务2.终端自动补全命令功能3.安装ssh服务4.安装系统信息查看工具5.安装resize工具6.安装lrzsz工具7.使能rc.local服务7.1 修改服务Install块7.2 使能rc.local.service服务7.3 添加执行脚本且赋予执行权限 续接上文,本文主要完善前面已经制作好的rootfs 1.使能系统网络管理服务 1.1 安装驱动modules管理工具 apt-get install kmod 1.

wang 恒 的博客 1385

Spring Cloud Alibaba Nacos注册中心

Nacos是一款集服务发现、服务健康监测、动态配置服务、动态 DNS 服务、服务及其元数据管理于一身的开源软件,这节主要记录Nacos的服务注册发现功能的使用。借助Spring Cloud Alibaba Nacos Discovery,我们可以轻松地使用Spring Cloud编程模型体验Nacos的服务注册发现功能。本节使用的Spring Cloud Alibaba版本为2.2.3.RELEASE,Spring Boot版本为2.3.2.RELEASE。

wno704的博客 812

用 ADT 连接 SAP S/4HANA Public Cloud 开发租户的完整落地指南

摘要:在SAP S/4HANA公有云中进行ABAP开发时,必须使用Development Tenant(客户端080)而非Customizing Tenant(客户端100)连接ADT工具。开发用户需具备SAP_BR_DEVELOPER角色且写权限不受限,开发对象应创建在结构包的子包中。连接前需确认正确的ABAP服务URL(通常为Launchpad URL去掉"/ui"),并通过运行控制台程序验证全链路功能。典型开发场景如通过BAdI实现业务校验时,需遵循Clean Core原则在指定包

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 334

RK3588开发笔记-5G模块(SIM8200、广和通FM160、移远RM500U)调试笔记

RK3588 CPU提供了丰富的外设接口,本文主要介绍通过usb3.0接口驱动5G模块来实现5g无线数据传输功能。在物联网和边缘计算领域,5G网络支持的高速率、低延时连接为应用带来了更多可能性。RK3588作为一款高性能SoC,适合用于5G联网应用。SIM8200广和通FM160和移远RM500U。在RK3588上调试5G模块可以为设备提供稳定的高速联网能力。本文介绍了如何配置和调试SIM8200、广和通FM160和移远RM500U模块,通过AT指令和QMI/MBIM工具实现5G数据连接。

flypig has a dream! 2669

Spring Cloud Alibaba之nacos注册中心使用篇

文章目录1.环境准备1.1 nacos server单机部署1.2 代码环境2. 简单集成使用2.1 父工程改造2.2 订单服务改造2.2.1 pom 依赖2.2.2 配置文件2.2.3 主启动类2.2.4 对外提供服务2.2.5 启动服务2.3 用户服务改造2.3.1 常规改造2.3.2 controller 改造2.3.2.1 fegin方式调用2.3.2.2 restTemplate方式调用2.3.3 启动注册2.4 调用测试 本文基于 spring cloud alibaba v2.1.0

猿上生活 1063

7.3 空间矢量调制(SVM)整数算法

本文提出了一种基于整数运算的空间矢量调制(SVM)优化实现方案,适用于计算资源有限的Cortex-M0平台。针对传统SVM算法中复杂的三角函数和浮点运算问题,重点优化了扇区判断和占空比计算两个关键环节。在扇区判断方面,采用基于电压分量符号和相对大小的三变量法,避免了角度计算;在占空比计算方面,通过几何关系将作用时间表示为电压分量的线性组合,并采用定点数实现。方案还详细讨论了系数定点化、死区补偿等实现细节,在保证精度的同时显著降低了计算复杂度。实验结果表明,优化后的整数算法在M0平台上仅需50-80个周期即可

技术工作者 942

Spring Cloud Alibaba 系列之 Nacos 注册中心

Spring Cloud Alibaba Nacos Discovery 通过一些简单的注解,快速来注册一个服务,并使用经过双十一考验的 Nacos 组件来作为大规模分布式系统的服务注册中心。

Demo_Null 643

编写python脚本调用ordinals以及BRC20的接口

1、钱包地址生成walletreceive,对应ord命令:ord wallet receive。6、测试手动出块generate,这个只在regtest链节点用得上。所有接口都是post请求,采用postman进行测试。4、测试bitcoin转币sendtoaddress。7、测试其他的wallet方法wallet。2、钱包币种铭刻inscription,对应bitcoin-cli命令。对应bitcoin-cli命令。对应bitcoin-cli命令。fee.json文本模板。还可以加很多根据需要加减。

云深海阔专栏 1047

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Spring Cloud Alibaba - 03 注册中心Nacos 应用篇

文章目录注册中心的演进V1 注册中心的演进 V1

小工匠 3万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Spring Cloud Alibaba快速入门-Nacos注册中心(下)

文章摘要 本文介绍了微服务架构中注册中心与服务发现的实现方法,基于Nacos和Spring Cloud框架。主要内容包括:1)使用@EnableDiscoveryClient注解开启服务发现功能;2)通过DiscoveryClient和NacosServiceDiscovery两种方式获取服务实例信息;3)演示服务掉线后的自动发现机制;4)使用RestTemplate实现订单与商品服务间的远程调用。

weixin_46425661的博客 879

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Spring cloud Alibaba Nacos注册中心(1) 概览

1、初始化流程 下面是集成nacos 注册中心后,AutoConfiguration的注册流程 2、

qGANG的博客 884

Spring Cloud Alibaba 注册中心 Nacos 入门

Getting Started 下载配置nacos nacos下载地址 将nacos注册为win服务 参考先前的文章 Windows下将JAVA jar注册成windows服务 nacos.xml的配置信息 <service> <!-- 指定在Windows系统内部使用的识别服务的ID。在系统中安装的所有服务中,这必须是唯一的,它应该完全由字母数字字符组成 --> <id>nacos-id-000001</id> <!-- 服

小布1994的博客 253

微服务Spring Cloud Alibaba之Nacos篇, Nacos 就是注册中心 + 配置中心的组合

一、Nacos是什么? 1.1 关于发音 Nacos /nɑ:kəʊs/ Nacos命名的由来:前四个字母分别为 Naming 和 Configuration 的前两个字母,最后的 s 为Service。 1.2 介绍 从 2017 年底 Java 开发领域使用最广的 RPC 框架 Dubbo 开启重新更新维护之路开始,阿里巴巴为打造 Dubbo 微服务生态持续开源了 Sentinel,Nacos,Seata 等微服务中间件框架,并且推出了 Spring Cloud Alibaba 来提供微服务开发的一

bufegar0的博客 1104

Nacos - 服务注册中心【官方】超详细详解(Spring Cloud Alibaba Nacos Discovery)

Spring Cloud Alibaba Nacos Discovery 该项目通过自动配置以及其他 Spring 编程模型的习惯用法为 Spring Boot 应用程序在服务注册与发现方面提供和 Nacos 的无缝集成。 通过一些简单的注解,您可以快速来注册一个服务,并使用经过双十一考验的 Nacos 组件来作为大规模分布式系统的服务注册中心。 服务注册发现: Nacos Discovery Starter 服务发现是微服务架构体系中最关键的组件之一。如果尝试着用手动的方式来给每一个客户端来配置所有服务提

BigManing的博客 2774
上一篇: Spring cloud alibaba--环境搭建
下一篇: Spring cloud alibaba--Ribbon负载均衡
清云青云
博客等级 码龄13年 2万+粉丝 126原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值