精选30+云产品,助力企业轻松上云!>>>

实验概述

企业级分布式应用服务(Enterprise Distributed Application Service, 简称 EDAS)是以阿里巴巴中间件团队多款久经沙场的分布式产品作为核心基础组件,面向企业级云计算市场提供高可用分布式解决方案,是阿里巴巴企业级互联网架构解决方案的核心产品,它涵盖了应用生命周期管理、服务运维管控等众多功能。

本实验主要是指导学员如何在本机上配置并搭建 EDAS 本地开发测试环境。

实验目标

完成此实验后后,学员可以掌握的能力有:

  1. 在本地搭建 EDAS 本地开发测试环境;

  2. EDAS 的基本开发流程。

学前建议

在使用 EDAS 产品之前,我们默认您已经掌握基本的编程技巧,包括但不限于熟练使用 JAVA 编程语言;掌握相关的开发工具(Eclipse等),熟悉相关的开发规范(Maven;Spring等)

背景知识

业务背景 在复杂的云环境,应用发布与管理会变得十分复杂。本地开发完成的应用需要逐个部署到服务器,然后登陆每一台服务器终端进行应用的发布和部署;后续可能还会涉及应用的重启,扩容等。服务器的不断增加对于运维人员将是一个极大的挑战。 当集中式应用转变成分布式系统的时候,系统之间的相互可靠调用一直以来都是分布式架构的难题,比如网络通信,序列化协议设计等很多技术细节需要确定。EDAS 提供了一个高性能的 RPC 框架,能够构建高可用的分布式系统,系统地考虑到了各个应用之间的分布式服务发现、服务路由、服务调用以及服务安全等细节。 EDAS 支撑了整个阿里巴巴 99% 以上的大规模应用系统,其中涵盖了包括会员、交易、商品、店铺、物流和评价在内的所有在线核心系统,在稳定性、可靠性等多个维度具有独特的优势。EDAS 历次双十一大促考验,其完善的鉴权体系保证每一次服务调用的安全可靠。 技术背景 EDAS 充分利用阿里云的资源管理和服务体系,引入阿里巴巴中间件整套成熟的分布式产品,全面兼容 Apache Tomcat 的 Java 容器,提供高性能的分布式服务框架以及秒级推送的分布式配置管理服务。此外,EDAS 还创新性地提供了分布式系统链路追踪、容量规划、数据化运营和多款经过阿里电商平台长期考验的高可用稳定性组件,帮助企业级客户轻松构建大型分布式应用服务系统。 EDAS 除了以互联网中间件 PaaS 平台为基础,采用高性能 RPC 框架 HSF 和 Dubbo 作为服务化框架之外,还提供了丰富的二方服务体系:

· 分布式配置管理

集中式系统变成分布式系统后,如何有效地对分布式系统中,每一个机器上的配置信息进行有效的实时管理成了一个难题。EDAS 提供高效的分布式配置管理,能够将分布式系统的配置信息在 EDAS 控制台上集中管理起来,做到一处配置,处处使用。更重要的是,EDAS 允许您在控制台上对配置信息进行修改,在秒级时间内就能够实时通知到所有的机器。

· 分布式任务调度

任务调度服务,允许用户配置任意周期性调度的单机或者分布式任务,并能对任务运行周期进行管理,同时也提供对任务的历史执行记录进行查询。适用于诸如每天凌晨 2 点定时迁移历史数据,每隔 5 分钟进行任务触发,每个月的第一天发送系统月报等任务调度场景。

· 分布式事务

分布式事务(Transaction Controller,简称 TXC),是一款高性能、高可靠、接入简单的分布式事务中间件,用于解决分布式环境下的事务一致性问题。该产品支持 DRDS、RDS、Oracle、MySQL、PostgreSQL、H2 等多种数据源,并可以配合使用 EDAS、Dubbo 及多种私有 RPC 框架,同时还兼容 MQ 消息队列等中间件产品,能够轻松实现分布式数据库事务、多库事务、消息事务、服务链路级事务及其各种组合,具有策略丰富,易用性和性能兼顾等特征。

一、环境准备

1.1 ECS

请点击页面左侧的实验资源 ,在左侧栏中,查看本次实验资源信息。 ECS windows环境 ECS 在弹出的左侧栏中,点击 创建资源 按钮,开始创建实验资源。 资源创建过程需要1-3分钟。完成实验资源的创建后,用户可以通过 实验资源 查看实验中所需的资源信息,例如:阿里云账号等。

1.2 远程连接

远程连接方式:

本实验所使用的资源是安装了windows系统的ECS,可以通过远程连接的方式,根据文档内容在ECS上完成EDAS本地开发环境的搭建。远程连接的方式,根据下面的连接进行操作,链接如下:

https://help.aliyun.com/document_detail/25435.html

https://help.aliyun.com/document_detail/108451.html

远程连接异常:

远程连接的过程中可能出现的常见异常 “出现身份验证错误,要求的函数不受支持”,该异常的解决办法如下:

https://help.aliyun.com/knowledge_detail/71931.html

二、安装JDK并配置环境变量

2.1 安装JDK

从我们提供的实验软件\开发软件目录中找到jdk-8u211-windows-x64.exe,直接安装。

2.2 配置环境变量

单击开始菜单,在列表找到 “计算机”,鼠标右键单击,从弹出的列表中找到属性进入 新窗口中 点击左侧 “高级系统设置”,然后点击环境变量,进入变量配置页面。

新建系统变量名 JAVA_HOME ,变量值如下:

C:\Program Files\Java\jdk1.7.0_79 打开环境变量PATH,在变量值最前端增加如下语句: %JAVA_HOME%\bin; 注意:末尾的“;”分号不能省略。 新建变量名 CLASSPATH ,变量值如下:

.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 注意:前面的“.;”符号不能省略。

2.3 验证

在CMD命令窗口下输入java -version,可以正常显示java版本。

三、安装maven并配置环境变量

3.1 安装Maven

将实验软件\开发软件目录中apache-maven-3.6.1-bin打开,其中的文件apache-maven-3.6.1 复制到本地磁盘C:\work目录(如果没有该文件夹,可以新建一个)。

3.2 配置环境变量

按前序步骤打开环境变量

配置系统变量,在系统变量中新建一个变量,变量名为M2_HOME,变量值为Maven的安装目录,如下:

D:\work\apache-maven-3.6.1

接着在系统变量中找到环境变量PATH,在变量值的最前端加上如下语句:

%M2_HOME%\bin; 注意:末尾的“;”分号不能省略。

3.3 验证

在cmd窗口中运行 mvn -v ,可以查看对应maven的版本。

3.4 配置settings文件

为了让maven能更顺利的下载edas的jar相关jar包,建议配置一个edas的私服地址。修改maven的settings.xml(setting.xml文件在~/.m2/settings.xml,或直接使用maven安装包下conf/settings.xml),添加私服地址。

注意:maven的settings配置可以在 Maven 中配置 EDAS 的私服地址中看到更详情的说明。

在<profiles>,新增内容如下(注意profiles可能被注释掉,确保<profiles>和<profile>的格式)

<profiles><profile><id>nexus</id><repositories><repository><id>central</id><url>http://repo1.maven.org/maven2</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories><pluginRepositories><pluginRepository><id>central</id><url>http://repo1.maven.org/maven2</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></pluginRepository></pluginRepositories></profile><profile><id>edas.oss.repo</id><repositories><repository><id>edas-oss-central</id><name>taobao mirror central</name><url>http://edas-public.oss-cn-hangzhou.aliyuncs.com/repository</url><snapshots><enabled>true</enabled></snapshots><releases><enabled>true</enabled></releases></repository></repositories><pluginRepositories><pluginRepository><id>edas-oss-plugin-central</id><url>http://edas-public.oss-cn-hangzhou.aliyuncs.com/repository</url><snapshots><enabled>true</enabled></snapshots><releases><enabled>true</enabled></releases></pluginRepository></pluginRepositories></profile>
</profiles>
<activeProfiles><activeProfile>nexus</activeProfile><activeProfile>edas.oss.repo</activeProfile>
</activeProfiles>

四、安装Ali-Tomcat

4.1 安装步骤

将实验软件\HSF容器目录中taobao-tomcat-7.0.59.tgz解压到本地磁盘(例如:d:\work)下。 镜像中已经解压,可直接复制。

在实验软件\HSF容器目录中找到taobao-hsf.sar软件,将里面的内容移动到Ali-Tomcat 的 deploy 目录。例如:d:\work\tomcat\deploy 底下。

(已解压的不需要重新解压)

详情可以参考:安装 Ali-Tomcat 和 Pandora

五、安装IDE的Ali-Tomcat插件

5.1 Eclipse

将实验软件\开发软件目录中eclipse.zip解压到本地磁盘d:\work目录。由于我们提供的eclipse已经默认安装好tomcat4e,因此,不需要重新安装ali-tomcat的插件。

确认已安装tomcat4e的步骤如下:

打开eclipse,在eclipse菜单栏 ->Window按钮 -> 选择Preferences ->选择Run/Debug->Perspectives,再右侧列表中可以看到AliTomcat Webapp的选项,即为已安装。效果如下: 对于未找到该选项或自行下载的eclipse,需要安装 Tomcat4E插件,如下所示安装步骤进行操作:

点击工具栏菜单> Help 按钮,选择 Install New Software > 依次单击 Add > Local > 选中实验软件\开发软件tomcat4e.zip 包 > OK > Select All > Next 按钮即完成插件安装,重启Eclipse。界面如下:

5.2 IDEA

运行 IntelliJ IDEA。从菜单栏中选择 Run > EditConfiguration。在 Run/Debug Configuration 页面左侧的导航栏中选择 Defaults > Tomcat Server > Local。

下面开始配置 Ali-Tomcat:

在右侧页面单击 Server 页签,然后在 Application Server 区域单击 Configure。

在 Application Server 页面右上角单击 +,然后在 Tomcat Server 对话框中设置 Tomcat Home 和 Tomcat base directory 路径,单击 OK。

将 Tomcat Home 的路径设置为本地解压后的 Ali-Tomcat 路径,Tomcat base directory 可以自动使用该路径,无需再设置。

在 Application Server 区域的下拉菜单中,选择刚刚配置好的Ali-Tomcat。在 VM Options 区域的文本框中,设置 JVM 启动参数指向 Pandora 的路径,如:-Dpandora.location=d:\work\tomcat\deploy\taobao-hsf.sar

说明:d:\work\tomcat\deploy\taobao-hsf.sar 需要替换为在本地安装 Pandora 的实际路径。

最后,单击 Apply 或 OK 完成配置。 详情可以参考:配置 IDEA 开发环境。

六、安装轻量级配置中心

6.1 环境要求

正确配置环境变量 JAVA_HOME,指向一个1.6或1.6 以上版本的JDK; 8080 和 9600 端口未被使用。

6.2 安装步骤

将实验软件\轻量配置中心目录中edas-config-center.zip软件包,解压本地磁盘(例如:d:\work)目录。

进入 edas-config-center 目录,双击 startup.bat启动轻量配置中心

正常启动。由于默认使用的是8080端口,因此,可以通过如下地址进行访问:

http://127.0.0.1:8080/

6.3 配置地址

对于需要使用轻量配置中心的开发机器,请在本地 DNS(hosts 文件)中,将jmenv.tbsite.net 域名指向启动了 EDAS 配置中心的机器 IP。hosts 文件的路径如下:

Windows 操作系统:C:\Windows\System32\drivers\etc\hosts Unix 操作系统:/etc/hosts 示例

如果您在 IP 为 192.168.1.100 的机器上面启动了 EDAS 配置中心,则所有开发者只需要在机器的 hosts 文件里加入如下一行即可(记得备份原文件):

192.168.1.100 jmenv.tbsite.net 在本机上部署轻量级配置中心,并让本机的应用访问,配置hosts效果如下图所示:

七、开发RPC接口

7.1 开发步骤

下面的开发示例将以eclipse作为IDE进行示范:

将实验软件\示例代码目录中的edas-app-demo.zip本地磁盘(例如:d:\work)目录,打开eclipse,点击import>Maven>Existing MavenProjects选择刚解压到本地的项目carshop。 新增api,新写一个接口,用来打印名字。在itemcenter-api项目新增接口PrintService。代码如下:

public interface PrintService {public String print(String name);}

八、开发RPC Provider

8.1 开发步骤

接下来要开始rpc provider,通过上述定义的接口完成实现类。如下:

在itemcenter项目新增类PrintServiceImpl实现PrintService接口。代码如下:

public class PrintServiceImpl implements PrintService {@Overridepublic String print(String name) {return name;}}

修改itemcenter项目resources目录下hsf-provider-beans.xml,version用自己的名字+日期。

其中,除了定义hsf的配置hsf:provider以外,还需要将PrintServiceImpl暴露为spring的bean,并提供hsf:provider的ref属性引用。代码如下:

<bean id="printService"
class="com.alibaba.edas.carshop.itemcenter.PrintServiceImpl"
/><hsf:provider id="printServiceProvider"
interface="com.alibaba.edas.carshop.itemcenter.PrintService"
ref="printService" version="zhuizhi.20180809" group="testHSFGroup"></hsf:provider>

九、开发RPC Consumer

9.1 开发步骤

接下来要开始rpc consumer,通过上述第六节定义的接口,远程调用第七节的接口实现。如下:

修改detail项目resources目录下hsf-consumer-beans.xml配置文件。注意此处:hsf:consumer的属性id设置为“print”代码如下:

<hsf:consumer id="print" interface="com.alibaba.edas.carshop.itemcenter.PrintService"
maxWaitTimeForCsAddress = "3000"version="zhuizhi.20180809" group="testHSFGroup">
</hsf:consumer>

修改detail项目中StartListener类,通过上述id属性“print”获取到PrintService的实例。通过printService调用print方法完成远程hsf接口调用。代码如下:

@Overridepublic void contextInitialized(ServletContextEvent sce) {ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext());final ItemService itemService = (ItemService) ctx.getBean("item");final PrintService printService = (PrintService) ctx.getBean("print");Thread thread = new Thread(new Runnable() {@Overridepublic void run() {Random random = new Random();while (true) {try {Thread.sleep(500l);System.out.println(itemService.getItemById(1111));System.out.println(itemService.getItemByName("myname is le"));System.out.println(printService.print("zhuizhi.czj.") + random.nextInt());} catch (Throwable e) {e.printStackTrace();}}}});thread.start();}

十、验证HSF应用

10.1 启动rpc provider

下面咱们要开始验证上述所编写的hsf应用,首先,需要启动rpc provider将接口信息注册到轻量级配置中心。下面对rpc provider的启动做详细的阐述:

  1. itemcenter项目有接口的实现是hsf的provider。下面以eclipse为例,选中itemcenter项目右键,操作如下:

  2. 设置Tomcat4E。右键单击相应的 Eclipse 工程(本示例中的itemcenter项目),右键菜单-> Run As > Run Configurations。查看弹出的配置窗口。

  3. 选择左侧导航选项中的 AliTomcat Webapp,新增启动配置; AliTomcat 选项卡,有2项需要注意的配置项,即:Pandora的taobao-hsf.sar location(配置hsf相关包地址)和Web Application下的Tomcat Port(tomcat启动端口号)。下面阐述这两项如何配置。

  4. Pandora (taobao-hsf.sar location) 区域,选择 Use local taobao-hsf.sar;单击旁边的 Browse 以选择本地的 Pandora 路径(如:d:\work\tomcat\deploy\taobao-hsf.sar);

  5. Web Application下的Tomcat Port配置的是tomcat启动端口号,默认8080端口。在这之前“轻量级配置中心”默认也是使用8080端口号,这就可能造成启动后端口冲突。在这里,建议大家修改Tomcat Port的8080为8081。如下图所示:

6. 根据上述内容在Run Configurations配置完成后,单击 Apply 或 Run,完成设置。一个工程只需配置一次,下次可直接启动(即,右键单击项目->Run/Debug->RunAs->Alitomcat Webapp 可以直接运行应用之前的配置);

  1. 运行成功后,可以在“轻量级配置中心”查看到发布的接口信息。其中,轻量级配置中心的“服务列表”需要根据“IP地址”或“服务名”进行搜索,“IP地址”必须写完整的本机IP(即,写127.0.0.1无效),而如果根据“服务名”搜索,则服务名需要写完整(例如:com.alibaba.edas.carshop.itemcenter.PrintService才算一个完整的服务名)。 8.查看服务注册日志,C:\Users{当前用户}\logs\configclient\config-client.log中可以看到如下信息,对应服务Publish-ok。

10.2 启动rpc consumer

上述已经将rpc provider(即:itemcenter项目)启动并对外暴露接口信息,提供远程的服务。下面将启动接口调用方通过rpc的方式远程调用rpc provider的接口。

启动当前rpc consumer(即:detail项目)前,确保“轻量级配置中心”和itemcenter项目都已经启动。

启动detail项目,步骤跟itemcenter项目启动方式相同。即:需要通过右键菜单-> Run As > Run Configurations配置Run/Debug中Tomcat Port(可配置为8082端口)和taobao-hsf.sar地址)。

代码通过StartListener启动后默认调用itemcenter项目的rpc接口,调用成功可以在控制台看到以下信息:

阿里云ACP企业级互联网架构ACP实验之本地配置EDAS开发环境相关推荐

  1. 如何站在双11的肩膀上 详解阿里云企业级互联网架构

    摘要:2015天猫双11全球狂欢节以912.17亿元的答卷完美收官.双11当天14万笔/秒的交易创建峰值和8.6万笔/秒的支付峰值双双刷新了世界纪录,相比首届双11,订单创建峰值增长了350倍,支付峰 ...

  2. 云效平台:企业级互联网架构下的持续集成与持续交付实践

    摘要:本文的整理自2017云栖大会-南京峰会上阿里云高级技术专家鲁小川的分享讲义,讲义主要分享了阿里云云效平台对于企业级互联网架构下的持续集成与持续交付的实践经验,首先介绍了阿里云云效平台的起源,之后 ...

  3. 互联网快讯:阿里云发布第四代神龙架构;微信支付正式推出品牌视频号;猿辅导加速布局素质教育

    国内要闻 阿里云发布第四代神龙架构,云计算首次进入5微秒时延时代: 立邦涂料将以11.52亿欧元收购法国第四大装饰涂料制造商Cromology : 3.微信支付正式推出品牌视频号,提升商家品牌曝光度与 ...

  4. 2021云栖大会丨阿里云发布第四代神龙架构,提供业界首个大规模弹性RDMA加速能力

    简介:10月20日,2021年杭州栖大云会上,阿里云发布第四代神龙架构,升级至全新的eRMDA网络架构,是业界首个大规模弹性RDMA加速能力. 10月20日,2021年杭州栖大云会上,阿里云发布第四代 ...

  5. 业务与信息系统深度融合,改变业务运营和创新模式:阿里巴巴企业级互联网架构(Aliware)实践...

    摘要:本文的整理自2017云栖大会-南京峰会上阿里中间件高级架构师宁晓民的分享讲义,讲义主要介绍了 的业务发展历程,并分享了阿里巴巴互联网架构的实践经验,最后还结合实际案例对于企业级互联网架构Aliw ...

  6. 阿里云飞天技术总架构师唐洪:飞天技术与应用

    一年一度的阿里技术论坛(Alibaba Technology Forum)已走进第7个年头,4月15日,阿里众多技术领军人走进清华校园.通过特设的三大技术论坛,参会人员近距离接触了阿里巴巴在云计算.大 ...

  7. 因云而生,全新视角看阿里云服务器硬件方升架构

    简介:方升架构作为新一代云服务器架构的典范,是阿里云云原生基础设施的最佳实践之一.阿里云结合云计算丰富业务场景需求,推出一系列自研服务器产品.部件及解决方案,包括高性能计算全栈解决方案.高性能存储和大 ...

  8. 深入剖析阿里云推荐引擎——新架构,新体验

    摘要:本文的整理自2017云栖大会-上海峰会上阿里云算法专家郑重(卢梭)的分享讲义,从2016年2月V2.0公开使用到现在,阿里云推荐引擎有了更大的进步.有着获取排序的在线计算,修正匹配的近线计算及匹 ...

  9. 因云而生 全新视角看阿里云服务器硬件方升架构

    简介: 方升架构作为新一代云服务器架构的典范,是阿里云云原生基础设施的最佳实践之一.阿里云结合云计算丰富业务场景需求,推出一系列自研服务器产品.部件及解决方案,包括高性能计算全栈解决方案.高性能存储和 ...

最新文章

  1. 基于NanoVNA调整150kHz``选频``放大电路
  2. 《Learning.Python》pdf
  3. getopt长参数(长选项)获取不到参数BUG
  4. pcie和usb哪个带宽高_了解数字示波器采样率和模拟带宽的规格
  5. 表格和表单的结合示例
  6. MySQL 5.7.21详细下载安装配置教程
  7. MongoDB中对象反序列化的一个小问题
  8. java bat运行jar文件_利用.bat文件运行jar文件
  9. 计算机链接与rtu通讯的区别,RTU
  10. 一些压制视频参数记录
  11. 虚拟大师怎么修改手机_怎么修改手机应用名称
  12. 浅谈机器学习中的非线性
  13. 电脑通信端口带感叹号,WIN7设备管理器里面的端口前面有个黄色感叹号怎么解决?...
  14. 成功解决RuntimeError: cuda runtime error (30)
  15. 游戏场景建模制作过程
  16. 云杰恒指:6.11恒指期货实盘指导交易复盘
  17. Quorum入门2.0:Quorum-企业以太坊-开始尝试
  18. 用python做时间序列预测八:Granger causality test(格兰杰因果检验)
  19. OSI/RM各层功能—物理层、数据链路层
  20. 在PHP中如何获取用户的真实IP

热门文章

  1. Dos获取硬盘信息的一些命令
  2. 70_小新的博文索引
  3. 单细胞测序探索小鼠胚胎时期脑组织的发育
  4. linux程序打印cr3寄存器,linux – 每次从内核模块读取时,为什么CR3寄存器内容会有所不同?...
  5. 算法-----劳斯-赫尔维茨(Routh-Hurwitz)稳定判据(转)
  6. oracle 安装oui 15038,SUSE Linux上的Oracle11g-x64-ent安装有很多检查错误
  7. BZOJ1143[CTSC2008]祭祀river 偏序集及Dilworth定理
  8. JavaEE复习资料
  9. Linux--基础知识点--20--scp/sftp
  10. 前后端分离项目跨域问题及解决方案