最近在读阿里巴巴中台战略思想与架构这本书,so和大家分享一些我get到的东东。

HSF是阿里巴巴内部的分布式服务框架,这个大家都很熟悉了,先上一张HSF的工作原理图:

这个图说明了HSF框架中每个组件在整个框架中扮演的角色,下面分别介绍下:

(1).服务节点对配置服务器列表的获取。伴随着web容器的启动,服务提供者和服务调用者向地址服务器获取配置服务器和Diamond服务器的ip列表信息,过程见上图的1、2步骤。

(2).服务的注册发布。服务提供者获取配置服务器列表后,将服务的相关信息(接口类全名、服务版本等)包含当前服务器的ip地址、端口等信息注册到配置服务器,即上图的3步骤。

(3).服务的订阅。当服务调用者的应用启动并获取配置服务器列表后,发送服务消费的相关信息(服务接口全名、服务版本等)到配置服务器订阅,然后配置服务器会通过“服务接口全名+服务版本”作为条件在内存中搜索,一旦获取到服务注册信息,就将对应的服务提供者的ip和端口发送到服务调用者的节点上,即上图的4 、5步骤。

(4).服务规则推送(如果需要)。如果对服务安全管控和流量控制有需求时,可以通过Diamond服务器提供规则设置界面,对指定的服务提供者和服务调用者设置相关规则,规则保存后,会在5秒内推送到与设置相关的服务器节点上。

(5).服务交互。在应用进行业务请求处理过程中,出现服务调用者对服务提供者的调用时,服务调用者会从已经保存在该应用节点上的服务提供者服务器列表里选择(阿里巴巴内部使用随机模式)其中一台服务进行请求的发送,服务交互期间是调用者和提供者两台服务器间的调用,无需通过中间别的服务器,这就是称为“去中心化”的主要原因,即上图中的步骤7

接下来具体介绍HSF框架的高效交互、高可用性和扩展能力。

1.HSF框架的采用Netty+Hession数据序列化协议实现服务交互

HSF采用网络通信框架Netty+Hession数据序列化协议实现服务间的调用,主要考虑点在大并发量时,服务的交互性达到最佳。这类RPC协议采用多路复用的TCP长连接方式,即在服务调用者和服务提供者之间有多个服务请求同时调用时会共用一个长连接,一个长连接交替传输不同请求的字节块。它既避免了反复建立连接开销,也避免了连接的等待闲置从而减少了系统的连接总数,同时还避免了TCP顺序传输中的线头阻塞问题。

2.HSF框架的容错机制

为了保证服务的高可用性,在生产环境中相同的服务往往会有很多个应用实例来提供服务,在进行服务调用时,服务调用者端已经保存了它需要调用的服务的服务器列表信。假如有三台服务器提供了相同的服务,当采用随机方式获取其中一台进行服务交互时,不论这台服务器已经发生故障无法回应请求,还是该服务器已经接收了请求,在服务请求处理过程中出现了服务器故障(宕机、网络问题)造成该服务器没有在规定的时间(一般服务调用会设置超时时间)内返回处理结果,则服务调用端会获取服务调用失败的反馈,会立即从剩下的两台机器中选择一台进行服务调用。从而保证了个别服务提供者出现问题,完全不影响该服务提供正常的服务。因为配置服务器是采用长连接的方式与服务器节点进行通信,一旦发现有服务实例出现故障,此时会将这台服务器提供者的信息从服务器的服务列表中删除,然后将更新后的服务列表以推送的方式同步给予该服务相关的所有服务调用者端,这样当下次进行服务调用时,就不会因为随机而对已经停止提供服务的服务器发送请求。

3.HSF框架的线性扩展支持


HSF最为重要的一个特性就是服务能力的可扩展性,真正做到某个服务的业务处理能力随着服务器资源的增加得到线性的增长。基于HSF框架的运行机制,面对超级大的服务调用压力时,新增的服务提供实例(即增加一台服务器)可在几秒内(完成服务的注册发布、更新后的服务列表推送到服务调用端)开始进行服务请求处理,达到分担其他服务器实例压力的作用,实现服务能力整体水位恢复到正常的状态。据说双十一的时候阿里的多个服务中心所部署的服务实例节点数量超过2000个,即同一个服务由超过2000个服务实例同时提供负载均衡的服务。w(゚Д゚)ww(゚Д゚)w

分布式服务框架HSF的更多相关文章

  1. 阿里巴巴分布式服务框架HSF

    HSF称之为高速服务框架HSF(High-speed Service Framework),是在阿里巴巴广泛使用的分布式RPC服务框架. HSF连通不同的业务系统,解耦系统间的实现依赖.HSF从分布式 ...

  2. 分布式服务框架HSF学习

    HSF提供的是分布式服务开发框架,taobao内部使用较多,总体来说其提供的功能及一些实现基础:1.标准Service方式的RPC  1).Service定义:基于OSGI的Service定义方式  ...

  3. 分布式服务框架选型:面对Dubbo,阿里巴巴为什么选择了HSF?

    转载:http://www.sohu.com/a/141490021_268033 阿里巴巴集团内部使用的分布式服务框架 HSF(High Speed Framework,也有人戏称“好舒服”)已经被 ...

  4. 003-读书笔记-企业IT架构转型之道-阿里巴巴中台战略思想与架构实战-分布式服务框架的选择

    3.1.淘宝平台“服务化”历程 大约2007年,淘宝500人团队,维护一个war包,200多个功能模块. 1)项目团队协同成本高,业务响应越来越慢 2)应用复杂度超出人的认知负载. 3)错误难于隔离[ ...

  5. 阿里巴巴分布式服务框架 Dubbo 介绍

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

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

    原文链接:http://www.iteye.com/magazines/103   Dubbo是阿里巴巴内部的SOA服务化治理方案的核心框架,每天为2000+ 个服务提供3,000,000,000+ ...

  7. 微软开源 WCF 分布式服务框架,并入 .NET 基金会项目

    微软北京时间2015.5.20 在其 .NET Foundation GitHub 开源项目页中开放了 WCF 分布式服务框架的代码.WCF突然之间成为一个热门话题,在各大网站上都有不同的报道:dot ...

  8. 使用dubbo分布式服务框架发布服务及消费服务

    什么是DUBBO DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案. 准备工作 安装zookeeper ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服 ...

  9. 阿里巴巴分布式服务框架dubbo学习笔记

    Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的 ...

随机推荐

  1. HIVE和HADOOP的一些东西

    今天刚上班就要更新一个hive表(新年好呀我想说...),由于建立的外表直接替换hdfs文件就行了,但是替换完发现少了二行数据,原来之前做了关联,这就要用到hive的insert了! 先来说一下hiv ...

  2. for语句 2017-03-17

    一.for语句 For(初始条件:循环条件:状态改变) { 循环体 } 步骤: 1.  先判断条件 2.  如果满足条件,执行循环体 3.  状态改变 例题: 1. i++和++i 的区别: var ...

  3. 什么是IPFS?(三)

    前两篇介绍了IPFS的基本概念, 那么IPFS都可以用来做什么? 如果你认为仅仅是CDN, 永久的web? Are you kidding me ? IPFS可是要 --改变世界的... --变世界的 ...

  4. 使用枚举enum

    枚举可以把常量按照类别组织起来, 并且提供了构造方法和其他访问方法 用法: package com.nel.testPro.useage.use_enum; public enum Color imp ...

  5. Access第一周总结

    数据库[DataBase]是存放数据的仓库,是长期存在计算机的,有组织的.大量的.可共享的数据集合:数据模型的概念有:实体[Entity].属性[Attribute].关键字[Key].域[Domai ...

  6. WebPack的安装

    一.前提因为webpack是一个基于node的项目,所以首先需要确保你的电脑里面已经安装了node.js,以及npm.在这里我使用的版本是:node:v5.8.0 ,npm:3.7.3,若是版本问题, ...

  7. WEB 表格测试点

    Web页面的表格测试点: 1.表格列名 2.表格翻页.表格跳转到多少页.最后一页.首页 3.表格每页显示的数据, 数据的排序 4.表格无数据 5.表格支持的最大数据量 6.表格中数据内容超长时,显示是 ...

  8. 使用SQLiteOpenHelper类对数据库简单操作

    实现数据库基本操作       数据库创建的问题解决了,接下来就该使用数据库实现应用程序功能的时候了.基本的操作包括创建.读取.更新.删除,即我们通常说的CRUD(Create, Read, Upda ...

  9. 多目标跟踪(MOT)论文随笔-SIMPLE ONLINE AND REALTIME TRACKING WITH A DEEP ASSOCIATION METRIC (Deep SORT)

    网上已有很多关于MOT的文章,此系列仅为个人阅读随笔,便于初学者的共同成长.若希望详细了解,建议阅读原文. 本文是tracking by detection 方法进行多目标跟踪的文章,在SORT的基础 ...

  10. beta冲刺5

    昨天的问题: 登陆页面的整合重新制作 各主机版本更迭 我的社团显示功能修改调整 主页的头部替换掉 +修复帖子无法显示内容的问题 +试着将邮箱等判定用正则表达式进行实时判定. 今天的完成: 主要是线下进 ...