@TOC
問題背景
從零開始學(xué)springcloud微服務(wù)項目
注意事項:
- 約定 > 配置 > 編碼
- IDEA版本2021.1
- 這個項目裙戏,我分了很多篇章孵构,每篇文章一個操作步驟恍飘,目的是顯得更簡單明了
- controller調(diào)service,service調(diào)dao
- 項目源碼以及sentinel安裝包
nacos配置中心
1 新建nacos配置中心客戶端
2 選擇jdk1.8
3 輸入服務(wù)名:cloudalibaba-config-nacos-client3377
4 引入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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>springcloud2022</artifactId>
<groupId>com.yg</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>cloudalibaba-config-nacos-client3377</artifactId>
<dependencies>
<!--nacos-config-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--nacos-discovery-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--web + actuator-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--一般基礎(chǔ)配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
5 新增application.yml文件
spring:
profiles:
active: dev # 表示開發(fā)環(huán)境
6 新增bootstrap.yml文件
# nacos配置
server:
port: 3377
spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 #配置Nacos地址 #Nacos服務(wù)注冊中心地址
config:
server-addr: localhost:8848 #配置Nacos地址 #Nacos作為配置中心地址
file-extension: yml #指定yml格式的配置
# ${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
# nacos-config-client-dev.yml
7 添加啟動類
package com.yg.springcloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
/**
* @Author suolong
* @Date 2022/6/20 20:32
* @Version 2.0
*/
@EnableDiscoveryClient
@SpringBootApplication
public class NacosConfigClientMain3377 {
public static void main(String[] args) {
SpringApplication.run(NacosConfigClientMain3377.class, args);
}
}
8 添加controller
package com.yg.springcloud.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Author suolong
* @Date 2022/6/20 21:06
* @Version 2.0
*/
@RestController
@RefreshScope //在控制器類加入@RefreshScope注解使當(dāng)前類下的配置支持Nacos的動態(tài)刷新功能
public class ConfigClientController {
@Value("${config.info}")
private String configInfo;
@GetMapping("/config/info")
public String getConfigInfo() {
return configInfo;
}
}
9 啟動服務(wù)梯啤,在nacos網(wǎng)頁上添加微服務(wù)配置
10 通過公式取名:
# 服務(wù)名 + '-' + 環(huán)境dev或者prod + '.' + yml(文件格式)
${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
nacos-config-client-dev.yml
11 在nacos上編輯nacos-config-client-dev.yml竖伯,使用postman測試:http://localhost:3377/config/info
nacos命名空間
1 Namespace+Group+Data ID
- 最外層的namespace是可以用于區(qū)分部署環(huán)境的,Group和DataID邏輯上區(qū)分兩個目標(biāo)對象
- 默認情況:Namespace=public因宇,Group=DEFAULT_GROUP, 默認Cluster是DEFAULT
2 Nacos默認的命名空間是public黔夭,Namespace主要用來實現(xiàn)隔離
- 比方說我們現(xiàn)在有三個環(huán)境:開發(fā)、測試羽嫡、生產(chǎn)環(huán)境本姥,我們就可以創(chuàng)建三個Namespace,不同的Namespace之間是隔離的杭棵。
- Group默認是DEFAULT_GROUP婚惫,Group可以把不同的微服務(wù)劃分到同一個分組里面去
- Service就是微服務(wù);一個Service可以包含多個Cluster(集群)魂爪,Nacos默認Cluster是DEFAULT先舷,Cluster是對指定微服務(wù)的一個虛擬劃分。
比方說為了容災(zāi)滓侍,將Service微服務(wù)分別部署在了杭州機房和廣州機房蒋川,這時就可以給杭州機房的Service微服務(wù)起一個集群名稱(HZ),給廣州機房的Service微服務(wù)起一個集群名稱(GZ)撩笆,還可以盡量讓同一個機房的微服務(wù)互相調(diào)用捺球,以提升性能。
- 最后是Instance,就是微服務(wù)的實例。
SpringCloud無介紹快使用挤忙,Seata處理分布式事務(wù)(二十五)
SpringCloud無介紹快使用,sentinel服務(wù)熔斷功能(二十四)
SpringCloud無介紹快使用泣栈,sentinel注解@SentinelResource的基本使用(二十三)
SpringCloud無介紹快使用,sentinel熱點key限流與系統(tǒng)規(guī)則的基本使用(二十二)
SpringCloud無介紹快使用弥姻,sentinel熔斷降級和限流的基本使用(二十一)
SpringCloud無介紹快使用南片,Nacos集群和Nginx代理(二十)
SpringCloud無介紹快使用,nacos配置中心的基本使用(十九)
SpringCloud無介紹快使用庭敦,nacos注冊中心的基本使用(十八)
SpringCloud無介紹快使用疼进,gateway通過微服務(wù)名實現(xiàn)動態(tài)路由(十七)
SpringCloud無介紹快使用,gateway的基本使用(十六)
SpringCloud無介紹快使用螺捐,Ribbon負載均衡工具與OpenFeign的使用(十五)
SpringCloud無介紹快使用颠悬,使用Zookeeper替換Eureka服務(wù)注冊與發(fā)現(xiàn)(十四)
SpringCloud無介紹快使用,服務(wù)發(fā)現(xiàn)Discovery和Eureka自我保護(十三)
SpringCloud無介紹快使用定血,集群cloud-provider-payment8002搭建(十二)
SpringCloud無介紹快使用赔癌,集群Eureka服務(wù)注冊中心cloud-eureka-server7002搭建(十一)
SpringCloud無介紹快使用,單機Eureka服務(wù)注冊中心cloud-eureka-server7001搭建(十)
SpringCloud無介紹快使用澜沟,新建cloud-api-commons公共模塊module(九)
SpringCloud無介紹快使用灾票,新建子module消費者訂單模塊(八)
SpringCloud無介紹快使用,熱部署devtools配置(七)
SpringCloud無介紹快使用茫虽,子module提供者支付微服務(wù)業(yè)務(wù)開發(fā)(六)
SpringCloud無介紹快使用刊苍,新建子module提供者支付微服務(wù)yml整合和新建啟動類(五)
SpringCloud無介紹快使用,新建子module提供者支付微服務(wù)pom整合(四)
SpringCloud無介紹快使用濒析,springcloud父工程pom文件整理(三)
SpringCloud無介紹快使用正什,IDEA新建springcloud父工程(二)
SpringCloud無介紹快使用,與Spingboot之間的兼容版本選擇(一)
作為程序員第 186 篇文章号杏,每次寫一句歌詞記錄一下婴氮,看看人生有幾首歌的時間,wahahaha ...