本章节介绍Java Chassis如何接入CSE,使得Java Chassis能够对接CSE,并且方便的使用CSE提供的最常用的功能。在使用微服务引擎功能章节,会给出具体的开发指导。
本章节介绍的开发方法,可以在Apache ServiceComb Samples项目中找到对应的代码,供您在开发过程中参考。
<dependency> <groupId>org.apache.servicecomb</groupId> <artifactId>solution-basic</artifactId> </dependency> <dependency> <groupId>org.apache.servicecomb</groupId> <artifactId>servicestage-environment</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>
如果您的项目中,已经包含了上述依赖,则不需要做任何处理。
其中servicestage-environment软件包是可选的。这个软件包提供了环境变量映射的功能,依赖这个软件包以后,当您采用ServiceStage部署应用,不用手工修改注册中心地址、配置中心地址、项目名称等信息,会通过环境变量覆盖“microservice.yaml”中的默认配置,它包含“mapping.yaml”文件,在您自己的项目中增加“mapping.yaml”文件能够起到同样的效果。
“mapping.yaml”在后续新版本可能会发生变化,以适配CSE最新的功能要求。如果期望后续升级新版本保持稳定而不是跟随CSE演进,您可以选择不依赖servicestage-environment,而是在您自己的项目中增加“mapping.yaml”。
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和参数。其内容如下:
# 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 , 表示配置文件的优先级很低(order越大,优先级越高,缺省为0),如果业务服务增加了同样的配置项,会覆盖这里的配置。
“microservice.yaml”文件在后续新版本可能会发生变化,以适配CSE最新的功能要求。如果期望后续升级新版本保持稳定而不是跟随CSE演进,您可以考虑将配置项写到您自己的“microservice.yaml”文件中。
如果使用微服务引擎专业版,需要配置AK/SK;如果使用微服务引擎专享版,不需要配置AK/SK,可以跳过这个步骤。
AK/SK在“microservice.yaml”中配置,ServiceComb默认提供明文配置,支持用户自定义加密存储方案。
servicecomb: credentials: accessKey: AK secretKey: SK project: 项目名称 akskCustomCipher: default
这个是servicecomb.credentials.akskCustomCipher的名称定义,需要配置在配置文件中。
实现类需要声明为Bean,比如:
@Component public class MyCipher implements Cipher
然后在“microservice.yaml”文件中增加配置。
servicecomb: credentials: accessKey: AK secretKey: SK #对应的加密后的SK project: 项目名称 akskCustomCipher: youciphername #实现类里面的name()方法返回的名称
如果不想将AK/SK写入配置文件,也可以使用如下两种方法,具体操作请参考Java Chassis。
使用微服务引擎专享版,并且启用了RBAC,需要配置,其他场景可以跳过这个步骤。
微服务引擎开启了RBAC认证之后,所有调用的API都需要先获取token,才能调用,认证流程请参考服务中心RBAC说明。
使用RBAC首先需要从微服务引擎获取用户名和密码,然后在配置文件中增加如下配置:
servicecomb: credentials: rbac.enabled: true account: name: your account name # 从微服务引擎获取的用户名 password: your password # 从微服务引擎获取的密码 cipher: default #接口org.apache.servicecomb.foundation.auth.Cipher的实现类里面的name()方法返回的名称
其中“cipher”指定了对“password”进行加密的算法名称,默认提供明文存储。
和AK/SK认证的加密方案类似,通过实现接口“org.apache.servicecomb.foundation.auth.Cipher”可以对密码进行加密存储。
servicecomb: service: application: porter-application name: user-service version: 0.0.1 registry: address: http://localhost:30100 instance: watch: false config: client: serverUri: http://localhost:30113 refreshMode: 1
现在许多IDC运营商对机房的带宽资源质量和带宽价格之间无所定位,那么.如何寻找...
本文转载自微信公众号「Java后端技术全栈」,作者田维常。转载本文请联系Java后...
闯快潮只要上传照片,就可体验八个不同主题的漫画故事,以特区建设者的身份参与...
分布式事务以及分布式锁是分布式中难点,分布式事务一篇文章可能写不完,我的习惯...
用户可以通过两种方式把自己的程序部署到 BatchCompute 的环境里。 制作自定义镜...
全域数据中台解决方案基于阿里云的云资源基础设施 在智能数据构建及管理Dataphin...
安全性测试是用来识别某个信息系统中未经批准的用户,确保数据安全的。一个认真...
客户简介 中国民生银行是中国大陆第一家由民间资本设立的全国性商业银行, 是国...
服务器租用 的时候,不少朋友都会碰到一些常见的问题,如独立IP 服务器租用 ,共...
阿里云CLI是基于阿里云OpenAPI建立的管理工具,您可以通过阿里云CLI调用OpenAPI...