SpringCloudAlibaba介紹(一)
Spring Cloud Alibaba 致力于提供微服務開發的一站式解決方案,此專案包含開發分布式應用微服務的必需組件,方便開發者通過Spring Cloud 編程模型輕松使用這些組件來開發分布式應用服務, 依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以將 Spring Cloud 應用接入阿里微服務解決方案,通過阿里中間件來迅速搭建分布式應用系統,
主要功能
服務限流降級:默認支持 WebServlet、WebFlux, OpenFeign、RestTemplate、Spring Cloud,Gateway, Zuul, Dubbo 和 RocketMQ限流降級功能的接入,可以在運行時通過控 制臺實時修改限流降級規則,還支持查看限流降級 Metrics 監控,
服務注冊與發現:適配 Spring Cloud 服務注冊與發現標準,默認集成了 Ribbon 的支持,
分布式配置管理:支持分布式系統中的外部化配置,配置更改時自動重繪,
訊息驅動能力:基于 Spring Cloud Stream為微服務應用構建訊息驅動能力, 分布式事務:使用 @GlobalTransactional 注解, 高效并且對業務零侵入地解決分布式事務問題,
阿里云物件存盤:阿里云提供的海量、安全、低成本、高可靠的云存盤服務,支持在任何應用、任何時間、任何地點存盤和訪問任意型別的資料,
分布式任務調度:提供秒級、精準、高可靠、高可用的定時(基于 Cron 運算式)任務調度服務,同時提供分布式的任務執行模型,如網格任務,網格任務支持海量子任務均勻分配到所有Worker(schedulerx-client)上執行,
阿里云短信服務:覆寫全球的短信服務,友好、高效、智能的互聯化通訊能力,幫助企業迅速搭建客戶觸達通道, 更多功能請參考 Roadmap,
組件
Sentinel:把流量作為切入點,從流量控制、熔斷降級、系統負載保護等多個維度保護服務的穩定性,
Nacos:一個更易于構建云原生應用的動態服務發現、配置管理和服務管理平臺,
RocketMQ:一款開源的分布式訊息系統,基于高可用分布式集群技術,提供低延時的、高可靠的訊息發布與訂閱服務,
Dubbo:Apache Dubbo? 是一款高性能 Java RPC 框架,
Seata:阿里巴巴開源產品,一個易于使用的高性能微服務分布式事務解決方案,
Alibaba Cloud OSS: 阿里云物件存盤服務(Object Storage Service,簡稱
OSS),是阿里云提供的海量、安全、低成本、高可靠的云存盤服務,您可以在任何應用、任何時間、任何地點存盤和訪問任意型別的資料,
Alibaba Cloud SchedulerX: 阿里中間件團隊開發的一款分布式任務調度產品,提供秒級、精準、高可靠、高可用的定時(基于Cron 運算式)任務調度服務,
Alibaba Cloud SMS: 覆寫全球的短信服務,友好、高效、智能的互聯化通訊能力,幫助企業迅速搭建客戶觸達通道,
Nacos使用(windows版)
nacos主要是包含了Eureka注冊中心SpringConfig,SpringBus的功能,使用起來更方便更人性化,參考官網檔案使用可以看此處,nacos下載可以點擊此處,首先使用nacos必須要有jdk1.8或者以上的環境,當下載好nacos之后可以看見其中的檔案,

啟動nacos的時候直接進入bin目錄雙擊
startup.cmd檔案啟動nacos,默認通過這個http://localhost:8848/nacos鏈接可以進入nacos后臺控制中心,nacos默認的用戶名和密碼都是nacos,這樣nacos就安裝成功了

在SpringCloud中使用nacos先匯入maven依賴,這樣才能使用nacos的一些功能
<!--這里是把nacos當成配置中心的依賴-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>${latest.version}</version>
</dependency>
<!--這里是把nacos當成注冊中心的依賴-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>${latest.version}</version>
</dependency>
在專案中yml組態檔中必須配置有以下的配置才能使專案注冊經配置中心,而且springboot的主啟動類上要添加
@EnableDiscoveryClient注解
spring:
cloud:
nacos:
discovery:
server-addr: localhost:8848 #Nacos服務注冊中心地址
config:
server-addr: localhost:8848 #Nacos作為配置中心地址
file-extension: yaml #指定yaml格式的配置
group: TEST_GROUP
namespace: eeba7661-6b5e-46c6-aa45-5df57f48091f
注冊進入nacos服務中心之后,再服務串列這一個選項會出現一條新的記錄,是你當前注冊進nacos中的專案的微服務的資訊

在配置串列的位置可以寫組態檔的資訊,讓微服務從其中直接獲取,組態檔的命名的規則主要是
{微服務名}-{開發環境}.{檔案名}
詳細一點就是
${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

圖片里面的Data id表示組態檔的名字,group代表組態檔的分組資訊,檔案有幾種格式可以選擇這里使用yaml檔案格式進行測驗,

新建組態檔步驟如下

在這里可以生成相關的namespace命名空間

在這里可以進行切換命名空間

@RestController
@RefreshScope //支持Nacos的動態重繪功能,
public class ConfigClientController
{
@Value("${config.info}")
private String configInfo;
@GetMapping("/config/info")
public String getConfigInfo() {
return configInfo;
}
}
通過
http://localhost:3377/config/info這個地址可以獲取到當時在nacos上鎖配置的資訊
nacos is very good test01
并且nacos也支持負載均衡,能通過
RestTemplate進行遠程方法呼叫
/*在spring中ioc中加入一個bean*/
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
/*************************************************************/
/*通過RestTemplate 進行遠程方法呼叫*/
@Resource
private RestTemplate restTemplate;
@Value("${service-url.nacos-user-service}")
private String serverURL;/*微服務的提供者的地址這里是從yml檔案中進行獲取*/
@GetMapping(value = "/consumer/payment/nacos/{id}")
public String paymentInfo(@PathVariable("id") Long id)
{
return restTemplate.getForObject(serverURL+"/payment/nacos/"+id,String.class);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/275862.html
標籤:其他
