首先windows環境下,安裝下載nacos,下載地址:https://github.com/alibaba/nacos/releases/tag/1.1.0
解壓到任意一個你覺得開心的文件夾,然後啓動,如下圖
雙擊啓動成功以後如圖:
訪問:http://127.0.0.1:8848/nacos/ , 輸入用戶名,密碼 nacos,nacos
登錄成功的頁面
分割線-------------------------------------------------------------------------nacos安裝完畢,開始建工程
首先創建一個maven的web-app項目,在此項目下,新建兩個項目,一個是服務端項目,一個是客戶端項目。新建一個nacos的spring boot服務端項目,nacos-provider,
建完後,pom文件如下
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>0.9.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
application.yml文件配置如下
server:
port: 8762
spring:
application:
name: nacos-provider
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
啓動類上面加上註解
然後,創建一個nacos-consumer項目,過程如上,此處略,奉上此consumer項目的application.yml配置文件
server:
port: 8763
spring:
application:
name: nacos-consumer
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
依次啓動兩個項目,然後登陸http://127.0.0.1:8848/nacos,服務列表會新增你剛剛註冊的兩個服務,如下圖
到此就創建成功了。
繼續剛纔的項目,使用feign消費服務:
在province項目中,暴露一個controller,如下
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ProviderController {
Logger logger= LoggerFactory.getLogger(ProviderController.class);
@GetMapping("/hi")
public String hi(@RequestParam(value = "name",defaultValue = "forezp",required = false)String name){
return "hi "+name;
}
}
服務端的接口就算是完成了,接着編寫消費端的代碼。
在consumer項目的pom文件中加入依賴:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
注意注意注意:::: 一定要加上版本號,這個地方因爲我之前沒加,報錯提示下面的interface沒注入<version>2.1.0.RELEASE</version>
在consumer工程中新建接口
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
@FeignClient("nacos-provider")
public interface ProviderClient {
@GetMapping("/hi")
String hi(@RequestParam(value = "name", defaultValue = "forezp", required = false) String name);
}
接着新建 controller調用此service
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ConsumerController {
@Autowired
ProviderClient providerClient;
@GetMapping("/hi-feign")
public String hiFeign(){
return providerClient.hi("feign");
}
}
重啓工程,在瀏覽器上訪問http://localhost:8763/hi-feign,可以在瀏覽器上展示正確的響應,這時nacos-consumer調用nacos-provider服務成功。
如果頁面報錯:
引入以下依賴
<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>18.0</version> </dependency> <dependency> <groupId>com.netflix.archaius</groupId> <artifactId>archaius-core</artifactId> <version>0.7.6</version> </dependency>