博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
阿里云 EDAS-HSF 用户指南
阅读量:5458 次
发布时间:2019-06-15

本文共 3374 字,大约阅读时间需要 11 分钟。

阿里云 EDAS-HSF 用户指南

针对 EDAS v2.3.0

©Alibaba EDAS 项目组
2015/8/19

1 前言

本文档旨在描述阿里云 EDAS 产品中应用服务化模块的基本概念,以及如何使用。

2 产品背景

HSF(High Speed Framework)是一个高可用、高性能、分布式的服务框架。HSF 可以被看作是人体的血管,

帮助应用轻松实现服务化解耦,是阿里内部各个系统通信的基础软件。

3 专业术语

  Agent
安装于用于 ECS,负责 EDAS 控制台与用户 ECS 之间的通信,以此来实现对应用的管理。
  HSF
EDAS 产品中分布式服务化子模块的名字,是一个高性能的服务化框架,全称 High Speed FrameWork。

4 HSF 安装

先了解下 HSF 应用的运行环境。如图:

首先,应用运行在潘多拉(Pandora)容器中,容器又通过 Ali-Tomcat 启动。

重要说明: 本地开发,才需要 4.1,4.2,4.3 的步骤.如果已经开发好,则只需要将应用发布到 EDAS 平台上,EDAS 平台

会自动初始化容器环境.

4.1 Tomcat 安装

下载并解压 Tomcat 即可(不可以下载其它 tomcat 包),我们做了定制

下载地址: 

4.2 Pandora 安装

下载并解压 Pandora 到 Ali-Tomcat 的 deploy 目录即可。

下载地址: 

4.3 环境配置

1.  绑定 jmenv.tbsite.net 域名到对应的地址服务器(没有域名解析的情况下)

在默认情况下,我们在公网有一个测试环境,您可以在本机绑定地址:
182.92.100.65 jmenv.tbsite.net
如果在您的本地安装有地址服务器环境,请绑定本地的地址
2. 可以安装 EdasStudio 开发插件,这样可以在 eclipse 中直接调试程序无需额外的打包
到此,HSF 的运行环境就安装完毕。

参考

5 提供 HSF 服务

5.1 创建 Web 项目

以 eclipse 为例创建一个 maven web 项目。 File -> New -> Project -> Maven Project -> maven-archetype-webapp ->

输入 groupId、artifactId 连续 Next。项目目录结构如图:

5.2 添加 Maven 依赖

在项目 pom.xml 中添加如下依赖:

org.springframework
spring-web
3.1.1.RELEASE
javax.servlet
javax.servlet-api
3.0.1
provided

5.3 编写需要发布的服务

创建需要发布的服务接口,com.taobao.edas.test.SampleService

SampleService 服务提供了一个 echo 的方法调用。编写实现类:com.taobao.edas.test.impl.SampleServiceImpl

public interface SampleService {String echo(String str);}public class SampleServiceImpl implements SampleService {@Override public String echo(String str) {return str;}}

5.4 配置 Spring

在 web.xml 中配置 spring 的监听器:

contextConfigLocation
classpath:config/applicationContext.xml
org.springframework.web.context.ContextLoaderListener

在 resources 目录下面添加 spring 配置文件:config/applicationContext.xml

这里配置文件中包含了发布者的配置文件:config/providers-spring.xml

到此发布者就编写好了,运行 Maven 打包,生成项目 war 包。部署到 ali-tomcat 的 deploy 目录下。运行

ali-tomcat/bin/startup.bat,就可以在 hsf 服务治理上查询到发布的服务了。

6 消费 HSF 服务

6.1 配置 Spring

在配置文件 config/applicationContext.xml 添加消费者配置:

consumers-spring.xml 配置:

6.2 编写测试代码

已经完成了消费者的定义,下面创建 servlet 来调用测试代码进行测试:com.taobao.edas.test. HsfServlet

public class HsfServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(req.getServletContext());SampleService sampleService = (SampleService) ctx.getBean("sampleService");resp.getWriter().println(Long.toString(System.currentTimeMillis()));}}

在 web.xml 中添加

hsf
com.taobao.edas.test.HsfServlet
hsf
/hsf.htm

6.3 打包测试

Maven 打包,部署,启动 ali-tomcat,打开浏览器访问:localhost:8080/hsf.htm 。

注意:这里虽然消费成功,但是默认没有走远程调用。就是说,如果相同的 jvm 中提供了服务,默认是不会
走网络远程调用了。就是说,即使其他机器提供了相同的服务也永远不会调用。
编辑 ali-tomcat/bin/catalina.bat 添加如下参数:
set JAVA_OPTS=%JAVA_OPTS% -Dhsf.client.localcall=false
这个参数禁用掉了本机优先调用策略。
如果这里是使用 Ali-tomcat 插件,直接用插件运行,无需打包。并且,-Dhsf.client.localcall=false
把这个参数在 eclipse 中加到 JVM 参数中。

转载于:https://www.cnblogs.com/longshiyVip/p/4823305.html

你可能感兴趣的文章
java String spilt 问题
查看>>
【P3056】【USACO12NOV】笨牛Clumsy Cows
查看>>
准标识符(Quasi-dientifier, QI)
查看>>
深入理解VMware虚拟机网络通信原理
查看>>
Linux命令——find/grep
查看>>
TJU1016
查看>>
HttpClientUitl工具类
查看>>
Could not find or load main class
查看>>
VC 预定义宏
查看>>
indexOf()
查看>>
dom4j对xml读取操作
查看>>
Yii2.0实现微信公众号后台开发
查看>>
Shell 传递参数
查看>>
Ibatis 泛型化dao模版
查看>>
hrbust 1133 (kruskal)
查看>>
vue 接口统一管理
查看>>
margin 相关 bug 系列
查看>>
模拟+贪心 SCU 4445 Right turn
查看>>
2012 Multi-University #7
查看>>
第五章 循环结构反思
查看>>