开发流程概述
开发应用和使用微服务引擎,需要经过如图1-1所示的几个阶段。
开发指南 1 概述
图1-1 开发流程
开发流程说明
1. 开发微服务应用
如果您已经完成了微服务应用的开发,可以跳过本流程,进入准备环境。
进行微服务应用开发,首先需要进行技术选型。技术选型是一个复杂的问题,技 术决策者需要考虑使用的技术是否容易被团队成员掌握,技术能否满足项目对于 功能、性能、可靠性方面的要求,还需要考虑商业服务等多方面的因素。本文档 不探讨技术选型,假设技术团队已经选择了适合自己的开发框架。大部分技术团 队都会选择开源框架来构建业务。
开发微服务应用的具体内容,请参考开发微服务应用。
– 使用Java Chassis,通常会使用下面的技术进行本地微服务开发:
开发指南 1 概述
– 使用Dubbo,通常会使用下面的技术进行本地微服务开发:
– 使用Spring Cloud,通常会使用下面的技术进行本地微服务开发:
2. 准备环境
创建云上环境,以支持微服务引擎接入调试、云上应用部署和使用微服务引擎功 能。一般情况下,会创建一个测试环境和一个生产环境。通过ServiceStage,能够 非常方便的管理云上环境,详细内容请参考准备环境。
3. 对接微服务应用
用于微服务应用对接微服务引擎,涉及到对已经开发好的应用的配置文件、构建 脚本的修改。修改完成后,需要对应用重新编译、打包,通过ServiceStage将应用 包部署到微服务引擎,详细内容请参考对接微服务应用。
4. 部署微服务应用
开发完成的微服务应用,通过ServiceStage部署到微服务引擎,详细内容请参考部 署微服务应用。
5. 使用微服务引擎功能
对于持续发展的应用系统,都会持续完善和迭代,每个迭代可能需要对微服务应 用进行更新升级,需要使用更多的微服务引擎功能。持续迭代的功能演进,会重 复上面的应用开发、编译、打包和部署环节。详细内容请参考使用微服务引擎功 能。
开发指南 1 概述
2 开发微服务应用
如您已经完成了微服务应用的开发,请跳过本章节。
开源社区提供了丰富的开发资料和帮助渠道帮助您使用微服务开发框架。如您需深入 了解具体微服务框架下的微服务应用开发,请参考本章节给出的参考资料链接。
体验微服务引擎最快捷的方式是使用“微服务引擎推荐示例”里面的例子。下载示 例,修改配置文件中的微服务引擎地址,在本地运行例子,这些例子可以注册到微服 务引擎。
● Java Chassis
源码仓库:https://github.com/apache/servicecomb-java-chassis 问题咨询:https://github.com/apache/servicecomb-java-chassis/issues 开发指南:https://servicecomb.apache.org/references/java-chassis/zh_CN/
微服务引擎推荐示例:https://github.com/apache/servicecomb-samples/
tree/master/basic
● Go Chassis
源码仓库:https://github.com/go-chassis/go-chassis 问题咨询:https://github.com/go-chassis/go-chassis/issues 开发指南:https://go-chassis.readthedocs.io/en/latest/
微服务引擎推荐示例:https://github.com/go-chassis/go-chassis/tree/
master/examples/discovery
● Spring Cloud
源码仓库:https://github.com/spring-cloud 问题咨询:参考源码仓库的各个代码仓库下的issues 开发指南:https://spring.io/projects/spring-cloud
Spring Cloud Huawei项目:https://github.com/huaweicloud/spring-cloud-huawei
微服务引擎推荐示例:https://github.com/huaweicloud/spring-cloud-huawei-samples/tree/master/basic
● Dubbo
源码仓库:https://github.com/apache/dubbo
问题咨询:https://github.com/apache/dubbo/issues 开发指南:https://dubbo.apache.org/zh/
开发指南 2 开发微服务应用
Dubbo ServiceComb项目:https://github.com/huaweicloud/dubbo-servicecomb
微服务引擎推荐示例:https://github.com/huaweicse/dubbo-servicecomb-samples/tree/master/basic
开发指南 2 开发微服务应用
3 准备环境
环境准备包括本地开发调试环境和云上环境准备。
准备本地开发调试环境
本地开发调试环境用于搭建一个简易的测试环境,可以有以下两种选择:
● 下载本地轻量化微服务引擎。
● 使用微服务引擎专享版,并开放公网访问的IP,保证本地环境能够访问。
准备云上环境
微服务应用部署到云上,需要先准备云上环境。准备环境一般包含如下任务:
● 创建微服务引擎,请参考创建微服务引擎专享版。
● 创建环境,请参考创建环境。创建的环境,需包含CCE集群、ELB及微服务引擎等 资源。
● 创建应用,请参考创建应用。
常用环境变量说明
通过ServiceStage管理环境和部署应用,能够简化用户的配置。ServiceStage会设置一 些环境变量,供应用使用,常用的环境变量包括下表所示内容:
表3-1 常用环境变量
环境变量名称 含义
PAAS_CSE_ENDP
OINT CSE注册中心、配置中心等服务的地址信息。这个环境变量在 微服务引擎专业版通过APIG访问的时候使用,上述服务的外部 访问地址是统一的域名。
说明
不建议使用这个环境变量,而是使用具体服务的环境变量,避免在微服 务引擎专享版的场景下存在歧义,需要修改应用程序。
PAAS_CSE_SC_EN
DPOINT CSE注册中心地址信息。
开发指南 3 准备环境
环境变量名称 含义 PAAS_CSE_CC_EN
DPOINT CSE配置中心地址信息。
PAAS_PROJECT_N
AME 项目名称。
CAS_APPLICATIO
N_NAME ServiceStage的应用名称。
CAS_COMPONEN
T_NAME ServiceStage的组件名称。
CAS_INSTANCE_V
ERSION ServiceStage的部署版本号。
您可以结合不同微服务开发框架的机制,比如Spring Cloud提供的Place Holder机制、
Java Chassis提供的“mapping.yaml”机制等来合理使用这些变量,减少部署需要手 工输入的内容。
ServiceStage创建应用过程中,可以绑定中间件(如DCS、RDS)。应用绑定的中间件 配置信息可以通过以下环境变量获取。
● 分布式会话
基于DCS实现的稳定可靠的会话存储,支持主流Web容器的自动注入,如tomcat context,node.js express-session,php的session handler等。
分布式会话相关环境变量说明如下表所示。
表3-2 DCS 分布式会话相关环境变量
环境变量 说明
DISTRIBUTED_SESSION_CLUSTER 实例是否是集群模式,取值true/false DISTRIBUTED_SESSION_TYPE 分布式会话实例的存储类型,当前只
支持Redis
DISTRIBUTED_SESSION_VERSION 分布式会话实例的版本号 DISTRIBUTED_SESSION_NAME 分布式会话实例的名称 DISTRIBUTED_SESSION_HOST 分布式会话实例的连接IP地址 DISTRIBUTED_SESSION_PORT 分布式会话实例的连接IP端口 DISTRIBUTED_SESSION_PASSWORD 分布式会话实例的连接密码
● 分布式缓存
分布式缓存服务(Distributed Cache Service,简称DCS)是华为云提供的一款内 存数据库服务,兼容了Redis和Memcached两种内存数据库引擎,为您提供即开 即用、安全可靠、弹性扩容、便捷管理的在线分布式缓存能力,满足用户高并发 及数据快速访问的业务诉求。
开发指南 3 准备环境
分布式缓存相关环境变量如下表所示。
表3-3 DCS 分布式缓存相关环境变量
环境变量 说明
DISTRIBUTED_CACHE_CLUSTER 实例是否是集群模式,取值true/false DISTRIBUTED_CACHE_TYPE 分布式缓存实例的存储类型,当前只
支持Redis
DISTRIBUTED_CACHE_VERSION 分布式缓存实例的版本号 DISTRIBUTED_CACHE_NAME 分布式缓存实例的名称 DISTRIBUTED_CACHE_HOST 分布式缓存实例的连接IP地址 DISTRIBUTED_CACHE_PORT 分布式缓存实例的连接IP端口 DISTRIBUTED_CACHE_PASSWORD 分布式缓存实例的连接密码
● 关系型数据库
华为云关系型数据库(Relational Database Service,简称RDS)是一种基于云计 算平台的即开即用、稳定可靠、弹性伸缩、便捷管理的在线关系型数据库服务。
关系型数据库相关环境变量如下表所示。
表3-4 RDS 关系型数据库相关环境变量
环境变量 说明
RELATIONAL_DATABASE_NAME 关系型数据库实例名称 RELATIONAL_DATABASE_CONNECTI
ON_TYPE 关系型数据库实例的连接类型,取值
为JNDI/
SPRING_CLOUD_CONNECTOR RELATIONAL_DATABASE_JNDI_NAM
E 关系型数据库实例的JNDI名称,如果
连接类型为JNDI
RELATIONAL_DATABASE_DB_NAME 关系型数据库实例的数据库名 RELATIONAL_DATABASE_DB_USER 关系型数据库实例的数据库用户 RELATIONAL_DATABASE_DB_TYPE 关系型数据库实例的数据库类型,当
前只支持MySQL
RELATIONAL_DATABASE_VERSION 关系型数据库实例的数据库版本 RELATIONAL_DATABASE_HOST 关系型数据库实例的数据库IP地址 RELATIONAL_DATABASE_PORT 关系型数据库实例的数据库端口 RELATIONAL_DATABASE_PASSWOR
D 关系型数据库实例的数据库密码
开发指南 3 准备环境
4 对接微服务应用
Java Chassis接入CSE Go Chassis接入CSE Spring Cloud接入CSE Dubbo接入CSE Mesher接入CSE