Nacos注册中心的使用

Nacos注册中心的使用

Github文档

Nacos config · alibaba/spring-cloud-alibaba Wiki · GitHub

注册中心与CAP

Eureka:AP
Zookeeper:CP
Nacos默认和1.0前:AP
Nacos1.0后:AP+CP混合

Jar

spring-cloud-alibaba:2021.0.4.0
spring-boot:2.6.8
spring-cloud-loadbalancer:3.1.3


<dependency>
	<groupId>com.alibaba.cloudgroupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
dependency>

<dependency>
	<groupId>com.alibaba.cloudgroupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
dependency>
<dependency>
	<groupId>org.springframework.bootgroupId>
	<artifactId>spring-boot-starter-actuatorartifactId>
dependency>

<dependency>
	<groupId>org.springframework.cloudgroupId>
	<artifactId>spring-cloud-starter-loadbalancerartifactId>
dependency>

Nacos注册中心的使用

1. 启动类添加注解:

@EnableDiscoveryClient,消费者还要加上@EnableFeignClients

2. 生产者yml

server:
  port: 8481
spring:
  application:
    name: nacos-provider
  cloud:
    nacos:
      config:
        group: DEFAULT_GROUP
        server-addr: localhost:8848
      discovery:
        server-addr: localhost:8848
        username: devilvan
        password: 741258963hjkl

3. 消费者yml

server:
  port: 8581
spring:
  application:
    name: nacos-consumer
  cloud:
    nacos:
      config:
        group: DEFAULT_GROUP
        server-addr: localhost:8848

4. 注册情况

http://192.168.10.3:8848/nacos/index.html
Nacos注册中心的使用_第1张图片

5. 生产者方法

/**
 * @author Evad.Wu
 * @Description Nacos生产者 控制层
 * @date 2022-11-03
 */
@RestController
@RequestMapping(value = "nacosProviderController")
public class NacosProviderController {
	@GetMapping(value = "/echo/{str}")
	public String echo(@PathVariable String str) {
		return "Hello Nacos Discovery " + str;
	}
}

6. 消费者方法

/**
 * @author Evad.Wu
 * @Description Nacos消费者 控制层
 * @date 2022-11-03
 */
@RestController
@RequestMapping(value = "nacosConsumerController")
public class NacosConsumerController {
	@Resource(name = "consumerRestTemplate")
	private RestTemplate restTemplate;

	@RequestMapping(value = "/echo/{str}", method = RequestMethod.GET)
	public String echo(@PathVariable String str) {
		return restTemplate.getForObject("http://nacos-provider/nacosProviderController/echo/" + str, String.class);
	}
}

7. 消费者到生产者的远程调用接口

/**
 * @Description Nacos Feign 远程调用接口
 */
@FeignClient(value = "nacos-provider")
public interface NacosFeignService {
    /**
     * 远程调用的测试方法
     *
     * @param str 路由下的参数
     * @return 返回值
     */
    @GetMapping(value = "nacosProviderController/echo/{str}")
    String echo(@PathVariable String str);

    /**
     * 远程调用的测试方法2
     *
     * @param str 路由下的参数
     * @return 返回值
     */
    @GetMapping(value = "nacosProviderController/echo2/{str}")
    String echo2(@PathVariable String str);
}


8. 使用

Nacos注册中心的使用_第2张图片

你可能感兴趣的:(Spring,Cloud,Alibaba,spring,cloud,spring,boot,nacos)