一、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已经注册成功。

posted @ 2023-05-13 22:44  shigp1  阅读(33)  评论(0)    收藏  举报