五月婷婷丁香性爱|j久久一级免费片|久久美女福利视频|中文观看在线观看|加勒比四区三区二|亚洲裸女视频网站|超碰97AV在线69网站免费观看|有码在线免费视频|久久青青日本视频|亚洲国产AAAA

Java Chassis應用如何接入ServiceComb引擎

微服務引擎

微服務引擎(Cloud Service Engine,CSE),是用于微服務應用的云中間件,支持華為云自研的注冊配置中心Servicecomb引擎和開源增強的注冊配置中心Nacos引擎。用戶可結合其他云服務,快速構建云原生微服務體系,實現(xiàn)微服務應用的快速開發(fā)和高可用運維。

前提條件

  • 已創(chuàng)建ServiceComb引擎。
  • 已創(chuàng)建CCE集群。
  • 已在ServiceStage創(chuàng)建環(huán)境,并對ServiceComb引擎和CCE資源進行了納管。
  • 本地編譯構建打包機器環(huán)境已安裝了Java JDK、Maven,并且能夠訪問Maven中央庫。
  • 已基于Java Chassis開發(fā)好了微服務應用。
  • Java Chassis支持和不同的技術進行組合使用,配置文件的名稱和實際使用的技術有關。如果您采用Spring方式使用Java Chassis,配置文件的名稱一般為“microservice.yaml”,如果您采用Spring Boot方式使用Java Chassis, 配置文件名稱一般為“application.yaml”。本文統(tǒng)一使用“microservice.yaml”表示配置文件,請結合實際項目進行區(qū)分

操作步驟

步驟1:在項目的“pom.xml”文件中引入依賴。

<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>solution-basic</artifactId>
</dependency>
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>servicestage-environment</artifactId>
</dependency>

說明:上述模塊solution-basic包含常用的Java Chassis功能,例如配置中心模塊和服務治理模塊,方便一鍵式啟用Java Chassis常見功能。

<!-- 配置中心模塊 -->
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>config-cc</artifactId>
</dependency>
<!-- 服務治理模塊 -->
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>handler-governance</artifactId>
</dependency>

上述模塊servicestage-environment包含以下依賴模塊:

<!-- 注冊發(fā)現(xiàn)模塊 -->
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>registry-service-center</artifactId>
</dependency>

推薦使用Maven Dependency Management管理項目依賴的三方軟件,在項目的“pom.xml”文件中引入:

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>java-chassis-dependencies</artifactId>
<version>${java-chassis.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

如果您的項目中,已經(jīng)包含了上述依賴,則不需要做任何處理。

其中servicestage-environment軟件包是可選的。這個軟件包提供了環(huán)境變量映射的功能,依賴這個軟件包以后,當您采用ServiceStage部署應用,不用手工修改注冊中心地址、配置中心地址、項目名稱等信息,會通過環(huán)境變量覆蓋“microservice.yaml”中的默認配置,它包含“mapping.yaml”文件,在您自己的項目中增加“mapping.yaml”文件能夠起到同樣的效果。

說明:“mapping.yaml”在后續(xù)新版本可能會發(fā)生變化,以適配CSE最新的功能要求。如果期望后續(xù)升級新版本保持穩(wěn)定而不是跟隨CSE演進,您可以選擇不依賴servicestage-environment,而是在您自己的項目中增加“mapping.yaml”。

“microservice.yaml”和“mapping.yaml”文件,一般都存放于您當前項目根目錄下的“/src/main/resources/”路徑下。

PAAS_CSE_ENDPOINT:
- servicecomb.service.registry.address
- servicecomb.config.client.serverUri
PAAS_CSE_SC_ENDPOINT:
- servicecomb.service.registry.address
PAAS_CSE_CC_ENDPOINT:
- servicecomb.config.client.serverUri
PAAS_PROJECT_NAME:
- servicecomb.credentials.project

# CAS_APPLICATION_NAME:
# - servicecomb.service.application
# CAS_COMPONENT_NAME:
# - servicecomb.service.name
# CAS_INSTANCE_VERSION:
# - servicecomb.service.version

solution-basic里面引入了常用的軟件包,并且提供了默認的“microservice.yaml”文件。這個配置文件配置了常用的Handler和參數(shù)。其內(nèi)容如下:

# order of this configure file
servicecomb-config-order: -100

servicecomb:

# handlers
handler:
chain:
Provider:
default: qps-flowcontrol-provider
Consumer:
default: qps-flowcontrol-consumer,loadbalance,fault-injection-consumer

# loadbalance strategies
references:
version-rule: 0+
loadbalance:
retryEnabled: true
retryOnNext: 1
retryOnSame: 0

# metrics and access log
accesslog:
enabled: true
metrics:
window_time: 60000
invocation:
latencyDistribution: 0,1,10,100,1000
Consumer.invocation.slow:
enabled: true
msTime: 1000
Provider.invocation.slow:
enabled: true
msTime: 1000
publisher.defaultLog:
enabled: true
endpoints.client.detail.enabled: true


“microservice.yaml”配置文件設置了servicecomb-config-order: -100 , 表示配置文件的優(yōu)先級很低(order越大,優(yōu)先級越高,缺省為0),如果業(yè)務服務增加了同樣的配置項,會覆蓋這里的配置。

說明:“microservice.yaml”文件在后續(xù)新版本可能會發(fā)生變化,以適配CSE的ServiceComb引擎最新的功能要求。如果期望后續(xù)升級新版本保持穩(wěn)定而不是跟隨CSE的ServiceComb引擎演進,您可以考慮將配置項寫到您自己的“microservice.yaml”文件中。

步驟2:(可選)配置安全認證參數(shù)。

使用微服務引擎專享版,并且啟用了安全認證,需要配置,其他場景可以跳過這個步驟。

微服務引擎開啟了安全認證之后,所有調(diào)用的API都需要先獲取token,才能調(diào)用。

使用安全認證首先需要從ServiceComb引擎獲取用戶名和密碼,然后在配置文件中增加如下配置:

servicecomb:
credentials:
rbac.enabled: true
account:
name: your account name # 從ServiceComb引擎獲取的用戶名
password: your password # 從ServiceComb引擎獲取的密碼
cipher: default #接口org.apache.servicecomb.foundation.auth.Cipher的實現(xiàn)類里面的name()方法返回的名稱

其中“cipher”指定了對“password”進行加密的算法名稱,默認提供明文存儲。通過自定義實現(xiàn)加密,如下所示:

自定義實現(xiàn),首先實現(xiàn)接口“org.apache.servicecomb.foundation.auth.Cipher”,里面的兩個方法:

String name():這個是servicecomb.credentials.cipher的名稱定義,需要配置在配置文件中。

char[] decode(char[] encrypted):解密接口,對secretKey進行解密后使用。

實現(xiàn)類需要聲明為SPI,比如:package com.example
public class MyCipher implements Cipher

創(chuàng)建SPI配置文件,文件名稱和路徑為META-INF/service/org.apache.servicecomb.foundation.auth.Cipher, 文件內(nèi)容為:

com.example.MyCipher

然后在“microservice.yaml”文件中增加配置。

servicecomb:
credentials:
rbac.enabled: true
account:
name: your account name
password: your password # 加密后的密碼
cipher: youciphername #實現(xiàn)類里面的name()方法返回的名稱

說明:明文存儲無法保證安全, 建議您對密碼進行加密存儲。

CSE使用過程中常見問題

常見問題