本文档主要介绍了服务开发者基于Aliware做项目开发时,从项目环境搭建,项目开发,项目上线及Aliware服务功能相关的使用说明,操作步骤及代码示例。
服务开发者
后端开发语言为JAVA。
需要使用RPC(HSF)。
需要EADS提供的应用管理(上下架管理,动态扩容、缩容)。
需要应用服务监控服务(日志统一管理,运行环境监控,Jvm状态监控,请求链路分析)。
版本 |
/更新日期 |
更新内容 |
V1.0.0 |
20170719 |
第一次发布 |
V1.0.4 |
20170725 |
修改Maven 私服配置 settings.xml文件,代码去掉行号 |
1.1. 阿里云开发子账号的申请................................................................................ 4
2.1.1. Maven 私服配置................................................................................. 9
2.1.2. 安装轻量配置中心.............................................................................. 10
2.2. 基于EDAS的HSF标准服务开发指南........................................................... 11
2.2.1. 基于Spring开发................................................................................ 11
2.2.2. 基于SpringBoot开发........................................................................ 25
2.3. 带有验证能力的HSF服务开发指南............................................................... 41
2.4. 申请调用其他HSF服务................................................................................ 41
2.5. 授权其他应用使用HSF服务......................................................................... 41
2.6.3. POJO 类定义规范.............................................................................. 45
3.1.2. EDAS控制台入口............................................................................... 51
3.1.5. 设置应用类型和网络类型.................................................................... 55
ECS的申请
Agent的申请
EDAS Agent 简介
EDAS Agent(以下简称 Agent)是 安装在 ECS 上,用于 EDAS 服务集群与部署在相应 ECS 上的应用程序之间进行通信的 Daemon 程序。在运行的过程中主要承担以下的角色:
应用管理:包括应用部署、启动、停止等。
状态回报:包括应用存活状态、健康检查状态、Ali-Tomcat 容器状态等。
信息获取:如获取 ECS 和容器的监控信息。
Agent 除了完成以上基于应用的管控功能,还负责 EDAS 控制台与用户应用程序之间通信。简单的说,一个应用发布的服务是否在某台 ECS 上正确及时的发布,这个简单的信息获取就需要 Agent 的参与和协调。
说明: 上述 Agent 所涉及的功能对用户都是透明的,作为用户,您只需要安装 Agent 即可。
父目录pom.xml文件配置
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
</parent>
<properties>
<spring-cloud-starter-pandora.version>1.0</spring-cloud-starter-pandora.version>
<spring-cloud-starter-hsf.version>1.0</spring-cloud-starter-hsf.version>
<spring-cloud-starter-sentinel.version>1.0</spring-cloud-starter-sentinel.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Camden.SR3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- 用户需要依赖的Api -->
<dependency>
<groupId>cn.com.flaginfo.edas</groupId>
<artifactId>pandora-hsf-boot-demo-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!-- Alibaba Aliware -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-pandora</artifactId>
<version>${spring-cloud-starter-pandora.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hsf</artifactId>
<version>${spring-cloud-starter-hsf.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sentinel</artifactId>
<version>${spring-cloud-starter-sentinel.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
</dependencies>
</dependencyManagement>
在项目consumer和provider工程的pom.xml中添加如下依赖
<dependencies>
<!-- 用户需要依赖的Api -->
<dependency>
<groupId>cn.com.flaginfo.edas</groupId>
<artifactId>pandora-hsf-boot-demo-api</artifactId>
</dependency>
<!-- spring dependency -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Alibaba Aliware 依赖 -->
<!-- pandora-boot启动依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-pandora</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hsf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sentinel</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.edas.configcenter</groupId>
<artifactId>configcenter-client</artifactId>
<version>1.0.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- 该插件用于生成fat jar,并且主动排除taobao-hsf.sar这个jar包,该jar包在生产环境部署时会通过-D参数指定,所以打包时无需打包,避免资源浪费 -->
<plugin>
<groupId>com.taobao.pandora</groupId>
<artifactId>pandora-boot-maven-plugin</artifactId>
<version>2.1.6.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
application.properties配置
#服务名称
spring.application.name=pandora-hsf-boot-demo-consumer
#端口号
server.port=8082
启动代码
在项目consumer和provider