springcloud-alibaba-Nacos簡單使用和配置
阿新 • • 發佈:2022-02-04
一.Nacos註冊中心
1.客戶端新增依賴
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
2.檔案配置
server: port: 83 spring: application: name: nacos-order-consumer cloud: nacos: discovery: server-addr: localhost:8848 #配置nacos地址 #消費者將要去訪問微服務的名稱(成功註冊進nacos的微服務提供者) server-url: nacos-user-servicer: http://nacos-payment-pro
3.config配置
@Configuration
public class ApplicationContextConfig {
@Bean
@LoadBalanced //這天千萬別忘了
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}
4.controller
/** * @author qxL * @create 2022-02-04 15:14 */ @RestController @Slf4j public class OrderNacosController { @Resource private RestTemplate restTemplate; @Value("${server-url.nacos-user-servicer}") private String serverURl; @GetMapping(value = "/consumer/payment/nacos/{id}") public String paymentInfo(@PathVariable("id") Integer id){ return restTemplate.getForObject(serverURl+"/payment/nacos/"+id,String.class); } }
5.啟動類
@EnableDiscoveryClient
@SpringBootApplication
public class OrderNacosMain83 {
public static void main(String[] args) {
SpringApplication.run(OrderNacosMain83.class,args);
}
}
二.服務端
服務端新增兩個埠9001和9002,配置一樣,改埠即可
Nacos添加了spring-cloud-starter-alibaba-nacos-discovery後就包含ribbon依賴,實現了負載均衡
1.新增依賴
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
2.配置檔案
server:
port: 9001
spring:
application:
name: nacos-payment-provider
cloud:
nacos:
discovery:
server-addr: localhost:8848 #配置nacos地址
management:
endpoints:
web:
exposure:
include: '*
3.controller
@RestController
public class PaymentController {
@Value("${server.port}")
private String serverPort;
@GetMapping(value = "/payment/nacos/{id}")
public String getPayment(@PathVariable("id") Integer id){
return "nacos registry, serverPort:"+serverPort+"\t id"+id;
}
}
4.啟動類
@SpringBootApplication
@EnableDiscoveryClient
public class PaymentMain9001 {
public static void main(String[] args) {
SpringApplication.run(PaymentMain9001.class,args);
}
}
5.啟動客戶端和服務端的埠
在nacos的控制檯可以看到服務啟動成功
訪問埠
可見兩個埠交替訪問。
三.Nacos配置中心
1.新增依賴
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
2.配置檔案
spring:
profiles:
active: dev #表示開發環境
bootstrap.yml
server:
port: 3377
spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 #配置nacos地址
config:
server-addr: localhost:8848 #nacos作為配置中心地址
file-extension: yaml #指定yaml格式的配置
#${prefix}-${spring.profiles.active}.${file-extension}
#nacos-config-client-dev.yaml
3.controller
@RestController
@RefreshScope //支援nacos的動態重新整理功能
public class ConfigClientController {
@Value("${config.info}")
private String configInfo;
@GetMapping("/config/info")
public String GetConfigInfo(){
return configInfo;
}
}
4.啟動類
@SpringBootApplication
@EnableDiscoveryClient
public class NacosConfigClientMain3377 {
public static void main(String[] args) {
SpringApplication.run(NacosConfigClientMain3377.class,args);
}
}