使用的項目:項目D:\me\springCloadProjectAll\springcload01
一:理解
nacos是springcload的注冊中心,所以先啟動nacos然后才是啟動其他的就可以在nacos里面注冊
二:實操
1.安裝nacos
-
啟動nacos服務(單機模式&內嵌數據庫)
0.前提:配置JAVA_HOME環境變量,不配置會導致無法運行Nacos
1.下載源碼或者安裝包
安裝包地址:https://github.com/alibaba/nacos/releases
2.解壓后進入nacos/bin目錄
3.輸入命令啟動服務
linux:sh startup.sh -m standalone
windows:cmd startup.cmd
4.控制台啟動下,看到"Nacos started successfully in stand alone mode.”后表示服務已啟動
5.nacos默認使用8848端口,可通過http://127.0.0.1:8848/nacos/index.html進入自帶的控制台界面,默認用戶名/密碼是nacos/nacos
3. 配置集群(略) - 啟動
3.效果
2.搭建springcload框架
- 先創建一個maven項目,maven是盒子,使用的主要是pom文件
- G:\2\springcload\01 使用Nacos實現服務注冊與發現\資料\pom文件,粘貼然后進行名稱之類的修改
2.創建模塊(springboot):provider
1.選中項目右鍵new-module搭建springboot項目作為模塊
2.修改pom文件,引入父類pom文件這樣可以引入父類的依賴,packaging寫jar,可以打成jar包進行使用
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.xiu</groupId>
<artifactId>springcload01</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.xiu</groupId>
<artifactId>provider</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>provider</name>
<packaging>jar</packaging>
<description>子模塊,生產者</description>
<properties>
</properties>
<dependencies>
</dependencies>
</project>
3.寫yml配置文件
server:
port: 7101
spring:
cloud:
nacos:
discovery:
# 往nacos注冊的地址
server-addr: 127.0.0.1:8848
# 注冊名
application:
name: provider
4.啟動類添加注冊nacos注解
@SpringBootApplication
@EnableDiscoveryClient
public class ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
}
}
5.效果注冊成功
3.搭建消費者consumer
1.new module
2.pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.xiu</groupId>
<artifactId>springcload01</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.xiu</groupId>
<artifactId>consumer</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>consumer</name>
<packaging>jar</packaging>
<description>子模塊.消費者</description>
<properties>
</properties>
<dependencies>
</dependencies>
</project>
3.yml文件
server:
port: 6101
spring:
cloud:
nacos:
discovery:
# 往nacos注冊的地址
server-addr: 127.0.0.1:8848
# 注冊名
application:
name: consumer
4效果
3.消費者簡單調用生產者
1.寫遠程調用的配置類
/**
* @Author: LJX
* @DateTime: 2022/3/11 22:58
* @Description: restTemplate配置類
*/
@Configuration
public class RestTemplateConfig {
@Bean
@LoadBalanced //開啟負載均衡 (比如有三個生產者,消費者去調用時可以分開調用,而不是每次都只調用那一個生產者)(feign默認開啟不需要這一步)
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
2.消費者controller層去調用provider
/**
* @Author: LJX
* @DateTime: 2022/3/11 16:38
* @Description: TODO
*/
@RestController
@RequestMapping("/test")
public class HelloController {
@Resource
private RestTemplate restTemplate;
@RequestMapping("/hello")
public String hello(){
System.out.println("消費者");
//調用生產者,url + 返回類型
String forEntity = restTemplate.getForObject("http://provider/test/hello", String.class);
return forEntity;
}
}
3.效果圖:頁面使用consumer調用了provider