Spring Cloud Alibaba-Nacos实现服务的注册与发现

下载

地址:https://github.com/alibaba/nacos/releases

本文版本:2.3.1

启动

根据不同的压缩文件解压使用。

  • Linux/Unix/Mac:: sh startup.sh -m standalone
  • Windows: startup.cmd -m standalone

访问

我在虚拟机上安装:http://192.168.207.8:8848/nacos

Nacos服务治理中心应用

构建两个服务,扮演服务的消费者和生产者的角色,实现两个服务之间的调用,验证服务的注册与发现功能。

服务提供者

第一步:创建一个名为nacos-produce的springboot的项目。

第二步:引入依赖,编写pom.xml文件。

<properties>
       <java.version>1.8</java.version>
       <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
       <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
       <spring-boot.version>2.6.13</spring-boot.version>
       <spring-cloud-alibaba.version>2021.0.5.0</spring-cloud-alibaba.version>
</properties>   
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>2021.0.3</version> <!-- 根据您的项目所使用的 Spring Cloud 版本进行调整 -->
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

第三步:编写application.yaml文件。服务名,端口,Nacos服务中心地址

spring:
  application:
    name: nacos-produce
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.207.8:8848 #结合自身!

server:
  port: 8000

第四步:编写一个请求接口,启动nacos服务客户端。

@EnableDiscoveryClient
@SpringBootApplication
public class NacosProduceApplication {

    public static void main(String[] args) {
        SpringApplication.run(NacosProduceApplication.class, args);
    }
    @RestController
    public class NaocosController {
        @GetMapping("/hello")
        public String HelloNacos(@RequestParam String name) {
            return "hello" + name;
        }
    }
}

第五步:配置启动文件,添加-Dserver.port属性,实例化两个服务提供者。

服务消费者(Feign版)

第一步:创建一个名为nacos-consumer的springboot项目

第二步:编写pom.xml文件配置openfeign和负载均衡依赖,其余基本和上面一样。

        <!--openfeign依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <!--负载均衡依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>

第三步:编写application.yaml文件,配置如下信息

spring:
  application:
    name: nacos-consumer
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.207.8:8848
server:
  port: 8005

第四步:创建应用主类,实现一个HTTP接口,在该接口中调用服务提供方的接口。

public class NacosConsumerApplication {

    public static void main(String[] args) {
        SpringApplication.run(NacosConsumerApplication.class, args);
    }

    @RestController
    static class TestFeign {
    @Autowired
    Client client;

    @GetMapping("/test")
    public String test(@RequestParam("name") String name) {
        String result = client.hello(name);
        return "Return:" + result;
    }
}
@FeignClient("nacos-producer")
interface Client {
    @GetMapping("/hello")
    String hello(@RequestParam(name = "name") String name);
}
}

第五步:调用

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇