本項目演示如何使用 spring cloud alibaba系列html
版本 0.2.1.RELEASE 對應的是 Spring Cloud Finchley 版本,git
版本 0.1.1.RELEASE 對應的是 Spring Cloud Edgware 版本。github
官方文檔目前推薦的SpringBoot 2.0.6.RELEASE版本。若是註冊不了通常都是版本不對。能夠去官方文檔查看對應的版本 若是須要使用已發佈的版本,在 dependencyManagement
中添加以下配置。web
而後在 dependencies
中添加本身所需使用的依賴便可使用。spring
若是您想體驗最新的 BUILD-SNAPSHOT 的新功能,則能夠將版本換成最新的版本,可是須要在 pom.xml 中配置 Spring BUILDSNAPSHOT 倉庫,注意: SNAPSHOT 版本隨時可能更新瀏覽器
<repositories>
<repository>
<id>spring-snapshot</id>
<name>Spring Snapshot Repository</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
複製代碼
Nacos 是阿里巴巴開源的一個更易於構建雲原生應用的動態服務發現、配置管理和服務管理平臺。 如何使用Nacos Discovery Starter 完成 Spring Cloud 應用的服務註冊與發現bash
新建一個項目 cloud-clientapp
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
複製代碼
server.port=18082
#服務名稱
spring.application.name=cloud-client
#Nacos Server 地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
複製代碼
4 下載 Nacos Server :github.com/alibaba/nac…負載均衡
Linux/Unix/Mac 操做系統,執行命令 sh startup.sh -m standaloneide
Windows 操做系統,執行命令 cmd startup.cmd
訪問控制檯:http://127.0.0.1:8848/nacos/index.html
0.8版本默認登陸帳號的密碼nacos/nacos.
出現以下信息說明註冊到nacos成功
以上步驟向您展現瞭如何將一個服務註冊到 Nacos。
新建一個項目 cloud-consumer.配置文件和消費者同樣更換下端口便可。
server.port=18083
spring.application.name=service-consumer
#Nacos Server 地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
management.endpoints.web.exposure.include=*
複製代碼
啓動類一樣添加@EnableDiscoveryClient 註冊到nacos
@EnableDiscoveryClient
@SpringBootApplication
public class CloudConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(CloudConsumerApplication.class, args);
}
//實例化 RestTemplate 實例
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
複製代碼
新建一個 ConsumerController
@RestController
public class ConsumerController {
@Autowired
private LoadBalancerClient loadBalancerClient;
@Autowired
private RestTemplate restTemplate;
@Value("${spring.application.name}")
private String appName;
/**
* 經過帶有負載均衡的RestTemplate 和 FeignClient 也是能夠訪問的
* @return
*/
@GetMapping("/echo/app-name")
public String echoAppName(){
//使用 LoadBalanceClient 和 RestTemolate 結合的方式來訪問
ServiceInstance serviceInstance = loadBalancerClient.choose("service-provider");
String url = String.format("http://%s:%s/echo/%s",serviceInstance.getHost(),serviceInstance.getPort(),appName);
System.out.println("request url:"+url);
return restTemplate.getForObject(url,String.class);
}
}
複製代碼
分別啓動cloud-client和cloud-consumer刷新nacos
瀏覽器出現 第一個Nacos 程序service-consumer 到此Over 基於Nacos實現的服務註冊發現已經調用就到此爲止。入門仍是很簡單的 阿里巴巴大法好!
spring.cloud.nacos.discovery.server-addr #Nacos Server 啓動監聽的ip地址和端口
spring.cloud.nacos.discovery.service #給當前的服務命名
spring.cloud.nacos.discovery.weight #取值範圍 1 到 100,數值越大,權重越大
spring.cloud.nacos.discovery.network-interface #當IP未配置時,註冊的IP爲此網卡所對應的IP地址,若是此項也未配置,則默認取第一塊網卡的地址
spring.cloud.nacos.discovery.ip #優先級最高
spring.cloud.nacos.discovery.port #默認狀況下不用配置,會自動探測
spring.cloud.nacos.discovery.namespace #經常使用場景之一是不一樣環境的註冊的區分隔離,例如開發測試環境和生產環境的資源(如配置、服務)隔離等。
spring.cloud.nacos.discovery.access-key #當要上阿里雲時,阿里雲上面的一個雲帳號名
spring.cloud.nacos.discovery.secret-key #當要上阿里雲時,阿里雲上面的一個雲帳號密碼
spring.cloud.nacos.discovery.metadata #使用Map格式配置,用戶能夠根據本身的須要自定義一些和服務相關的元數據信息
spring.cloud.nacos.discovery.log-name 日誌文件名
spring.cloud.nacos.discovery.enpoint #地域的某個服務的入口域名,經過此域名能夠動態地拿到服務端地址
ribbon.nacos.enabled #是否集成Ribbon 通常都設置成true便可
複製代碼
Demmo源碼:github.com/a870439570/…