[补充实习笔记] HSF入门

HSF全称为High-Speed Service Framework,旨在为淘宝的应用提供一个分布式的服务框架,HSF从分布式应用层面以及统一的发布/调用方式层面为大家提供支持,从而可以很容易的开发分布式的应用以及提供或使用公用功能模块,而不用考虑分布式领域中的各种细节技术,例如远程通讯、性能损耗、调用的透明化、同步/异步调用方式的实现等等问题。

适用场景:
  • 将集中部署的应用转换为分布式应用
对于这种需求场景,HSF将提供帮助,基于HSF可以非常容易的将集中部署的应用转换为分布式应用,而不用去过多的考虑分布式应用需要掌握的技术,也不需要对现有应用进行过多的改动,这一切HSF都会提供支持。
  •  以统一的方式对外提供或使用外部的公用功能模块
对于这种需求场景,HSF将提供帮助,基于HSF所有分布式部署的功能模块都可以以一种简单而标准的方式进行通讯,而无需关注所使用的公用功能模块部署在什么地方以及怎么远程调用它等问题,可做到的效果就像是本地调用library的API一样。
  • 开发分布式应用
对于这种需求场景,HSF提供了分布式领域问题解决的支持,HSF屏蔽了分布式应用带来的一些问题,例如:如何与远程的功能通讯、异步/同步调用等问题,使用HSF,只需要简单配置就可以做到就像本地调用一样的效果。
总结来说就是,只要应用涉及到分布式,那么HSF就可以提供支持和帮助。
为何使用HSF?

07年时,淘宝是一个单一的应用Denali。随着业务的发展,暴露了两个问题:

1、业务功能累积,单一应用不堪重负
2、牵一发而动全身,代码难以维护
因此在07年下半年,将Denali进行了拆分。面临问题:拆分后系统跑在不同的虚拟机中,如何互相调用?因此开发了HSF。

HSF远程调用流程

bd9b2f21-4f27-439c-9cc8-1ae5a2b63343
基本调用流程:
1、连接服务器
2、把接口名,方法名,参数传给服务器
3、等待服务器返回结果即可

HSF框架结构

22ee41db-90ac-4304-8956-9f69319a5594

应用层:HSFSpringProviderBean/ HSFSpringConsumerBean
协议层:RPC协议(TCP/IP协议,Webservice协议,Google protocol buffers协议)/序列化协议(java,Hessian)
核心服务层:RPC服务/路由规则服务/地址服务/配置服务/notify消息服务/OSGI容器及jar依赖管理。
QOS(Quality of Service,服务质量):监控 日志(哈勃,logstat)
容器接入层:Tomcat,Jboss
b087af20-8f20-4dd3-99f7-536e40bb1042

[7.11实习笔记] 环境搭建 JDK+IDEA+MAVEN+JBOSS+HSF+SVN

7月11日流水

今天上午领了工牌和PC。排了一个多小时的队。本来8点半到想着能早点领,没想到排PC的队排了半天突然工作人员一句“实习入职跟我来”,队伍全乱了……好不容易领了机子到IT临时服务点配置了一下,出来都快11点了。无力吐槽。

webwxgetmsgimg (3)

回到工位就把工牌和支付宝绑定了。这样在园区各个地方都不用带钱包,食堂超市直接刷工牌。还是比较方便的。

webwxgetmsgimg (4)

下午就是根据师姐给的内部百科链接(叫翔哥的师兄写的文档),以及一个Taobao_Developer_Cookbook的文档开始搭建工作环境。具体的笔记在下面会写。第一次搭这些环境还是比较蛋疼的。记录下来也好以后备查。

7月11日笔记

首先,明确需要搭建的环境:

  1. JDK 1.6.0_43
  2. IntelliJ IDEA 13.1.3(社区版)
  3. Maven 2.2.1
  4. JBoss 4.2.2.GA
  5. HSF 2.1.0.6
  6. TortoiseSVN 1.8

其次,阿里统一将这些环境安装在D:java_tools目录下。

为何要规划安装目录? 

开发人员之间经常会进行一些交流或者协助排查问题,最常见的几句话?“你的 Java 安装在哪里?”;“JBoss 安装在哪个目录下?我要改一下设置!”。“Eclipse 安装在哪个目录下,打开一下!”。如果不想让你的同事费心做这些事情,那最好将这些开发用的软件安装在指定的目录下,这样大家的环境都一样,排查问题就方便很多。还有 Java 软件最忌安装在有空格或者中文的目录下,这个一定需要注意一下。

为何要使用旧版的环境? 

版本还是挺重要的,有些高版本会导致一些莫名其妙的错误。师兄曾遇到过Maven版本的问题,总提示日志系统不存在。

接下来就可以依次搭建这些环境啦~

JDK 1.6.0_43

软件环境:Windows版,64位

下载地址:http://dl1.cr173.com//soft1/jdk-6.zip

安装配置:

  1. 下载并解压ZIP包。执行其中的jdk-6u43-windows-x64.exe,根据提示完成安装
  2. 配置环境变量:计算机→属性→高级系统设置→高级→环境变量
  3. 系统变量→新建JAVA_HOME变量。值为JDK安装目录。
  4. 系统变量→寻找PATH变量→编辑。在值的末尾加上JDK安装路径下bin目录,以及jre的bin目录(目录间以;分隔)
  5. 系统变量→新建CLASSPATH变量,值为 .; 以及JDK目录下lib目录,以及这个lib目录下的tools.jar
  6. 测试是否安装成功:启动cmd,输入java –version。如果显示版本号则安装成功。

IntelliJ IDEA 13.1.3(社区版)

软件环境:Windows 社区版(这是商业软件,是付费的。但社区版是免费的。)

下载地址:http://download-cf.jetbrains.com/idea/ideaIC-13.1.3.exe

安装配置:

  1. 下载并执行安装程序,根据提示完成安装
  2. 修改IDE外观与字体:File→Settings→IDE Settings→Appearance 在这里选择喜欢的Theme,以及Override default fonts by的字体和字号;
  3. 修改代码字体:File→Settings→IDE Settings→Editor→Colors & Fonts→Font 先在Scheme name处点Save As,输入自己的配置的名字;然后设置自己喜欢的字体字号和间距。个人比较喜欢Source Code Pro,看着很舒服。
  4. 解决中文乱码:在上一步把Show only monospaced fonts的勾去掉,Primary font选自己喜欢的英文字体,勾选Secondary font并选择一个中文字体。我选的是微软雅黑(Microsoft YaHei UI)。
  5. 显示行号:File→Settings→IDE Settings→Editor→Appearance,勾选Show line numbers以显示行号。

更多技巧:http://www.cnblogs.com/sky100/archive/2009/01/22/1379949.html

插件使用:

  1. 插件安装的方法:
    1. File→SettingsIDE Settings→Plugins 点击Browse repositories按钮。
    2. 在搜索框直接搜索想要的插件
    3. 点击右边的install plugin按钮就可以了。
  2. 常用插件:
    1. Identifier Highlighter 高亮显示选中变量插件
    2. Key Promoter 快捷键提示插件
    3. Jrebel 热部署插件(需破解。破解方法:http://my.oschina.net/lujianing/blog/178578#OSC_h2_3
    4. FindBugs for IntelliJ IDEA
    5. TabSwitch 通过ctrl+tab在文件、各个面板间切换。
    6. Mybatis
    7. EncodingPlugin 可按项目指定其默认编码,非常有用

(更多插件请参阅http://blog.csdn.net/sunny243788557/article/details/26556967

Maven 2.2.1

下载地址:http://dxdown1.onlinedown.net/down/apache-maven-2.2.1-bin.tar.zip

安装配置:

  1. 下载并解压ZIP包。将其解压到安装路径。
  2. 下载 http://baike.corp.taobao.com/images/9/96/Maven_Settings.xml 这个配置文件,并覆盖到mavenconf目录中。
  3. 设置系统环境变量(同上文JDK的方法),将安装目录下bin目录添加到PATH环境变量值中。
  4. 新建系统环境变量M2_HOME,设置值为maven安装目录。
  5. 测试是否安装成功:启动cmd,输入mvn –version。如果显示版本号则安装成功。
  6. 执行mvn help:system进行mvn的初始化工作,主要是检查artifact是否能正确下载,初始化Maven本地仓库等。

JBoss 4.2.2.GA

软件环境:我们这里要使用的是阿里修改过的JBoss线上通用版本,和官方版本不一样,修改了classloader双亲委派。

下载地址:http://hsf.taobao.net/software/jboss-4.2.2.GA.zip

安装配置:

  1. 下载并解压ZIP包。将其解压到安装路径。
  2. 新建系统环境变量JBOSS_HOME,设置值为JBoss安装路径。
  3. 测试是否安装成功:运行Jboss安装目录下bin目录中的run.bat,若窗口中没有出现异常,且出现10:16:19,765 INFO [Server] JBoss (MX MicroKernel) [4.2.1.GA (build: SVNTag=JBoss_4_2_1_GA date=200707131605)] Started in 30s:828ms字样,则表示安装成功。
  4. 我们可以通过访问 http://localhost进入JBoss的欢迎界面

HSF 2.1.0.6

下载地址:http://hsf.taobao.net/hsfversion/hsf2.1.0.6/taobao-hsf.tgz

安装配置:

  1. 下载tgz包。
  2. 将其解压到JBoss目录下的serverdefaultdeploy目录下即可。

TortoiseSVN 1.8

软件环境:Windows 64位版

下载地址:http://cqindex.newhua.com/down/TortoiseSVN-1.8.7.25475-x64-svn-1.8.9.zip

安装配置:

  1. 下载并解压ZIP包,执行其中的安装程序。
  2. 根据提示进行安装。在组件选择的一步,记得勾选command line client tools(默认是不安装这个部分的)。没装的话,IDEA可能会报错,提示执行svn命令出错。

至此,基本的开发环境搭建就完成了。后面就要开始学习啦~