欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Kite的学习历程SpringCloud之基于Nacos的服务消费者的创建

程序员文章站 2022-06-06 14:41:33
...

Kite学习历程的第二十七天

1. Nacos的服务消费者的创建

1.1 创建Module为cloudalibaba-consumer-nacos-order83

1.1.1 首先修改pom.xml文件引入依赖

映入的jar依赖文件于服务者相同


 <dependencies>
        <!--nacos依赖的引入-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--引入自己创建的entities包-->
        <dependency>
            <groupId>cn.kitey.spring</groupId>
            <artifactId>cloud-api-commons</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--监控-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--热部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId><!-- -->
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-commons</artifactId>
            <version>2.2.1.RELEASE</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>

1.1.2 创建application.yml依赖文件

service-url 这个的创建时便于Controller中引入访问的url

server:
  port: 83

spring:
  application:
    name: nacos-order-consumer
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848

#消费者将要访问的微服务名称(注册成功进nacos微服务提供者)方便用户在controller中读取访问的url路径
service-url:
  nacos-user-service: http://nacos-payment-provider

1.1.3 创建主启动类

注意引入的注解为:
@EnableDiscoveryClient


@SpringBootApplication
@EnableDiscoveryClient
public class NacosOrder83 {
    public static void main(String[] args) {
        SpringApplication.run(NacosOrder83.class, args);
    }

}

1.1.4 创建config包,以及ApplicationContextConfig

主要用于创建RestTemplate
注意:
nacos实现负载均衡的底层时ribbon,所以注意一定要添加注解
@LoadBalanced


@Configuration
public class ApplicationContextConfig {

    @Bean
    @LoadBalanced   //使用ribbon实现负载均衡时,一定要添加该注解
    public RestTemplate getRestTemplate(){
        return  new RestTemplate();
    }
}


1.1.5 创建controller包以及该包下的

注意:
这里的serverURl就是通过application配置文件进行引入的

@RestController
@Slf4j
public class NacosController {

    //创建tRestTemplate
    @Resource
    private RestTemplate restTemplate;
    //在配置文件读取访问地址
    @Value("${service-url.nacos-user-service}")
    private String serverURL;

    @GetMapping("/consumer/payment/nacos/{id}")
    public String paymentInfo(@PathVariable("id") Long id){
        return  restTemplate.getForObject(serverURL + "/payment/nacos/" + id, String.class);
    }

}

2. 创建完成后进行测试

  1. 启动服务端9001,9002,然后启动消费端83
  2. 在nacos注册中心查看,三个服务是否注册进了nacos
    Kite的学习历程SpringCloud之基于Nacos的服务消费者的创建
  3. 访问:http://localhost:83/consumer/payment/nacos/1
    检测访问是否成功,以及是否实现了负载均衡
    第一次访问:
    端口:9001
    Kite的学习历程SpringCloud之基于Nacos的服务消费者的创建
    第二次访问:
    端口9002
    Kite的学习历程SpringCloud之基于Nacos的服务消费者的创建
    表明实现了负载均衡!