赞
踩
springboot 版本 2.3.12.RELEASE对应 Nacos Discovery 2.2.7.RELEASE 版本
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.7.RELEASE</version>
</dependency>
server:
port: 20002
spring:
application:
name: SPRING-CLOUD-SERVICE-CONFIG-PROVIDER
cloud:
nacos:
discovery:
server-addr: 42.193.0.90:8848
service: ${spring.application.name:DEFAULT-SERVICE-NAME}
username: nacos
password: nacos
namespace: 2022-4-1-prod
启动类添加 @EnableDiscoveryClient 注解,开启服务自动注册
新增测试接口 http://127.0.0.1:20002/config/student
@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {
@Value("${useLocalCache:false}")
private boolean useLocalCache;
@GetMapping("/student")
public String getStudent() {
return JSONObject.toJSONString(student);
}
}
server:
port: 20003
spring:
application:
name: SPRING-CLOUD-SERVICE-DISCOVERY-CONSUMER
cloud:
nacos:
discovery:
server-addr: 42.193.0.90:8848
service: ${spring.application.name:DEFAULT-SERVICE-NAME}
username: nacos
password: nacos
namespace: 2022-4-1-prod
cluster-name: DEFAULT
weight: 1 # 1 ~ 100,数值越大,权重越大
启动类添加 @EnableDiscoveryClient 注解,开启服务自动注册
@Configuration
public class RestTemplateConfig {
@LoadBalanced
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
@RestController
@RequestMapping("/discovery")
public class DiscoveryController {
@Autowired
private RestTemplate restTemplate;
@GetMapping("/select")
public String selectService() {
ResponseEntity<String> responseEntity = restTemplate.getForEntity("http://SPRING-CLOUD-SERVICE-CONFIG-PROVIDER/config/student", String.class);
return responseEntity.getBody();
}
}
Springcloud的RestTemplate 使用服务名报异常 java.net.UnknownHostException
添加 @LoadBalanced 注解
@Configuration
public class RestTemplateConfig {
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
调用服务
ResponseEntity<String> responseEntity = restTemplate.getForEntity("http://SPRING_CLOUD_SERVICE_CONFIG_PROVIDER/config/student", String.class);
需要修改服务名,将 SPRING_CLOUD_SERVICE_CONFIG_PROVIDER
服务名改为 SPRING-CLOUD-SERVICE-CONFIG-PROVIDER
,负载均衡 Ribbon 是不支持下划线的,只支持横线
运行成功
demo 地址:https://gitee.com/LingYunYe/nacos-example-study/tree/master/nacos-springcloud-discovery-examples/src/main
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。