當前位置:首頁 » 區塊鏈知識 » springcloud區塊鏈

springcloud區塊鏈

發布時間: 2022-07-15 16:23:52

① spring cloud,基於什麼實現

Spring Cloud的子項目,大致可分成兩類,一類是對現有成熟框架」Spring Boot化」的封裝和抽象,也是數量最多的項目;第二類是開發了一部分分布式系統的基礎設施的實現,如Spring Cloud Stream扮演的就是kafka, ActiveMQ這樣的角色。對於我們想快速實踐微服務的開發者來說,第一類子項目就已經足夠使用,如:
Spring Cloud Netflix
是對Netflix開發的一套分布式服務框架的封裝,包括服務的發現和注冊,負載均衡、斷路器、REST客戶端、請求路由等。
Spring Cloud Config
將配置信息中央化保存, 配置Spring Cloud Bus可以實現動態修改配置文件
Spring Cloud Bus
分布式消息隊列,是對Kafka, MQ的封裝
Spring Cloud Security
對Spring Security的封裝,並能配合Netflix使用
Spring Cloud Zookeeper
對Zookeeper的封裝,使之能配置其它Spring Cloud的子項目使用
Spring Cloud Eureka
Spring Cloud Eureka 是 Spring Cloud Netflix 微服務套件中的一部分,它基於Netflix Eureka 做了二次封裝,主要負責完成微服務架構中的服務治理功能。

② 如何學習spring cloud

Spring Cloud 學習筆記(一)——入門、特徵、配置

0 放在前面
0.1 參考文檔
http://cloud.spring.io/spring-cloud-static/Brixton.SR7/
https://springcloud.cc/
http://projects.spring.io/spring-cloud/
0.2 maven配置
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
</dependencies>

0.3 簡介
Spring Cloud為開發人員提供了快速構建分布式系統中的一些通用模式(例如配置管理,服務發現,斷路器,智能路由,微代理,控制匯流排,一次性令牌,全局鎖,領導選舉,分布式 會話,群集狀態)。 分布式系統的協調引出樣板模式(boiler plate patterns),並且使用Spring Cloud開發人員可以快速地實現這些模式來啟動服務和應用程序。 它們可以在任何分布式環境中正常工作,包括開發人員自己的筆記本電腦,裸機數據中心和受管平台,如Cloud Foundry。
Version: Brixton.SR7
1 特徵
Spring Cloud專注於為經典用例和擴展機制提供良好的開箱即用
分布式/版本配置
服務注冊與發現
路由選擇
服務調用
負載均衡
熔斷機制
全局鎖
領導人選舉和集群狀態
分布式消息
2 原生雲應用程序
原生雲是應用程序開發的一種風格,鼓勵在持續交付和價值驅動領域的最佳實踐。
Spring Cloud的很多特性是基於Spring Boot的。更多的是由兩個庫實現:Spring Cloud Context and Spring Cloud Commons。
2.1 Spring Cloud Context: 應用上下文服務
Spring Boot關於使用Spring構建應用有硬性規定:通用的配置文件在固定的位置,通用管理終端,監控任務。建立在這個基礎上,Spring Cloud增加了一些額外的特性。
2.1.1 引導應用程序上下文
Spring Cloud會創建一個「bootstrap」的上下文,這是主應用程序的父上下文。對應的配置文件擁有最高優先順序,並且,默認不能被本地配置文件覆蓋。對應的文件名bootstrap.yml或bootstrap.properties。
可通過設置spring.cloud.bootstrap.enabled=false來禁止bootstrap進程。
2.1.2 應用上下文層級結構
當用SpringApplication或SpringApplicationBuilder創建應用程序上下文時,bootstrap上下文將作為父上下文被添加進去,子上下文將繼承父上下文的屬性。
子上下文的配置信息可覆蓋父上下文的配置信息。
2.1.3 修改Bootstrap配置文件位置
spring.cloud.bootstrap.name(默認是bootstrap),或者spring.cloud.bootstrap.location(默認是空)
2.1.4 覆蓋遠程配置文件的值
spring.cloud.config.allowOverride=true
spring.cloud.config.overrideNone=true
spring.cloud.config.overrideSystemProperties=false
2.1.5 定製Bootstrap配置
在/META-INF/spring.factories的key為org.springframework.cloud.bootstrap.BootstrapConfiguration,定義了Bootstrap啟動的組件。
在主應用程序啟動之前,一開始Bootstrap上下文創建在spring.factories文件中的組件,然後是@Beans類型的bean。
2.1.6 定製Bootstrap屬性來源
關鍵點:spring.factories、PropertySourceLocator
2.1.7 環境改變
應用程序可通過EnvironmentChangedEvent監聽應用程序並做出響應。
2.1.8 Refresh Scope
Spring的bean被@RefreshScope將做特殊處理,可用於刷新bean的配置信息。
注意
需要添加依賴「org.springframework.boot.spring-boot-starter-actuator」
目前我只在@Controller測試成功
需要自己發送POST請求/refresh
修改配置文件即可
2.1.9 加密和解密
Spring Cloud可對配置文件的值進行加密。
如果有"Illegal key size"異常,那麼需要安裝JCE。
2.1.10 服務點
除了Spring Boot提供的服務點,Spring Cloud也提供了一些服務點用於管理,注意都是POST請求
/env:更新Environment、重新綁定@ConfigurationProperties跟日誌級別
/refresh重新載入配置文件,刷新標記@RefreshScope的bean
/restart重啟應用,默認不可用
生命周期方法:/pause、/resume
2.2 Spring Cloud Commons:通用抽象
服務發現、負載均衡、熔斷機制這種模式為Spring Cloud客戶端提供了一個通用的抽象層。
2.2.1 RestTemplate作為負載均衡客戶端
通過@Bean跟@LoadBalanced指定RestTemplate。注意URI需要使用虛擬域名(如服務名,不能用域名)。
如下:
@Configuration
public class MyConfiguration {

@LoadBalanced
@Bean
RestTemplate restTemplate() {
return new RestTemplate();
}
}

public class MyClass {
@Autowired
private RestTemplate restTemplate;

public String doOtherStuff() {
String results = restTemplate.getForObject("http://stores/stores", String.class);
return results;
}
}

2.2.2 多個RestTemplate對象
注意@Primary註解的使用。
@Configuration
public class MyConfiguration {

@LoadBalanced
@Bean
RestTemplate loadBalanced() {
return new RestTemplate();
}

@Primary
@Bean
RestTemplate restTemplate() {
return new RestTemplate();
}
}

public class MyClass {
@Autowired
private RestTemplate restTemplate;

@Autowired
@LoadBalanced
private RestTemplate loadBalanced;

public String doOtherStuff() {
return loadBalanced.getForObject("http://stores/stores", String.class);
}

public String doStuff() {
return restTemplate.getForObject("http://example.com", String.class);
}
}

2.2.3 忽略網路介面
忽略確定名字的服務發現注冊,支持正則表達式配置。
3 Spring Cloud Config
Spring Cloud Config提供服務端和客戶端在分布式系統中擴展配置。支持不同環境的配置(開發、測試、生產)。使用Git做默認配置後端,可支持配置環境打版本標簽。
3.1 快速開始
可通過IDE運行或maven運行。
默認載入property資源的策略是克隆一個git倉庫(at spring.cloud.config.server.git.uri')。
HTTP服務資源的構成:
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties

application是SpringApplication的spring.config.name,(一般來說'application'是一個常規的Spring Boot應用),profile是一個active的profile(或者逗號分隔的屬性列表),label是一個可選的git標簽(默認為"master")。
3.1.1 客戶端示例
創建以Spring Boot應用即可,添加依賴「org.springframework.cloud:spring-cloud-starter-config」。
配置application.properties,注意URL為配置服務端的地址
spring.cloud.config.uri: http://myconfigserver.com

3.2 Spring Cloud Config 服務端
針對系統外的配置項(如name-value對或相同功能的YAML內容),該伺服器提供了基於資源的HTTP介面。使用@EnableConfigServer註解,該伺服器可以很容易的被嵌入到Spring Boot 系統中。使用該註解之後該應用系統就是一個配置伺服器。
@SpringBootApplication
@EnableConfigServer
public class ConfigApplicion {
public static void main(String[] args) throws Exception {
SpringApplication.run(ConfigApplicion.class, args);
}
}

3.2.1 資源庫環境
{application} 對應客戶端的"spring.application.name"屬性
{profile} 對應客戶端的 "spring.profiles.active"屬性(逗號分隔的列表)
{label} 對應服務端屬性,這個屬性能標示一組配置文件的版本
如果配置庫是基於文件的,伺服器將從application.yml和foo.yml中創建一個Environment對象。高優先順序的配置優先轉成Environment對象中的PropertySource。
3.2.1.1 Git後端
默認的EnvironmentRepository是用Git後端進行實現的,Git後端對於管理升級和物理環境是很方便的,對審計配置變更也很方便。也可以file:前綴從本地配置庫中讀取數據。
這個配置庫的實現通過映射HTTP資源的{label}參數作為git label(提交id,分支名稱或tag)。如果git分支或tag的名稱包含一個斜杠 ("/"),此時HTTP URL中的label需要使用特殊字元串"(_)"來替代(為了避免與其他URL路徑相互混淆)。如果使用了命令行客戶端如 curl,請謹慎處理URL中的括弧(例如:在shell下請使用引號''來轉義它們)。
Git URI佔位符
Spring Cloud Config Server支持git庫URL中包含針對{application}和 {profile}的佔位符(如果你需要,{label}也可包含佔位符, 不過要牢記的是任何情況下label只指git的label)。所以,你可以很容易的支持「一個應用系統一個配置庫」策略或「一個profile一個配置庫」策略。
模式匹配和多資源庫
spring:
cloud:
config:
server:
git:
uri: https://github.com/spring-cloud-samples/config-repo
repos:
simple: https://github.com/simple/config-repo
special:
pattern: special*/dev*,*special*/dev*
uri: https://github.com/special/config-repo
local:
pattern: local*
uri: file:/home/configsvc/config-repo

如果 {application}/{profile}不能匹配任何錶達式,那麼將使用「spring.cloud.config.server.git.uri」對應的值。在上例子中,對於 "simple" 配置庫, 匹配模式是simple/* (也就說,無論profile是什麼,它只匹配application名稱為「simple」的應用系統)。「local」庫匹配所有application名稱以「local」開頭任何應用系統,不管profiles是什麼(來實現覆蓋因沒有配置對profile的匹配規則,「/*」後綴會被自動的增加到任何的匹配表達式中)。
Git搜索路徑中的佔位符
spring.cloud.config.server.git.searchPaths
3.2.1.2 版本控制後端文件系統使用
伴隨著版本控制系統作為後端(git、svn),文件都會被check out或clone 到本地文件系統中。默認這些文件會被放置到以config-repo-為前綴的系統臨時目錄中。在Linux上,譬如應該是/tmp/config-repo-<randomid>目錄。有些操作系統routinely clean out放到臨時目錄中,這會導致不可預知的問題出現。為了避免這個問題,通過設置spring.cloud.config.server.git.basedir或spring.cloud.config.server.svn.basedir參數值為非系統臨時目錄。
3.2.1.3 文件系統後端
使用本地載入配置文件。
需要配置:spring.cloud.config.server.native.searchLocations跟spring.profiles.active=native。
路徑配置格式:classpath:/, classpath:/config,file:./, file:./config。
3.2.1.4 共享配置給所有應用
基於文件的資源庫
在基於文件的資源庫中(i.e. git, svn and native),這樣的文件名application*命名的資源在所有的客戶端都是共享的(如 application.properties, application.yml, application-*.properties,etc.)。
屬性覆蓋
「spring.cloud.config.server.overrides」添加一個Map類型的name-value對來實現覆蓋。
例如
spring:
cloud:
config:
server:
overrides:
foo: bar

會使所有的配置客戶端應用程序讀取foo=bar到他們自己配置參數中。
3.2.2 健康指示器
通過這個指示器能夠檢查已經配置的EnvironmentRepository是否正常運行。
通過設置spring.cloud.config.server.health.enabled=false參數來禁用健康指示器。
3.2.3 安全
你可以自由選擇任何你覺得合理的方式來保護你的Config Server(從物理網路安全到OAuth2 令牌),同時使用Spring Security和Spring Boot 能使你做更多其他有用的事情。
為了使用默認的Spring Boot HTTP Basic 安全,只需要把Spring Security 增加到classpath中(如org.springframework.boot.spring-boot-starter-security)。默認的用戶名是「user」,對應的會生成一個隨機密碼,這種情況在實際使用中並沒有意義,一般建議配置一個密碼(通過 security.user.password屬性進行配置)並對這個密碼進行加密。
3.2.4 加密與解密
如果遠程屬性包含加密內容(以{cipher}開頭),這些值將在通過HTTP傳遞到客戶端之前被解密。
使用略
3.2.5 密鑰管理
配置服務可以使用對稱(共享)密鑰或者非對稱密鑰(RSA密鑰對)。
使用略
3.2.6 創建一個測試密鑰庫
3.2.7 使用多密鑰和循環密鑰
3.2.8 加密屬性服務
3.3 可替換格式服務
配置文件可加後綴".yml"、".yaml"、".properties"
3.4 文本解釋服務
/{name}/{profile}/{label}/{path}
3.5 嵌入配置伺服器
一般配置服務運行在單獨的應用裡面,只要使用註解@EnableConfigServer即可嵌入到其他應用。
3.6 推送通知和匯流排
添加依賴spring-cloud-config-monitor,激活Spring Cloud 匯流排,/monitor端點即可用。
當webhook激活,針對應用程序可能已經變化了的,配置服務端將發送一個RefreshRemoteApplicationEvent。
3.7 客戶端配置
3.7.1 配置第一次引導
通過spring.cloud.config.uri屬性配置Config Server地址
3.7.2 發現第一次引導
如果用的是Netflix,則用eureka.client.serviceUrl.defaultZone進行配置。
3.7.3 配置客戶端快速失敗
在一些例子裡面,可能希望在沒有連接配置服務端時直接啟動失敗。可通過spring.cloud.config.failFast=true進行配置。
3.7.4 配置客戶端重試
添加依賴spring-retry、spring-boot-starter-aop,設置spring.cloud.config.failFast=true。默認的是6次重試,初始補償間隔是1000ms,後續補償為1.1指數乘數,可通過spring.cloud.config.retry.*配置進行修改。
3.7.5 定位遠程配置資源
路徑:/{name}/{profile}/{label}
"name" = ${spring.application.name}
"profile" = ${spring.profiles.active} (actually Environment.getActiveProfiles())
"label" = "master"
label對於回滾到之前的版本很有用。
3.7.6 安全
通過spring.cloud.config.password、spring.cloud.config.username進行配置。

③ 大數據前景怎麼樣

隨著互聯網時代的到來,人們愈發認識到現代科技與計算機技術的重要性,無論是互聯網頭部企業對IT技術的研發應用還是普通企業的發展需要都可以看出IT行業正處於如日中天的發展態勢下,行業競爭同樣十分激烈隨著人工智慧、物聯網的發展、大數據人才急劇增加,所以大數據行業的就業前景一片光明。

這里介紹一下大數據要學習和掌握的知識與技能:

①java:一門面向對象的計算機編程語言,具有功能強大和簡單易用兩個特徵。

②spark:專為大規模數據處理而設計的快速通用的計算引擎。

③SSM:常作為數據源較簡單的web項目的框架。

④Hadoop:分布式計算和存儲的框架,需要有java語言基礎。

⑤spring cloud:一系列框架的有序集合,他巧妙地簡化了分布式系統基礎設施的開發。

⑤python:一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。

互聯網行業目前還是最熱門的行業之一,學習IT技能之後足夠優秀是有機會進入騰訊、阿里、網易等互聯網大廠高薪就業的,發展前景非常好,普通人也可以學習。

想要系統學習,你可以考察對比一下開設有相關專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能力,建議實地考察對比一下。

祝你學有所成,望採納。

南京北大青鳥學生課堂實錄




④ 哪位大神比較過spring cloud和bbo,各自的優缺點是什麼

Dubbo 很久沒有更新了.
springCloud最新的2017年也有發布版本.一直更新,而且springcloud,的子項目非常多.
包括了aws和匯流排服務,比Dubbo強很多.
spring-cloud-aws

spring-cloud-bus

spring-cloud-cli

spring-cloud-commons

spring-cloud-contract

spring-cloud-config

spring-cloud-netflix

spring-cloud-security

spring-cloud-starters

spring-cloud-cloudfoundry

spring-cloud-cluster

spring-cloud-consul

spring-cloud-sleuth

spring-cloud-stream

spring-cloud-zookeeper

spring-boot

spring-cloud-task

⑤ SpringCloud的核心能力有哪些

SpringCloud核心能力如下:

- 服務注冊與服務發現
- 服務路由
- 端到端的服務調用
- 負載均衡
- 熔斷器
- 分布式事務
- 分布式消息
- 分布式配置中心
- 鏈路追蹤

SpringCloud已經奠定了自己在微服務領域的領導地位,其中涵蓋了我們所需要的幾乎全部組件;

如果你想掌握時下熱門微服務技術棧,跟上時代技術步伐,就去黑馬程序員官網視頻庫看免費視頻。

⑥ springcloud執行流程

1.Servlet

zuul.servletPath默認配置為/zuul,故請求為/zuul開頭的會跳過dispatcherServlet直接進入ZuulServlet,該配置可以自定義配置,例如用於大文件上傳

2.ZuulServlet中service方法

public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
try {
this.init((HttpServletRequest)servletRequest, (HttpServletResponse)servletResponse);
RequestContext context = RequestContext.getCurrentContext();
context.setZuulEngineRan();

try {
//運行pre過濾器
this.preRoute();
} catch (ZuulException var12) {
//有異常,執行errorFilter
this.error(var12);
//再執行postFilter
this.postRoute();
return;
}

try {
//運行rote過濾器
this.route();
} catch (ZuulException var13) {
//有異常,執行errorFilter
this.error(var13);
//再執行postFilter
this.postRoute();
return;
}

try {
//運行post過濾器
this.postRoute();
} catch (ZuulException var11) {
//有異常,執行errorFilter
this.error(var11);
}
} catch (Throwable var14) {
this.error(new ZuulException(var14, 500, "UNHANDLED_EXCEPTION_" + var14.getClass().getName()));
} finally {
RequestContext.getCurrentContext().unset();
}
}

3.FilterProcessor

其運行交由FilterProcessor中的方法runFilters,根據service中的順序,取不同的filter類型,執行其中的run方法

public Object runFilters(String sType) throws Throwable {
if (RequestContext.getCurrentContext().debugRouting()) {
Debug.addRoutingDebug("Invoking {" + sType + "} type filters");
}

boolean bResult = false;
List<ZuulFilter> list = FilterLoader.getInstance().getFiltersByType(sType);
if (list != null) {
for(int i = 0; i < list.size(); ++i) {
ZuulFilter zuulFilter = (ZuulFilter)list.get(i);
Object result = this.processZuulFilter(zuulFilter);//見下面zuulFilter的runFilter()
if (result != null && result instanceof Boolean) {
bResult |= ((Boolean)result).booleanValue();
}
}
}

return bResult;
}

zuulFilter的runFilter方法,當filter的shouldFilter()返回true時才執行run()方法

public ZuulFilterResult runFilter() {
ZuulFilterResult zr = new ZuulFilterResult();
if (!this.isFilterDisabled()) {
if (this.shouldFilter()) {
Tracer t = TracerFactory.instance().startMicroTracer("ZUUL::" + this.getClass().getSimpleName());

try {
Object res = this.run();
zr = new ZuulFilterResult(res, ExecutionStatus.SUCCESS);
} catch (Throwable var7) {
t.setName("ZUUL::" + this.getClass().getSimpleName() + " failed");
zr = new ZuulFilterResult(ExecutionStatus.FAILED);
zr.setException(var7);
} finally {
t.stopAndLog();
}
} else {
zr = new ZuulFilterResult(ExecutionStatus.SKIPPED);
}
}

return zr;
}

4.獲取過濾器FilterRegistry

其中的屬性private final ConcurrentHashMap<String, ZuulFilter> filters = new ConcurrentHashMap();
保存所有的過濾器
例子中有12個(其中有兩個為自定義的):

[org.springframework.cloud.netflix.zuul.filters.route.SimpleHostRoutingFilter@3dc68586,
org.springframework.cloud.netflix.zuul.filters.pre.Servlet30WrapperFilter@4001d8c1,
org.springframework.cl

⑦ 如何使用Spring Cloud

使用Spring Cloud構建實際的微服務架構。
基本概念:
使用Docker進行集成測試
混合持久化
微服務架構
服務發現
API網關
Docker
使用Docker對每一個服務進行構建和部署。使用Docker Compose在一個開發機上進行端到端的集成測試。
混合持久化
混合持久化其實就是說使用多種資料庫來存儲。不同的微服務實例都會使用它們自己的資料庫,並通過REST服務或者消息匯流排來通信,舉個例子,你可以使用基於以下資料庫來構建微服務:
Neo4j(圖形化)
MongoDB(文檔化)
MySQL(關聯)
微服務架構
這個例子演示了如何使用微服務創建一個新的應用。由於在項目中的每一個微服務只有一個單一的父項目。開發者為此得到的收益是可以在本機上運行和開發每一個微服務。添加一個新的微服務非常簡單,當發現微服務時將會自動發現運行時的集群環境上。

⑧ SpringCloud主要的應用領域是哪些主要做什麼的

是pri NG cloud主要的應用領域,應該是有很多地方的

⑨ 你所理解的SpringCloud是什麼

Spring Cloud是一系列微服務框架的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了分布式系統基礎設施的開發

⑩ springcloud原理是什麼

springcloud原理如下和組成部分:

Eureka:各個服務啟動時,Eureka Client都會將服務注冊到Eureka Server,並且Eureka Client還可以反過來從Eureka Server拉取注冊表,從而知道其他服務在哪裡

Ribbon:服務間發起請求的時候,基於Ribbon做負載均衡,從一個服務的多台機器中選擇一台

Feign:基於Feign的動態代理機制,根據註解和選擇的機器,拼接請求URL地址,發起請求

Hystrix:發起請求是通過Hystrix的線程池來走的,不同的服務走不同的線程池,實現了不同服務調用的隔離,避免了服務雪崩的問題

Zuul:如果前端、移動端要調用後端系統,統一從Zuul網關進入,由Zuul網關轉發請求給對應的服務

Spring Cloud是一系列微軟服務框架的有序集合。





注意:

集合與集合的元素是兩個不同的概念,教科書中是通過描述給出的,這與平面幾何中的點與直線的概念類似。

集合中的元素具有確定性、互異性和無序性({a,b}與{b,a}表示同一個集合)。集合具有兩方面的意義,即:凡是符合條件的對象都是它的元素;只要是它的元素就必須符號條件。

熱點內容
元宇宙會成功嗎 發布:2025-06-22 14:50:20 瀏覽:193
f2pool怎麼挖ltc 發布:2025-06-22 14:09:14 瀏覽:767
比特幣挖礦產量和什麼有關 發布:2025-06-22 14:08:36 瀏覽:885
幣圈熊市該怎樣做 發布:2025-06-22 13:17:30 瀏覽:470
老人玩幣圈 發布:2025-06-22 13:14:48 瀏覽:297
哪些公司有用區塊鏈 發布:2025-06-22 13:06:30 瀏覽:552
區塊鏈技術相關法規 發布:2025-06-22 12:50:03 瀏覽:360
區塊鏈活躍的排名 發布:2025-06-22 12:48:28 瀏覽:100
trx4可以調軸距嗎 發布:2025-06-22 12:13:21 瀏覽:700
你對比特幣是怎麼認識和理解的 發布:2025-06-22 12:12:37 瀏覽:353