一文讀懂Spring Cloud

Spring Cloud 是什么

概述

Spring Cloud 是一系列框架的集合,為開(kāi)發(fā)人員提供了微服務(wù)系統(tǒng)架構(gòu)中的一些常見(jiàn)模型,例如:配置管理、服務(wù)發(fā)現(xiàn)、斷路器、路由、微代理、控制總線、一次性令牌、全局鎖、Leader選舉、分布式會(huì)話、集群狀態(tài)路由、分布式消息等。
Spring Cloud 構(gòu)建與Spring Boot之上,利用Spring Boot的便利性簡(jiǎn)化了微服務(wù)系統(tǒng)開(kāi)發(fā)、啟動(dòng)和部署。使得開(kāi)發(fā)者可以快速啟動(dòng)實(shí)現(xiàn)這些模型的服務(wù)和應(yīng)用程序。

特性

SpringCloud 致力于為典型用例提供良好的開(kāi)箱即用體驗(yàn),并提供覆蓋其他用例的擴(kuò)展機(jī)制。

  • 分布式/版本化配置-Distributed/versioned configuration
  • 服務(wù)注冊(cè)發(fā)現(xiàn)-Service registration and discovery
  • 網(wǎng)關(guān)路由-Routing
  • 服務(wù)調(diào)用-Service-to-service calls
  • 負(fù)載均衡-Load balancing
  • 服務(wù)熔斷-Circuit Breakers
  • 全局鎖-Global locks
  • Leader選舉和集群狀態(tài)-Leadership election and cluster state
  • 分布式消息-Distributed messaging

項(xiàng)目

Spring Cloud 官網(wǎng)可以看到包含的子項(xiàng)目眾多(30個(gè)),讓人望而生怯,直接勸退。但真正需要掌握的其實(shí)不多(6個(gè)),只要能滿足上面所說(shuō)特性即可,剩下的按需加入。下面從Spring Cloud的發(fā)展歷程來(lái)聊聊,看下這些項(xiàng)目都是干啥的以及是什么時(shí)候加入的。

Spring Cloud

Spring Cloud 發(fā)展歷程

起源

說(shuō)起Spring Cloud,不得不提起大名鼎鼎的Netflix。2014年,當(dāng)時(shí)Netflix公司推出了一系列開(kāi)源的微服務(wù)工具包(俗稱(chēng)Netflix OSS),其中包括 Eureka(服務(wù)注冊(cè)和發(fā)現(xiàn))、Hystrix(熔斷器)、Zuul(網(wǎng)關(guān))、Ribbon(負(fù)載均衡)、Feign(服務(wù)間調(diào)用)等工具。
Spring Cloud 創(chuàng)始人Spencer Gibb 和 Josh Long 在學(xué)習(xí) Netflix OSS 工具包時(shí),意識(shí)到可以與 Spring 框架無(wú)縫集成,從而降低開(kāi)發(fā)人員在構(gòu)建微服務(wù)時(shí)的技術(shù)難度和成本。于是,他們開(kāi)始開(kāi)發(fā) Spring Cloud,并將 Netflix OSS 的技術(shù)和 Spring 框架相結(jié)合,提供了一套全面的微服務(wù)解決方案。

主版本列表

Spring Cloud 版本都是倫敦地鐵站的名詞,直到2020年才采用了新的命名方式。在SR版本發(fā)布之前,會(huì)先發(fā)布一個(gè)Release版本。

發(fā)布時(shí)間 Spring Cloud 版本 Spring Boot 版本
2015年3月發(fā)布 Angel (安吉爾) 1.2.x
2016年5月發(fā)布 Brixton(布里克斯頓) 1.3.x
2016年9月發(fā)布 Camden(卡梅登) 1.4.x
2017年4月發(fā)布 Dalston(達(dá)斯頓) 1.5.x
2017年12月發(fā)布 Edgware(艾奇韋爾) 1.5.x
2018年6月發(fā)布 Finchley(芬奇利) 2.0.x
2019年4月發(fā)布 Greenwich(格林威治) 2.1.x
2019年11月發(fā)布 Hoxton(霍克斯頓) 2.2.x,2.3.x (Starting with SR5)
2020年12月發(fā)布 2020.0.x aka Ilford(埃福的) 2.4.x,2.5.x (Starting with 2020.0.3)
2021年6月發(fā)布 2021.0.x aka Jubilee(朱比利) 2.6.x,2.7.x (Starting with 2021.0.3)
2022年12月發(fā)布 2022.0.x aka Kiburn(基爾伯恩) 3.0.x

版本說(shuō)明

版本 描述
SNAPSHOT 快照版。可以穩(wěn)定使用,且仍在繼續(xù)改進(jìn)版本
PRE Preview Edition 預(yù)覽版。內(nèi)部測(cè)試版,主要給開(kāi)發(fā)人員和測(cè)試人員使用。
RC Release Candidate 發(fā)行候選版本。基本不再加入新的功能,主要是修復(fù)bug,是最終發(fā)行正式版的前一個(gè)版本,將bug修復(fù)完就可以發(fā)行正式版本了。
GA General Availability 正式發(fā)布版本。官方開(kāi)始推薦廣泛使用,國(guó)外有的也用GA表示Release版本。
SR Service Release 修正版或更新版。在正式版本推出后又發(fā)現(xiàn)bug,對(duì)Bug的修復(fù)。

發(fā)布內(nèi)容

說(shuō)明:
以下列的新增項(xiàng)目并不是嚴(yán)格的只在某個(gè)版本及其以后版本中出現(xiàn),也可能出現(xiàn)在之前版本的更新版中。只是說(shuō)首次出現(xiàn)時(shí)在那個(gè)版本發(fā)布,因?yàn)橥粫r(shí)間之前的版本也在更新維護(hù),會(huì)發(fā)布SRx版會(huì)將新的特性合并進(jìn)來(lái)。
例如:Spring Cloud Function首次在2018年6月18日發(fā)布的Finchley.RELEASE中出現(xiàn),但是在他之前的Edgware版本,在隨后的更新版Edgware.SR4(2018年6月29)中也包含了Spring Cloud Function。

Angel (安吉爾)2015年3月發(fā)布

新增的項(xiàng)目:

  • Spring Cloud Config
    • 分布式配置,支持giv,svn存儲(chǔ)
  • Spring Cloud Netflix
    • 提供對(duì)Netflix OSS的集成。
    • 包含了大部分Netflix OSS 的項(xiàng)目:Eureka,Hystrix,Zuul,Feign,Ribbon等。
  • Spring Cloud Bus
    • 用于連接服務(wù)和服務(wù)實(shí)例以及分布式消息傳遞的事件總線。支持RabbitMQ
  • Spring Cloud Security
    • 在 Zuul 代理中提供對(duì)負(fù)載平衡的 OAuth2靜態(tài)客戶端和身份驗(yàn)證頭中繼的支持。
  • Spring Cloud AWS
    • 提供與Amazon Web Services集成
  • Spring Cloud Connectors
    • 便于各種平臺(tái)上的PaaS應(yīng)用程序容易連接到后端服務(wù)
  • Spring Cloud Starters
    • Spring Boot 風(fēng)格的啟動(dòng)項(xiàng)目,簡(jiǎn)化Spring Cloud的依賴(lài)管理,已經(jīng)中止了,后續(xù)和其他項(xiàng)目合并了
  • Spring Cloud CLI
    • SpringBootCLI 插件,用于在 Groovy 中快速創(chuàng)建 SpringCloud 組件應(yīng)用程序。
  • Spring Cloud Commons
    • 在不同的Spring Cloud實(shí)現(xiàn)中使用了一組抽象和公共類(lèi)。包含對(duì)服務(wù)發(fā)現(xiàn),斷路器,負(fù)載均衡的抽象。

Brixton(布里克斯頓)2016年5月發(fā)布

新增項(xiàng)目:

  • Spring Cloud Zookeeper
    • 基于Apache Zookeeper的服務(wù)發(fā)現(xiàn)和配置管理
  • Spring Cloud Consul
    • 基于Hashicorp Consul的服務(wù)發(fā)現(xiàn)和配置管理
  • Spring Cloud Sleuth
    • 分布式跟蹤,兼容Zipkin,HTrace和基于日志的跟蹤(ELK)
  • Spring Cloud Cloudfoundry
    • 提供和Pivotal Cloudfoundry集成。
  • Spring Cloud Stream
    • Spring Cloud Stream 提供了對(duì)異步消息發(fā)送和接收的抽象實(shí)現(xiàn),提供統(tǒng)一API方式,允許開(kāi)發(fā)人員底層使用不同的MQ,例如Redis,Rabbit,Kafka
  • Spring Cloud Task
    • 短生命周期的微服務(wù)。簡(jiǎn)單的聲明,用于向 Spring Boot 應(yīng)用程序添加功能性和非功能性特性。
  • Spring Cloud Cluster
    • 集群的領(lǐng)導(dǎo)選舉、鎖和公共的狀態(tài)模式。為Zookeeper、Redis、Hazelcast、Consul提供抽象和實(shí)現(xiàn)。(已被廢棄,并被Spring Integration取代)

部分項(xiàng)目更新:

  • Spring Cloud Bus
    • 從新基于Spring Cloud Stream實(shí)現(xiàn)

Camden(卡梅登)2016年9月發(fā)布

新增項(xiàng)目:

  • Spring Cloud Contract
    • 該項(xiàng)目是一個(gè)總括性項(xiàng)目,持有解決方案,幫助用戶成功實(shí)現(xiàn)消費(fèi)者驅(qū)動(dòng)的契約方法。目前,SpringCloud 契約由 SpringCloud Contract Verifier項(xiàng)目組成。

Dalston(達(dá)斯頓)2017年4月發(fā)布

新增項(xiàng)目:

  • Spring Cloud Vault Config
    • SpringCloudVault 配置通過(guò) Hashicorp Vault 為分布式系統(tǒng)中的外部化私密管理提供客戶端支持。

部分項(xiàng)目更新:

  • Spring Cloud Commons
    • @EnableDiscoveryClient(autoRegister=false)
    • 新增ServiceRegistry API,Spring Cloud Zookeeper和Spring Cloud Consul實(shí)現(xiàn)該API
    • @LoadBalanced AsyncRestTemplate 支持
    • Configuration driven DiscoveryClient

Edgware(艾奇韋爾)2017年12月發(fā)布

新增項(xiàng)目:

  • Spring Cloud Gateway
    • 這個(gè)項(xiàng)目提供了一個(gè)在 SpringWebFlux 之上構(gòu)建 API 網(wǎng)關(guān)的庫(kù)。Spring Cloud Gateway 旨在提供一種簡(jiǎn)單而有效的方法來(lái)路由到 API,并向它們提供橫切關(guān)注點(diǎn),例如: 安全性、監(jiān)視/度量和彈性。

Finchley(芬奇利)2018年6月發(fā)布

新增項(xiàng)目:

  • Spring Cloud OpenFeign
    • Feign雖然是Netflix公司開(kāi)源的,但已經(jīng)移交給OpenFeign組織管理,不從屬于Netflix OSS范疇。
    • 原先所有的Spring Cloud Netflix Feign全部移到Spring Cloud OpenFeign。
  • Spring Cloud Function
    • 是基于 Spring Boot 的函數(shù)計(jì)算框架,它抽象出所有傳輸細(xì)節(jié)和基礎(chǔ)架構(gòu),允許開(kāi)發(fā)人員保留所有熟悉的工具和流程,并專(zhuān)注于業(yè)務(wù)邏輯。

Greenwich(格林威治)2019年4月發(fā)布

新增項(xiàng)目:

  • Spring Cloud Gcp
    • Spring Cloud Gcp 項(xiàng)目使得 Spring 框架成為了 Google 云平臺(tái)(gCP)的一等公民。
    • Spring Cloud GCP 提供了大量的庫(kù),使得從 Spring Framework 應(yīng)用程序使用 Google Cloud Platform 變得更加容易。
  • Spring Cloud Kubernetes
    • Spring Cloud Kubernetes 提供了Spring Cloud 接口的實(shí)現(xiàn),允許開(kāi)發(fā)人員在 Kubernetes 上構(gòu)建和運(yùn)行 Spring Cloud 應(yīng)用程序。
    • 雖然這個(gè)項(xiàng)目在構(gòu)建云本地應(yīng)用程序時(shí)可能對(duì)您有用,但是在 Kubernetes 上部署 Spring Boot 應(yīng)用程序不是必需的。你只需要一個(gè)基本的 Spring Boot 應(yīng)用程序和 Kubernetes 本身就可以完成很多事情。

Hoxton(霍克斯頓)2019年11月發(fā)布

增強(qiáng)了kubernetes和服務(wù)網(wǎng)格Service Mesh的支持

2020.0.x aka Ilford(埃福的)2020年12月發(fā)布

2020.0.0是第一個(gè)使用新的版本命名方案的Spring Cloud發(fā)行版本。
重要變更:

  • Spring Cloud Netflix 大部分組件被移除。archaius、hystrix、ribbon、turbine、zuul等移除,只保留了eureka。
  • Spring Cloud Gcp 不再是Spring Cloud發(fā)布系列的一部分,單獨(dú)維護(hù)發(fā)布。
  • Spring Cloud Kubernetes
    • 代碼重構(gòu)
    • Kubernetes 客戶端實(shí)現(xiàn)
    • 配置更改監(jiān)聽(tīng)器
    • 更名spring-cloud-starter-kubernetes-xx命名為spring-cloud-starter-kubernetes-fabric8-xx

新增項(xiàng)目:

  • Spring Cloud Circuit Breaker
    • Spring Cloud 斷路器,取代hystrix。提供了跨不同斷路器實(shí)現(xiàn)的抽象。提供了一致的 API,允許開(kāi)發(fā)人員選擇最適合應(yīng)用程序的斷路器實(shí)現(xiàn)。
    • 目前支持的斷路器:Resilience4J 和 Spring Retry。
  • Spring Cloud Loadbalancer
    • 負(fù)載均衡,取代ribbon

2021.0.x aka Jubilee(朱比利)2021年6月發(fā)布

正常維護(hù)更新

2022.0.x aka Kiburn(基爾伯恩)2022年12月發(fā)布

重要變更:

  • Spring Cloud CLI
    • 該項(xiàng)目從發(fā)布系列中移除
  • Spring Cloud Cloudfoundry
    • 該項(xiàng)目從發(fā)布系列中移除
  • Spring Cloud Commons
    • AsyncRestTemplate 在 SpringFramework6中已被刪除,因此 LoadBalancer 的自動(dòng)配置已被刪除。
    • Token Relay 遷移到新的Spring Security OAuth 2。
    • LoadBalancer ResponseData 現(xiàn)在使用 org.springframework.http. HttpStatusCode。
    • 刪除@EnableCircuitBreaker,因?yàn)樗槐?Hystrix 在不再支持的 Spring Cloud Netflix 中使用
    • 刪除@SpringCloudApplication 注釋。不再需要@EnableDiscover yClient 和@EnableCircuitBreaker。
  • Spring Cloud Sleuth
    • 該項(xiàng)目已經(jīng)從發(fā)布系列中移除。這個(gè)項(xiàng)目的核心已經(jīng)移動(dòng)到Micrometer Tracing項(xiàng)目和instrumentations將被移動(dòng)到 Micrometer 和所有各自的項(xiàng)目(不再是所有的instrumentations將在一個(gè)單一的存儲(chǔ)庫(kù)完成)
  • Spring Cloud Kubernetes
    • 在3.0.0-M1之前的版本中,Kubernetes 感知是使用 spring.clod.Kubernetes.able 屬性實(shí)現(xiàn)的。此屬性已被刪除且不受支持。相反,我們使用 SpringBootAPI: ConditionalOnCloudPlatform。如果需要顯式啟用或禁用這種感知,請(qǐng)使用 spring.main.cloud-Platform = NONE/KUBERNETES。
  • Spring Cloud OpenFeign
    • LoadBalancer ResponseData 現(xiàn)在使用 org.springframework.http. HttpStatusCode。
    • OAuth2支持已遷移到 SpringSecurityOAuth2客戶端。
    • spring.cloud.openfeign.metrics 屬性前綴已經(jīng)被更改為spring.cloud.openfeign.micrometer.
    • 為了與 SpringFramework 中的更改保持一致,已經(jīng)刪除了對(duì) ApacheHttpClient4的支持。ApacheHttpClient5是推薦的替代品。
    • Spring Cloud OpenFeign 的屬性前綴已經(jīng)從 feign 更改為 Spring.clod.OpenFeign。
  • Spring Cloud Netflix
    • 刪除了不必要的@EnableEurekaClient 注釋
    • 已刪除不推薦的 RestTemplateDiscover yClientOptionalArgs # RestTemplateDiscover yClientOptionalArgs ()構(gòu)造函數(shù)
    • 切換到默認(rèn)的@FeignClient 屬性解析。如果您希望回到惰性屬性解析(例如,對(duì)于與 Spring Cloud Contracts 集成的測(cè)試) ,請(qǐng)將 spring.cloud.openfeign.lazy-attributes-resolution 設(shè)置為 true。

消失的Spring Cloud Netflix

消失的原因

Spring Cloud 的興起和Netflix OSS密不可分,從Spring Cloud 在2015年3月發(fā)布的第一個(gè)版本Angel (安吉爾)中可以看出,最核心的項(xiàng)目就是Spring Cloud Netflix,其中包含的Archarus、Eureka、Hystrix、Ribbon、Zuul、Feign等都是微服務(wù)系統(tǒng)架構(gòu)經(jīng)典的解決方案,而這些方案則是在2014年由Netflix公司開(kāi)源的,俗稱(chēng)Netflix OSS。但是在2020年12月發(fā)布的2020.0.0版本中則移除了大部分Netflix OSS組件,只剩下了Eureka,這期間到底發(fā)生了什么?要想解釋清楚,還是得從Netflix公司說(shuō)起。
2014年Netflix公司開(kāi)源了自己的微服務(wù)解決套件也就是Netflix OSS,在當(dāng)時(shí)這也是微服務(wù)系統(tǒng)架構(gòu)最成功的落地方案,被各個(gè)大廠廣泛使用,但是在微服務(wù)興起不久,也就是2018年前后Netflix公司宣布其核心組件Hystrix、Ribbon、Zuul、Eureka等進(jìn)入維護(hù)狀態(tài),不再進(jìn)行新特性開(kāi)發(fā),只修復(fù)bug,這直接影響了Spring Cloud項(xiàng)目的發(fā)展規(guī)范,使Spring官網(wǎng)不得不采取應(yīng)對(duì)措施,在 2019 年的在 SpringOne 2019 大會(huì)中,Spring Cloud宣布 Spring Cloud Netflix 項(xiàng)目進(jìn)入維護(hù)模式,并在 2020 年移除相關(guān)的Netflix OSS組件。
目前的最新版2022.0.x中Spring Cloud Netflix中只剩下了Eureka,但Eureka預(yù)計(jì)也會(huì)在將來(lái)被徹底移除,畢竟不在維護(hù)了。而Feign雖說(shuō)是Netflix開(kāi)源的,但是在Spring Cloud 2018年6月發(fā)布的Finchley(芬奇利)中可以看出原先所有Spring Cloud Netflix Feign全部移到Spring Cloud OpenFeign中,也就是不在屬于Netflix OSS了,至此,大名鼎鼎的Netflix OSS差不多都落下了帷幕。

替代方案

接下來(lái)說(shuō)一說(shuō)替代方案,畢竟Netflix好多組件都不在維護(hù)了。從2018年之后發(fā)現(xiàn)的版本中也可以看出Spring Cloud做出的努力:

  • 開(kāi)發(fā)自己的項(xiàng)目替代Netflix中的相關(guān)組件。例如:
    • Spring Cloud Gateway 網(wǎng)關(guān),替代Zuul
    • Spring Cloud Circuit Breaker 斷路器,替代Hystrix
    • Spring Cloud LoadBalancer 負(fù)載均衡,替代Ribbon
  • 和更多云廠商集成,分擔(dān)分險(xiǎn)。例如:
    • Spring Cloud Azure-微軟
      • 和微軟的Azure集成,使的在 Spring 應(yīng)用程序中使用 Azure 服務(wù)更加容易。
    • Spring Cloud Alibaba-阿里巴巴
      • 和阿里巴巴的一站式分布式解決方案集成,使的在Spring應(yīng)用程序中使用阿里巴巴的中間件變得容易。
    • Spring Cloud for Amazon Web Services-亞馬遜
      • 和亞馬遜的AmazonWeb集成,使得開(kāi)發(fā)人員可以圍繞宿主服務(wù)構(gòu)建應(yīng)用程序,而不必關(guān)心基礎(chǔ)設(shè)施或維護(hù)。
    • Spring Cloud GCP-谷歌平臺(tái)
      • 和谷歌平臺(tái)集成,使得在 Spring 應(yīng)用程序中使用 Google Cloud Platform 變得更加容易。
    • Spring Cloud Consul-Hashicorp
      • 和Hashicorp的Consul集成。通過(guò)自動(dòng)配置和綁定到 Spring 環(huán)境和其他 Spring 編程模型習(xí)慣用法集成Consul。
    • Spring Cloud Zookeeper-Apache
      • 和Apache的Zookeeper集成。通過(guò)自動(dòng)配置和綁定到 Spring 環(huán)境和其他 Spring 編程模型習(xí)慣用法集成ZooKeeper。
    • Spring Cloud Kubernetes
      • 和Kubernetes的集成,允許在 Kubernetes 上構(gòu)建和運(yùn)行 Spring Cloud 應(yīng)用程序。
  • 制定規(guī)范,提供一致API和跨不同實(shí)現(xiàn)的抽象,對(duì)開(kāi)發(fā)人員屏蔽掉底層差異。例如:
    • Spring Cloud CricuitBreaker。定義了斷路器抽象。支持:Resilience4J 和 Spring Retry。
    • Spring Cloud Stream。定義了異步消息通信抽象。支持Redis、Rabbit、Kafka、RocketMQ等
    • Spring Cloud Commons。定義了服務(wù)注冊(cè)和發(fā)現(xiàn)抽象。支持Nacos,Zookeeper等
    • Spring Environment 定義了配置抽象。支持Nacos、Apollo、Spring Cloud Config等。

方案總覽

紅色背景:已經(jīng)被Spring Cloud移除。
黃色背景:維護(hù)模式,不再開(kāi)發(fā)
藍(lán)色背景:Spring Cloud 抽象的編程模型,提供統(tǒng)一的API,實(shí)現(xiàn)細(xì)節(jié)交由各云廠商。


方案總覽

從上面表格也可以看出,Spring Cloud Netflix下線后,最好的替代品就是Spring Cloud Alibaba了。

微服務(wù)生態(tài)全景圖

微服務(wù)生態(tài)全景圖

上圖是阿里云網(wǎng)站提供的全景圖,供參考。

下面介紹下使用Spring Cloud Alibaba 作為微服務(wù)系統(tǒng)的架構(gòu)時(shí),作為一名開(kāi)發(fā)人員需要學(xué)習(xí)和掌握的技能。

  • 分布式配置:Nacos,Apollo目前這兩種使用居多??蛇x:Spring Cloud Config。
  • 服務(wù)注冊(cè)/發(fā)現(xiàn):Nacos,Spring Cloud Zookeeper。可選:Spring Cloud Consul
  • 服務(wù)調(diào)用:OpenFeign和RestTemplate(HTTP協(xié)議)、Dubbo(TCP協(xié)議)
  • 負(fù)載均衡:Spring Cloud Loadbalancer、Dubbo
  • 服務(wù)熔斷:Spring Cloud Circuit Breaker、Sentinel。
  • 服務(wù)網(wǎng)關(guān):Higress,Apache ShenYu
  • 分布式消息:Spring Cloud Stream(提供了統(tǒng)一抽象)、RocketMQ
  • 消息總線:Spring Cloud Bus(提供了統(tǒng)一抽象)、Spring Cloud Bus RocketMQ
  • 鏈路跟蹤:Micrometer Tracing
  • 分布式事務(wù):Seata

阿里云提供了自己的應(yīng)用腳手架,方便開(kāi)發(fā)者快速創(chuàng)建應(yīng)用:https://start.aliyun.com

參考

起底Spring Boot/Cloud背后豪華的研發(fā)團(tuán)隊(duì) ——獨(dú)角獸公司Pivotal
Spring Cloud 移除了Hystrix、Zuul等Netflix組件

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容