Nacos篇三 - 服务提供方和消费者

服务注册中心和服务发现的服务端都是由 Nacos Server 来提供的,我们只需要提供 Service 向其注册就好了。

在“栗子”中我们依然使用standalone模式运行Nacos Server。

本栗子使用spinrg cloud+nacos

1、服务提供方

1.1、创建maven工程,附上pom文件



    4.0.0
    com.hcj
    nacos-provider
    0.0.1-SNAPSHOT
    nacos-provider
    Demo project for Spring Boot

    
        org.springframework.boot
        spring-boot-starter-parent
        1.5.9.RELEASE
        
    

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                Edgware.SR5
                pom
                import
            
            
                org.springframework.cloud
                spring-cloud-alibaba-dependencies
                0.1.0.RELEASE
                pom
                import
            
        
    

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

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    


2.1、修改配置文件

注:slf4j是日志记录方面的配置,和服务提供没有任何关系,可不要。

server.port=1919
spring.application.name=nacos-provider

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

##log
##slf4j 配置内容
logging.file=logger.log
logging.level.*=trace
##  在控制台输出的日志的格式
logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n
## 指定文件中日志输出的格式
logging.pattern.file=%d{yyyy-MM-dd} === [%thread] === %-5level === %logger{50} ==== %msg%n

2.3、向spring主函数入口添加服务发现注解

@EnableDiscoveryClient

@SpringBootApplication
@EnableDiscoveryClient
public class NacosProviderApplication {

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

}

2.4、先写栗子Controller

@RestController
public class PrintController {
    @Value("${server.port}")
    private String port;

    @RequestMapping(value = "/hi",method = RequestMethod.GET)
    public String sayHi(){
        return "hello ,I'm port:"+port;
    }
}

2.5、启动服务

运行NacosProviderApplication后,我们在nacos就发现【nacos-provider】服务已注册到nacos server上了,

Nacos篇三 - 服务提供方和消费者_第1张图片

通过浏览器访问:http://localhost:1919/hi,成功调用服务。

2、消费者

2.1、搭建项目,附上pom文件



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        1.5.9.RELEASE
         
    
    com.hcj
    nacos-consumer
    0.0.1-SNAPSHOT
    nacos-consumer
    Demo project for Spring Boot

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                Edgware.SR5
                pom
                import
            
            
                org.springframework.cloud
                spring-cloud-alibaba-dependencies
                0.1.0.RELEASE
                pom
                import
            
        
    

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

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    


2.2、修改配置文件

spring.application.name= nacos-consumer
spring.cloud.nacos.discovery.server-addr= 127.0.0.1:8848
server.port= 1929

##log
logging.file=logger.log
logging.level.*=trace
##  在控制台输出的日志的格式
logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n
## 指定文件中日志输出的格式
logging.pattern.file=%d{yyyy-MM-dd} === [%thread] === %-5level === %logger{50} ==== %msg%n

2.3、向spring主函数入口添加服务发现注解和ribbon

@SpringBootApplication
@EnableDiscoveryClient
public class NacosConsumerApplication {

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

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

2.4、编写Controller中调用服务

@RestController
public class PrintController {

    private final RestTemplate restTemplate;

    @Value("${server.port}")
    private String port;

    @Autowired
    public PrintController(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }

    @RequestMapping(value = "/hi", method = RequestMethod.GET)
    public String echo() {
        return "I'm port:"+port+", "+restTemplate.getForObject("http://nacos-provider/hi", String.class);
    }
}

2.5、启动服务,查看nacos server

消费者服务已成功注册到nacos server

Nacos篇三 - 服务提供方和消费者_第2张图片

我们再调用接口,成功调用提供方的服务:http://localhost:1929/hi

Nacos篇三 - 服务提供方和消费者_第3张图片

至此大功告成!

手编不易,转载参考请注明来源。

欢迎大家点赞、留言

 

Nacos系列文章:

  1. Nacos篇一 - 基本介绍
  2. Nacos篇二 - 搭建Server
  3. Nacos篇三 - 服务提供方和消费者
  4. Nacos篇四 - 配置中心config
  5. Nacos篇五 - 部署模式(单机、集群)

 

 

你可能感兴趣的:(spring,cloud,微服务实战)