SpringCload搭建(一):使用Nacos實現服務注冊與發現,遠程調用(restTemplate),負載均衡@LoadBalanced


使用的項目:項目D:\me\springCloadProjectAll\springcload01

一:理解

nacos是springcload的注冊中心,所以先啟動nacos然后才是啟動其他的就可以在nacos里面注冊

二:實操

1.安裝nacos

  1. 啟動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. 配置集群(略)

  2. 啟動

    

  3.效果

  

 

 

2.搭建springcload框架

  1. 先創建一個maven項目,maven是盒子,使用的主要是pom文件
  2. 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
  

 

 

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM