当先锋百科网

首页 1 2 3 4 5 6 7

概述

在之前的微服务项目中注册中心可能用的多的是Eureka整合SpringCloud,最近看了下阿里开源的Nacos,个人感觉蛮好用的。它自带的配置中心可以让开发者更加轻松的搭建一个微服务环境。Nacos环境搭建也非常简单,前面我已经关于Nacos环境搭建做了很详细的介绍,这里我就不在重复描述了
Nacos环境搭建

工程搭建

1.首先我们先用SpringBoot创建2个工程,我这里就叫:provider,consumer.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
到这里我已经设置好一个provider服务,后我我会再搭建一个消费者服务,由于操作步骤和上面一样,我就不在重复了
在这里插入图片描述
在这里插入图片描述
到这里我已经搭建好2个服务工程,点击apply,点击ok,工程搭建完毕
在这里插入图片描述

服务配置

provider服务配置

1.provider代码如下和配置文件(新建的工程默认是application.properties,但是再工作中用的比较多的是yml格式,所以这里我把properties改成了yml格式)如下图
在这里插入图片描述
2.ProviderController代码如下:

@RestController
public class ProviderController {

    @Value("${providerName}")
    private String name;

    @GetMapping("send")
    public String send(){
        return name;
    }
}

在这里插入图片描述
3.application.yml配置如下:

server:
  port: 8080
    
#自定义参数
providerName: provider   

4.provider注册到nacos

生产者注册到nacos注册中心,步骤:
添加依赖:spring-cloud-starter-alibaba-nacos-discovery及springCloud
在这里插入图片描述

<dependencies>
        <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>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!--整合Nacos -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>0.9.0.RELEASE</version>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.SR2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

在 application.yml 中配置nacos服务地址和应用名

server:
  port: 8080

spring:
  application:
  ## 应用名
    name: provider
  ## nacos服务地址
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

#自定义参数
providerName: provider

启动服务,然后登陆Nacos服务查看,结果如下
在这里插入图片描述

consumer服务配置

1.首先按照我上面的引入maven依赖。
2.由于配置基本和上面一样我这里就把我代码部分例举出来
代码:

@RestController
public class ConsumerController {

    @GetMapping("consumer")
    public String send(){
        return "Consumer";
    }

}

yml配置

server:
  port: 8081

spring:
  application:
    ## 应用名
    name: consumer
  ## nacos服务地址
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

启动服务
在这里插入图片描述

整合Feign实现远程调用

1.先引入feign相关依赖

 <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
 </dependency>

2.在ConsumerApplication类上添加@EnableFeignClients注解:
在这里插入图片描述
3.编写feignClient:
在这里插入图片描述

@FeignClient("provider")
public interface ProviderFeign {

    @RequestMapping("send")
     String send();
}

在Controller中使用feignClient:

@RestController
public class ConsumerController {

    @Autowired
    private ProviderFeign providerFeign;

    @GetMapping("consumer")
    public String send(){
        String send = providerFeign.send();
        return "Consumer" + send;
    }

}

测试访问:
在这里插入图片描述

总结

至此一个简单的微服务工程已经搭建完毕。其实操作很简单,大家可以动手试试。后面我会把我这个简单的项目上传到github,大家可以参考一下

git地址:https://github.com/gph397244702/nacos-demo