一、SpringCloud Alibaba之Nacos作为注册中心
一、简介
Spring Cloud阿里巴巴旨在为微服务开发提供一站式解决方案。该项目包括开发分布式应用程序和服务所需的组件,以便开发人员可以使用Spring Cloud编程模型轻松地开发分布式应用。使用Spring Cloud Alibaba,只需要添加一些注释和配置,就可以将阿里巴巴的分布式解决方案用于您的应用程序,并使用阿里巴巴中间件构建自己的分布式系统。
特性
- 流量控制和服务降级:支持WebServlet、WebFlux、OpenFeign、RestTemplate、Dubbo访问限制和降级流量的功能。它可以在运行时通过控制台实时修改限制和降级流量的规则,还支持对限制和降级度量的监控。
- 服务注册和发现:可以注册服务,客户端可以使用Spring托管的bean、自动集成Ribbon来发现实例。
- 分布式配置:支持分布式系统中的外部化配置,在配置更改时自动刷新。
- Rpc服务:扩展Spring Cloud客户端RestTemplate和OpenFeign,支持调用Dubbo Rpc服务。
- 事件驱动:支持构建与共享消息系统连接的高度可扩展的事件驱动微服务。
- 分布式事务:支持高性能、易用的分布式事务解决方案。
- 阿里云对象存储:海量、安全、低成本、高可靠性的云存储服务。支持随时随地在任何应用程序中存储和访问任何类型的数据。
- 阿里云SchedulerX:准确、高可靠性、高可用的定时作业调度服务,响应时间在秒以内。
- 阿里云短信:阿里短信是一项覆盖全球的短信服务,提供方便、高效、智能的通信功能,帮助企业快速联系客户。
二、安装nacos
nacos文档地址是https://nacos.io/zh-cn/docs/quick-start.html。下载地址是https://github.com/alibaba/nacos/releases。
安装后,解压进入bin目录,如果是Linux,运行sh startup.sh -m standalone启动单机模式,如果是Windows运行startup.cmd -m standalone启动单机模式。启动后,查看控制台或启动日志,启动成功后访问http://localhost:8848/nacos,看到

三、使用nacos作为注册中心
创建SpringCloudAlibabaDemo作为pom根模块,pom.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.9</version>
</parent>
<groupId>com.example</groupId>
<artifactId>SpringCloudAlibabaDemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>SpringCloudAlibabaDemo</name>
<description>SpringCloudAlibabaDemo</description>
<packaging>pom</packaging>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2021.0.4.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
spring-cloud-alibaba-dependencies版本是2021.0.4.0。java版本是17。
创建Consumer模块,pom.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.example</groupId>
<artifactId>SpringCloudAlibabaDemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>Consumer</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Consumer</name>
<description>Consumer</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
</dependencies>
</project>
添加了spring-cloud-starter-alibaba-nacos-discovery依赖和spring-boot-starter-web。
在Consumer添加Controller:
@RestController
public class HelloConsumer {
@Value("${server.port}")
private int port;
@RequestMapping("/hello")
public String hello() {
return "hello,Consumer,port:" + port;
}
}
application.properties配置如下:
server.port=7001
spring.application.name=consumer
spring.cloud.nacos.discovery.server-addr=localhost:8848
访问http://localhost:7001/hello,看到hello,Consumer,port:7001。
访问http://localhost:8848/nacos,左侧选择服务管理 > 服务列表,看到:

consumer已经注册成功。

浙公网安备 33010602011771号