HSF提供的是分布式服务开发框架,taobao内部使用较多,总体来说其提供的功能及一些实现基础:
1.标准Service方式的RPC
  1)、Service定义:基于OSGI的Service定义方式
  2)、TCP/IP通信:
   IO方式:nio,采用mina框架
   连接方式:长连接
   服务器端有限定大小的连接池
   WebService方式
  3)、序列化:Hessian序列化机制
2.软件负载体系
3.模块化、动态化
4.服务治理

这里简单介绍下其使用:
首先要将HSF功能加进工程,是maven的话,在pom.xml里要依赖HSF:
Xml代码  收藏代码

<</span>dependency>  
                <</span>groupId>com.taobao.hsf</</span>groupId>  
                <</span>artifactId>hsf.connector.spring</</span>artifactId>  
                <</span>version>xxx</</span>version>  
     </</span>dependency>

而对于服务框架肯定是有服务提供者和消费者两种角色,在提供者方要做的工作包括:
1. 将interface的代码打成Jar包,放进maven仓库中,供使用者下载使用,而具体代码实现则不需要放进jar包中,使用者只能调用,无法看见具体实现。
2.在对应的HSF的配置文件里,将提供的服务提供出来(基于spring的bean配置):
Xml代码  收藏代码

<</span>bean id="xxxServiceImpl" class="xxx.xxxServiceImpl" />  
    <</span>bean id="xxxServiceProvider"     class="com.taobao.hsf.app.spring.util.HSFSpringProviderBean" init-method="init">  
         <</span>property name="serviceInterface">  
            <</span>value>xxx.xxxService</</span>value>  
         </</span>property>  
         <</span>property name="target">  
            <</span>ref bean="xxxServiceImpl" />  
         </</span>property>  
         <</span>property name="serviceName">  
            <</span>value>xxxService</</span>value>  
         </</span>property>  
         <</span>property name="serviceVersion">  
            <</span>value>xxx</</span>value>  
         </</span>property>  
         <</span>property name="serviceGroup">  
            <</span>value>HSF</</span>value>  
         </</span>property>  
    </</span>bean>

服务提供成功后,在HSF服务管理中心可以查看到这个HSF服务。
而在消费者方要做的工作:
Xml代码  收藏代码

<</span>bean name="xxxService" class="com.taobao.hsf.app.spring.util.HSFSpringConsumerBean" init-method="init">  
         <</span>property name="interfaceName" value="xxx.xxxService" />  
         <</span>property name="version" value="xxx" />  
    </</span>bean>

这样这个service就可以使用了。

HSF的缺点是其要使用指定的JBoss等容器,还需要在JBoss等容器中加入sar包扩展,对用户运行环境的侵入性大,如果你要运行在Weblogic或Websphere等其它容器上,需要自行扩展容器以兼容HSF的ClassLoader加载。 taobao有类似的其他框架Dubbo,介绍见。

和淘宝HSF相比,Dubbo的特点是什么?

1.  Dubbo比HSF的部署方式更轻量,HSF要求使用指定的JBoss等容器,还需要在JBoss等容器中加入sar包扩展,对用户运行环境的侵入性大,如果你要运行在Weblogic或Websphere等其它容器上,需要自行扩展容器以兼容HSF的ClassLoader加载,而Dubbo没有任何要求,可运行在任何Java环境中。

2.  Dubbo比HSF的扩展性更好,很方便二次开发,一个框架不可能覆盖所有需求,Dubbo始终保持平等对待第三方理念,即所有功能,都可以在不修改Dubbo原生代码的情况下,在外围扩展,包括Dubbo自己内置的功能,也和第三方一样,是通过扩展的方式实现的,而HSF如果你要加功能或替换某部分实现是很困难的,比如支付宝和淘宝用的就是不同的HSF分支,因为加功能时改了核心代码,不得不拷一个分支单独发展,HSF现阶段就算开源出来,也很难复用,除非对架构重写。

3.  HSF依赖比较多内部系统,比如配置中心,通知中心,监控中心,单点登录等等,如果要开源还需要做很多剥离工作,而Dubbo为每个系统的集成都留出了扩展点,并已梳理干清所有依赖,同时为开源社区提供了替代方案,用户可以直接使用。

4.  Dubbo比HSF的功能更多,除了ClassLoader隔离,Dubbo基本上是HSF的超集,Dubbo也支持更多协议,更多注册中心的集成,以适应更多的网站架构。

Dubbo在安全机制方面是如何解决的?
Dubbo主要针对内部服务,对外的服务,阿里有开放平台来处理安全和流控,所以Dubbo在安全方面实现的功能较少,基本上只防君子不防小人,只防止误调用。

Dubbo通过Token令牌防止用户绕过注册中心直连,然后在注册中心上管理授权。Dubbo还提供服务黑白名单,来控制服务所允许的调用方。

来自:http://blog.sina.com.cn/s/blog_4adc4b090102vvi3.html

分布式服务框架HSF学习 Dubbo VS HSF相关推荐

  1. hsf 架构_分布式服务框架HSF

    最近在读阿里巴巴中台战略思想与架构这本书,so和大家分享一些我get到的东东. HSF是阿里巴巴内部的分布式服务框架,这个大家都很熟悉了,先上一张HSF的工作原理图: 这个图说明了HSF框架中每个组件 ...

  2. 阿里巴巴分布式服务框架 Dubbo 团队成员梁飞专访

    专家访谈 目录(?)[-] 先来个自我介绍吧! Dubbo是什么?能做什么? Dubbo适用于哪些场景? Dubbo的设计思路是什么? Dubbo的需求和依赖情况? Dubbo的性能如何? 和淘宝HS ...

  3. (转)阿里巴巴分布式服务框架 Dubbo 团队成员梁飞专访

    Dubbo是阿里巴巴内部的SOA服务化治理方案的核心框架,每天为2000+ 个服务提供3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点.Dubbo自2011年开源后, ...

  4. 团队成员梁飞专访:阿里巴巴分布式服务框架Dubbo

    Dubbo是阿里巴巴内部的SOA服务化治理方案的核心框架,每天为2000+ 个服务提供3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点.Dubbo自2011年开源后, ...

  5. 分布式服务框架学习笔记2 常用的分布式服务框架 与 通信框架选择

    传统垂直架构改造的核心就是要对应用进行服务化,服务化改造使用到的核心技术就是分布式服务框架. 分布式服务框架演进 应用从集中式走向分布式 大规模系统架构的设计一般原则就是尽可能地拆分,以达到更好的独立 ...

  6. 阿里分布式服务框架Dubbo的架构总结

    Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服务模型的角度来看,Dubbo采用的是一种非常简单的模 ...

  7. 分布式服务框架-原理与实践:14---流量控制-学习笔记(理论篇)

    2019独角兽企业重金招聘Python工程师标准>>> 上次学了灰度发布,这次我们学习流控. ============================================ ...

  8. Dubbo分布式服务框架简介

    概览 Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点:        自开源后,已有不 ...

  9. 分布式服务框架Dubbo使用小结

    介绍: Dubbo是一个被国内很多互联网公司广泛使用的开源分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA 服务治理方案,每天为2,000+个服务提供3,000,000,0 ...

最新文章

  1. MySql中管理百万级要注意些什么东西(转载)
  2. Android 移植到 C#
  3. 百度AI原生云实践: 基于容器云打造 AI 开发基础设施
  4. Java栈 Stack
  5. react 数字转字符_深入浅出 React -- JSX
  6. ::selection
  7. 智能会议系统(16)---LinphoneService
  8. android图片 垂直排列,Android图片切换特效示例:水平百叶窗、垂直百叶窗、马赛克...
  9. sql注入python编程_Python编写SQL注入工具(2)
  10. 波士顿房价数据分析(R语言)
  11. iOS原生二维码扫描白屏问题
  12. Ajax-ajax实例2-根据邮政编码获取地区信息
  13. powershell免杀思路分析(过某60和某绒)
  14. 纠正你读错的电脑英文词汇(程序员真的可以看看)
  15. distill论文总结(未待续)
  16. 运行 python manage.py runserver
  17. 移动机器人控制软件的设计与实现
  18. ie浏览器下载rar文件,变成do文件
  19. MATLAB读取TECPLOT笛卡尔网格三维流场数据
  20. java课程设计-文本编辑器

热门文章

  1. 在安卓手机安装Linux
  2. TransE模型的python代码实现
  3. 根据火车的出发时间和到达时间,编写程序计算整个旅途所用的时间。
  4. docker多容器操作与强制删除容器的方法步骤
  5. 《Java SE实战指南》09-01:访问级别修饰符概述
  6. 7款经典的MySQL客户端软件
  7. ${} 与 #{} 区别
  8. Android中给定一个日期判断是周几.
  9. Android混淆大法
  10. Spark RDD distinct 算子