nacos最簡入門環境搭建
Nacos官網
https://nacos.io/zh-cn/docs/what-is-nacos.html
https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/en-us/index.html#_spring_cloud_alibaba_nacos_discovery
1是什么?
Nacos 致力于幫助您發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務元數據及流量管理。
Nacos 幫助您更敏捷和容易地構建、交付和管理微服務平臺。 Nacos 是構建以“服務”為中心的現代應用架構 (例如微服務范式、云原生范式) 的服務基礎設施。
服務(Service)是 Nacos 世界的一等公民。Nacos 支持幾乎所有主流類型的“服務”的發現、配置和管理:
2哪里下載
https://github.com/alibaba/nacos/tags
3怎么使用nacos服務
解壓后進入bin目錄輸入如下命令,啟動單機模式
啟動成功后進入
http://localhost:8848/nacos/#/login
賬號:nacos
密碼:nacos
4服務端注冊到nacos
4.1新建項目
<?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">
<modelVersion>4.0.0</modelVersion>
<groupId>org.chinasoft.springcloud</groupId>
<artifactId>nacos-client1.0</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>nacos-registerconfig</module>
<module>nacos-consumer3388</module>
<module>cloud-gateway</module>
</modules>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<junit.version>4.12</junit.version>
<log4j.version>1.2.17</log4j.version>
<lombok.version>1.16.18</lombok.version>
<mysql.version>5.1.47</mysql.version>
<druid.version>1.1.16</druid.version>
<mybatis.spring.boot.version>1.3.0</mybatis.spring.boot.version>
<spring-cloud-alibaba-version>2.2.1</spring-cloud-alibaba-version>
</properties>
<!--子模塊繼承之后提供作用,鎖定版本+子模塊不用寫g+v-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.4.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<!--熱部署插件不生效啊-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<addResources>true</addResources>
</configuration>
</plugin>
</plugins>
</build>
</project>
4.2新建模塊
引入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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>nacos-client1.0</artifactId>
<groupId>org.chinasoft.springcloud</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>nacos-registerconfig</artifactId>
<dependencies>
<!-- nacos配置中心中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- nacos服務發現與注冊中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
</dependencies>
</project>
4.3創建application.yml文件與bootstrap.yaml文件
bootstrap.yaml為nacos配置所需文件,服務啟動會從nacos配置中心獲取配置文件,nacos中配置文件的dataid名字規則
為{spring.application.name}-{spring.profiles.active}.{spring.cloud.nacos.config.file-extension}
4.4在nacos配置中心配置文件
4.5寫業務類與主類
@RestController
public class NacosProviderController {
@Value("${config.info}")
private String configInfo;
@GetMapping(value = "/nacos/config/{idx}")
public String getValue(@PathVariable("idx") String id){
System.out.println("配置信息:"+configInfo+";端口3377;輸入參數"+id);
return "配置信息:"+configInfo+";端口3377;輸入參數"+id;
}
}
configInfo從nacos中的dataid為 nacos-provider-dev.yaml里面讀取出來。
注意注解@PathVariable(“idx”),不加注解無法傳輸參數
@EnableDiscoveryClient
@SpringBootApplication
public class NacosProvider {
public static void main(String[] args) {
SpringApplication.run(NacosProvider.class,args);
}
}
4.6啟動主函數
結果如下
5消費方注冊到nacos
5.1新建模塊
新建的模塊pom.xml中會自動生成
5.2修改pom.xml
與服務提供端引入的jar包一致,去掉nacos.config依賴包就可以了
<?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>nacos-client1.0</artifactId>
<groupId>org.chinasoft.springcloud</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>nacos-consumer3388</artifactId>
<dependencies>
<!-- nacos服務發現與注冊中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
</dependencies>
</project>
5.3創建yml文件
server:
port: 3388
spring:
application:
name: nacos-consumer3388 #服務名
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 #nacos注冊中心地址
5.4寫主類
@EnableDiscoveryClient
@SpringBootApplication
public class NacosConsumer {
public static void main(String[] args) {
SpringApplication.run(NacosConsumer.class,args);
}
}
5.5編寫業務類
@Configuration
public class RestConfig {
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}
必須添加負載均衡配置,否則不會去nacos獲取服務名
RestController
public class NacosConsumerController {
@Autowired
private RestTemplate restTemplate;
//從注冊中心獲取該名字 nacos-provider
public static final String basePath = "http://nacos-provider";
// public static final String basePath = "http://127.0.0.1:3377";
@GetMapping(value="/consumer/{id}")
public String invokeServiceProvide(@PathVariable("id") String id){
return restTemplate.getForObject(basePath+"/nacos/config/"+id,String.class);
}
}
5.6結果
消費方調用
服務方自己調用
Nacos注冊中心
智能推薦
Flutter入門環境搭建及hello_flutter
0.效果 概念性的東西我不太會扯,先給一個Fullter開發調試時的效果,讓你3秒鐘愛上ta 1.系統環境搭建 所需基礎工具:git,Android Studio, IntelliJ IDE,這些的下載安裝就不啰嗦了。 安裝Flutter ,win+R cmd 輸入 配置環境變量,如...
VUE入門環境搭建及demo運行
vue簡介: Vue.js 是一套構建用戶界面的漸進式框架。他自身不是一個全能框架——只聚焦于視圖層。因此它非常容易學習,非常容易與其它庫或已有項目整合。在與相關工具和支持庫一起使用時,Vue.js 也能完美地驅動復雜的單頁應用。 第一步:安裝node.js 下載鏈接https://nodejs.org/en/ node簡介 Node.js是一個Javascript運行環境...
第一章:tornado入門環境搭建
一、準備及安裝工具 1、pycharm 2017以下簡稱pycharm 2、虛擬機或者自己有服務器 3、安裝ubuntu 16.04系統以下簡稱ubuntu 4、Xshell 5遠程連接工具以下簡稱Xshell 二、ubuntu中環境的基本配置 1、創建一個虛擬環境用來跑我們開發的tornado項目 2、查看自己服務上已經創建好的虛擬環境的命令workon 3、進入一個虛擬環境的命令workon ...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
猜你喜歡
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...
Linux C系統編程-線程互斥鎖(四)
互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...
統計學習方法 - 樸素貝葉斯
引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...