栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringCloud项目接入Nacos服务治理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringCloud项目接入Nacos服务治理

1. 环境准备
组件        版本
JDK1.8.0_181
IDEA2021.1
SpringBoot        2.0.4.RELEASE
SpringCloudFinchley.RELEASE
SpringCloud-alibaba-dependencies0.2.2.RELEASE
Nacos-server2.0.4

nacos-server版本:

Nacos针对不同版本的SpingCloud提供不同的依赖,各个版本的对应关系请参考官方文档给出的说明:版本说明

2. 父级工程pom依赖


    4.0.0

    com.hl.magic
    Think-In-SpringCloud
    pom
    1.0-SNAPSHOT
    
        SpringCloud-Nacos-config
        SpringCloud-Nacos-consumer
        SpringCloud-Nacos-provider
    

    
        8
        8
        1.8
        2.0.4.RELEASE
        Finchley.RELEASE
        0.2.2.RELEASE
    

    
        
            org.projectlombok
            lombok
            true
        

        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
            
                org.springframework.boot
                spring-boot-dependencies
                ${spring-boot.version}
                pom
                import
            
            
                org.springframework.cloud
                spring-cloud-alibaba-dependencies
                ${nacos.version}
                pom
                import
            
        
    


3.服务提供者 3.1 pom.xml依赖

nacos-service-provider服务提供者项目pom依赖



    
        Think-In-SpringCloud
        com.hl.magic
        1.0-SNAPSHOT
    
    4.0.0

    SpringCloud-Nacos-provider
    服务提供者

    
        
            org.springframework.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        
    


3.2 入口主程序

ProviderApplication.java

package com.hl.magic;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;


@SpringBootApplication
@EnableDiscoveryClient
public class ProviderApplication {
	public static void main(String[] args) {
		SpringApplication.run(ProviderApplication.class, args);
	}
}
3.3 controller
package com.hl.magic.service;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

@RestController
public class TimeController {

	@GetMapping("/helloNacos")
	public String hellonacos() {
		return "hello, nacos! 时间:" + LocalDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME);
	}
}
3.4 application.yaml配置
server:
  port: 10003

#nacos配置
spring:
  application:
    name: nacos-service-provider
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.0.103:8848

4. 服务消费者 4.1 pom.xml依赖

nacos-service-consumer服务提供者项目pom依赖



    
        Think-In-SpringCloud
        com.hl.magic
        1.0-SNAPSHOT
    
    4.0.0

    SpringCloud-Nacos-consumer
    服务消费者

    
        8
        8
        1.8
    
    
        
            org.springframework.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        
    


4.2 入口主程序

ConsumerApplication.java

package com.hl.magic;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;


@SpringBootApplication
@EnableDiscoveryClient
public class ConsumerApplication {
	public static void main(String[] args) {
		SpringApplication.run(ConsumerApplication.class, args);
	}
}
4.3 controller
package com.hl.magic.controller;

import com.hl.magic.service.TimeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import java.util.HashMap;
import java.util.Map;


@RestController
public class FeignController {

	private RestTemplate restTemplate;
	@Autowired
	public void setRestTemplate(RestTemplate restTemplate) {
		this.restTemplate = restTemplate;
	}

	@Bean
	@LoadBalanced
	public RestTemplate getRestTemplate() {
		return new RestTemplate();
	}

	
	@GetMapping("/consumer")
	public String getMsg() {
		return restTemplate.getForObject("http://nacos-service-provider/helloNacos", String.class);
	}

}
4.4 application.yaml配置
server:
  port: 10002
spring:
  application:
    name: nacos-service-consumer
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.0.103:8848

5. 测试 5.1 启动nacos-server

(启动步骤略)

5.2 启动服务提供者

在IDEA中运行ProviderApplication.java入口主程序,在IDEA控制台上看到如下信息是,说明服务提供者已经注册完成。 

5.3启动服务消费者

在IDEA中运行ConsumerApplication.java入口主程序,在IDEA控制台上看到如下信息是,说明消费者服务已经注册完成。 

5.4 查看nacos服务列表 

5.5 浏览器访问测试

访问服务消费者: http://192.168.0.103:10002/consumer

返回结果如下:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/762544.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号