HSF全称为High-Speed Service Framework,旨在为淘系的应用提供一个分布式的服务框架,HSF从分布式应用层面以及统一的发布/调用方式层面为大家提供支持,从而可以很容易的开发分布式的应用以及提供或使用公用功能模块,而不用考虑分布式领域中的各种细节技术,例如远程通讯、性能损耗、调用的透明化、同步/异步调用方式的实现等等问题。
作者 |郭浩 审校 |钰莹 Dubbo 和 HSF 都是阿里巴巴目前在使用的微服务 RPC 框架。HSF 在阿里巴巴使用更多,承接了内部从单体应用到微服务的架构演进,支撑了阿里历年双十一的平稳运行;Dubbo 则在 2011 年开源后,迅速成为业界广受欢迎的微服务框架产品,在国内外均有着广泛应用。 自 2008 年 5 月发布第一个版本 1.1 后,经历数年迭代,HSF 从一个基础的 RPC 框架逐渐演变成为日支撑十万亿级别调用的易于扩展的微服务框架。内部场景中,用户既可以选择少量配置轻松接入微服务体系,获
最近leader给了KingYiFan一个任务,就是对接某国企的业务,人家用的淘宝的HSF框架RPC通信 根本不用httpclient what??? RPC不是Dubbo底层协议吗?这怎么通讯呢?翻遍了整个百度没有我想要的。 有一个大佬人家自己封装了一个RPC通讯含监控中心(积分下载的)需要联系我哈。
EDAS支持语言Java,C++,PHP。EDAS支持Idea,Eclipse;Eclipse插件安装等编译工具。EDAS初级版仅支持应用的部署管理,不支持HSF功能。EDAS基础版不支持RPC框架。 EDAS提供高性能的RPC框架,能构建高可用的分布式系统,考虑各个应用之间的分布式服务发现、服务路由、服务调用以及服务安全等细节。EDAS能单独部署到公司内网(轻量配置中心)。 EDAS HSF服务框架保证用户每次分布式调用的稳定与安全。在服务注册、服务订阅以及服务调用等环节都进行严格的服务鉴权。 HSF设置超时时间 : 通过HSF标签methodSpecials和clientTimeout进行配置,优先级由高到低是 : 客户端methodSpecials>客户端clientTimeout>服务端methodSpecials>服务端clientTimeout EDAS控制台域名 : https://edas.console.aliyun.com EDAS控制台提供日志浏览功能,可查看服务器上所部署的应用运行日志。收敛日志用于将单个应用中类似格式的日志合并和排序。收敛日志配置后需要等待大概5分钟才能生效。 EDAS安装轻量配置中心 : 启动配置中心将会占用此台机器的8080和9600端口,需要在hosts中添加 {轻量配置中心公网 ip} jmenv.tbsite.net。如果此台机器是多网卡的,可启动脚本startup.bat或startup.sh中添加启动参数: -Daddress.server.ip={指定的 IP 地址};通过 -Dhsf.server.ip参数指定要注册服务的IP。 EDAS 服务限流的限流规则(限流规则仅适用于服务提供者)能够从QPS和线程两个维度进行配置。可进行HSF限流和HTTP限流。 EDAS 提供了从响应时间维度对降级规则(降级规则仅仅适合服务消费者)的配置。 EDAS 鹰眼监控系统能够分析分布式系统的每一次系统调用、消息发送和数据库访问。主要包括应用拓扑(可查看调用拓扑和流量QPS),调用链查询(可查看慢业务和出错业务),调用链详情(基于TraceId查询)。 EDAS 提供报警功能,但目前只有短信与邮件通知的方式,报警联系人只能是主账号或者子账号。 EDAS 的应用主要分为两种类型:中间件服务化应用(JAR/WAR包类型的普通应用和Docker应用)和 Kubernetes 应用。Kubernetes应用只支持VPC网络。 EDAS 的应用部署类型有两种 : ECS独占实例(在一台独立的ECS机器上,仅允许部署单独一个应用),Docker实例(单个应用在同一ECS上只能部署一个实例),所以一台ECS可以部署多个实例。 EDAS 能够针对应用的服务调用情况,对服务的QPS、响应时间(RT)和出错率进行全方面的监控。 EDAS 能够针对应用的运行状态,对机器的CPU、内存、负载(Load)、网络和磁盘等基础指标进行详细的监控。EDAS还提供容器监控功能(应用诊断)。基础监控(可提供以应用为维度的数据)面向的是机器,容器监控面向是应用所在的容器。基础监控存在时延,容器监控基本是实时的。 EDAS 提供弹性伸缩功能来根据集群内服务器的CPU、RT和Load三个指标实现自动的扩容或者缩容。 EDAS 对应用的生命周期管理,包括创建、部署、启动/停止和删除(应用删除不可恢复)。可设置JVM参数,Tomcat参数,可对应用的实例分组(可按分组部署应用,添加实例到分组),可配置负载均衡。可配置健康检测URL。 EDAS 包含两种集群:Swarm(部署普通应用和Docker应用)和Kubernetes集群(部署Kubernetes应用)。 EDAS 的配置推送分为全局配置推送和应用内部的配置推送。全局配置推送能操作该用户的所有配置信息,应用内的配置推送只能操作该应用所属的配置信息。一个配置信息由三元组(group、DataId、Content)组成。 EDAS 提供主子账号体系,付费账号都是主账号(拥有EDAS所有资源,所有权限),但不是所有的主账号都是付费账号。1个付费账号最多能绑定5个主账号。RAM子账号由主账号在RAM系统中创建,子账号名要在主账号内唯一。RAM账号有两种授权方式 : RAM授权,EDAS授权(两种方式互斥,有了RAM授权,那么就不能在EDAS中授权),主账号可以对绑定的子账号(用户)进行权限分配、资源分配等。应用的授权只能是主账号对子账号进行授权。 EDAS 的资源主要是指云服务器ECS(Elastic Compute Service)、负载均衡SLB(Server Load Balancer)、专有网络VPC(Virtual Private Cloud)这三类。 VPC环境调用链和监控数据需要有访问请求流量才会产生,如果无客户访问网站,
一家小超市,一个收银员,同时还兼着干点其他的事情,例如,打扫卫生、摆货。来买东西的人多起来了,排队很长,顾客受不了,于是增加了一个收银台,雇了一个收银员。忙的时候收银员根本没时间去打扫卫生,超市内有点脏,于是雇了一个专门打扫卫生的。随着顾客不断增加,超市也经过好几次装修,由以前的一层变成了两层,这个时候所做的事情就是不断增加收银台、收银员和打扫卫生的人。在超市运转的过程中,老板发现一个现象,有些收银台排很长的队,有些收银台排的人不多,了解后知道是因为收银台太多了,顾客根本看不到现在各个收银台的状况。对于这个现象,一 种简单的方法就是继续加收银台。但一方面,超市没地方可加收银台了,另一方面,作为老板,当然不需要雇太多的人,于是开始研究怎样让顾客了解到收银台的状况,简单地加了一个摄像头和一个大屏幕,在大屏幕上显示目前收银台的状况,这样基本解决了这个问题。排队长度差不多后,又出现了一个现象,就是有些收银台速 度明显比其他的慢,原因是排在这些收银台的顾客买的东西特别 多,于是又想了一招,就是设立专门的10件以下的通道,这样买 东西比较少的顾客就不用排太长的队了,这一招施展后,顾客的满意度明显提升,销售额也好了不少,后来就继续用这招应对团购状况、VIP 状况。在解决了上面的一些烦心事后,老板关注到了一个存在已久的现象,就是白天收银台很闲,晚上则很忙,于是从节省成本上考虑,决定实行部分员工只在晚上上班的机制,白天则关闭一些收银台,顾客仍然可以通过大屏幕看到哪些收银台是关闭的,避免走到没人的收银台去,实行这招后,成本大大降 低了。 这个生活中的例子及其解决的方法,其实和互联网网站发展过程中的一些技术是非常类似的,只是在技术层面用其他名词来 表达了而已,例如,有集群、分工、负载均衡、根据QoS分配资 源等。
本文整理了阿里13个开源中件间产品的架构及功能介绍,结合阿里中间件团队的访谈及分享,涵盖了消息中间件、服务框架、数据层、应用服务器和大规模分布式稳定性平台等等。整体中间件在阿里生态中的分布,如下图所示:
梁飞在 2011 年开源 Dubbo 这个项目的时候,完全没有想过,Dubbo 这个名字,最后会变成一个 Apache 的商标,会成为一个在 GitHub 上有 2 万多人关注、一百多人参与贡献的超级项目。在自己退出这个项目多年后,Dubbo 仍在野蛮生长,并焕发新机。
Apache Dubbo™ 是一款高性能Java RPC框架。说起dubbo,国内开发者几乎都知道它的大名,既然现在的dubbo很流行,那么让我们回顾下过去的dubbo吧,一起看下dubbo的发展历程:
Flutter+Serverless三端一体研发架构,客户端不仅仅是编写双端的代码,而是扩展了客户端的工作边界,形成完整的业务闭环。在新的研发模式落地与实践的过程中,一直在思考如何提高FaaS端研发体验与研发质量,以下是落地过程中遇到的问题。
比如早期一个应用Java War包,将所有功能都打包,部署在一个单机服务器,调用接口也比较方便,不涉及到任何分布式场景。
5.java电商网站,数据库分读写,解决高并发读写的问题,master和slave流量的问题。
Wireshark是排查网络问题最常用的工具,它已经内置支持了上百种通用协议,同时它的扩展性也很好,对于自定义的应用层网络协议,你可以使用c或者lua编写协议解析插件,这样你就可以在Wireshark中观察到协议的内容而不是二进制流,为排查问题带来一定的便利性。
热休克因子1(HSF1)在癌症的启动、发展和进展中发挥了重要作用,但目前还没有对HSF1的泛癌分析。
导读:在所有的开发测试中,接口测试是必不可少的一项。有效且覆盖完整的接口测试,不仅能保障新功能的开发质量,还能让开发在修改功能逻辑的时候有回归的能力,同时也是能优雅地进行重构的前提。编写接口测试要遵守哪些原则?测试代码的结构应该是什么样的?接口测试有哪些实践技巧?本文分享作者在接口测试上的实践总结。
测试工程师是一个高技术含量的岗位,但现在不少人误以为测试工程师就是“点工”,拿到软件“点点点”,就可以完成测试了,没啥技术含量,而一些测试工程师错误的工作方法也滋长了这种误解。
嗯,前面呢,《快手一面》的时候也大部分都是Java常见的八股文,但是问的还是挺深的。
服务治理可以说是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册和发现。
HSF2作为转录因子,通过调节各种靶基因和信号通路,在皮质生成和精子生成中起重要作用。然而,HSF2与肿瘤的相关性仍然未知。
我小时候就很喜欢看书,也喜欢买书。书就像是我的朋友,不管去任何地方,只要拿本书在手心里,就觉得有安全感。
声明:主要内容来自公司内部 对业界的调研,不一定恰当、准确、实时。 表格文字较多,APP阅读体验较差 团队 服务相关组件\方案 通信框架 监控 负载均衡\路由 是否开源 腾讯 完全自研;BG内部自治,每个BG有自己相应的解决方案,单独演进; 包括:服务注册路由中心;流量定义ABTesting方案;日志分布式收集;配置中心等没有公司级的服务治理组织去统一 各个BG也不一样技术工程TEG\原搜索:自定义二进制协议编解码,或Protocol Buffer(以下简称PB)进行序列化\反序列化,自研服务容器、
Dubbo是阿里巴巴在2012年开源的分布式服务治理框架,不仅是阿里巴巴在开源领域最出名的项目,也应该算称得上是国内影响力最大的开源大作。可是大家有所不知,阿里内部实际上都在使用另一个RPC框架叫HSF(Dubbo和HSF的开发团队是同一拨人马,造轮子狂热症患者),Dubbo这些年浮浮沉沉,也曾经一度停止了更新,而随着18年Dubbo3.0的强势推进,相信这个大版本中Dubbo会充分借鉴HSF在超高并发场景下积累的经验。
今天刚好群里有朋友在问,你们为什么开源了 Apache Dubbo,你们内部是不是有更好的闭源的实现吖?看过《淘宝技术这十年》的小伙伴都知道,内部其实很多部门都在使用一个叫 HSF(High Speed Framework) 的 RPC 框架,江湖人称 "好舒服"。
昨天躺在床上刷知乎,看见一个问题:“中国有哪些顶级水平的程序员?” 引起了我的注意,看了下现在已经超千万浏览了。 其实谈起中国顶尖的程序员,大多数人首先会想到之前的雷军雷布斯,微信的张小龙,还有现在的多隆、行癫、道哥等人,但今天我想聊一聊的这位大神,他的技术成就也同样令人瞩目。 19 年获得国家技术发明二等奖、20 年获得国家计算机协会颁发的“ CCF 杰出工程师奖”,曾带领淘宝完成了由 3.0 向 4.0 的电商架构的升级,江湖人称“毕大师”,他就是前阿里 P10 ——毕玄。 说毕大师是我佩服的 t
谈起中国顶尖的程序员,很多人首先会想到之前的雷军、张小龙,还有现在的多隆、行癫、道哥等人,但今天我想聊一聊的这位大神,他的技术成就也同样令人瞩目。 19 年获得国家技术发明二等奖、20 年获得国家计算机协会颁发的“ CCF 杰出工程师奖”,曾带领淘宝完成了由 3.0 向 4.0 的电商架构的升级,撑下了如今的亿级并发,江湖人称 “毕大师” ,他就是前阿里 P10 ——毕玄。 说毕大师是 top 级大神,真不是夸张,看他的经历就知道。他早在 07 年就加入了阿里,一上来就从 0 开始做了 HSF ,这个到现在
9月份的时候,我接到了大量的提问。其中大部分是围绕 Spring Boot、Spring Cloud、Dubbo、Zookeeper、Redis,而这些问题直接问到我怀疑人生。忍不住在想自己是不是一个 Java 后台开发,为什么拥有多年的工作经验却无法进行问题回答。
在上一篇文章一篇文章搞懂RabbitMQ 延迟消息中作者详细介绍了RabbitMq实现延迟消息队列的两种方式:
2019年我们经历了一整年的各种迁移,其中包括了一项RPC框架的切换。以前我们用的HSF RPC框架,它是来自于阿里巴巴,经过了多年的双11高并发的洗礼,高性能这块儿毫无疑问没有任何的问题,而且它还同时支持TCP与HTTP的方式,唯一不太好的就是它不开源,如果出现问题定位起来确实有一些问题与风险。
2007年,淘宝已经拥有超过500人的技术团队规模,整个淘宝网站是一个几百兆字节的WAR包,大小功能模块超过200个。
“没有最好的技术,只有最合适的技术。”我想这句话也同样适用于微服务领域,没有最好的服务框架,只有最适合自己的服务改造。在Dubbo的未来规划中,除了保持自身技术上的领先性,关注性能,大流量,大规模集群领域的挑战外,围绕Dubbo核心来发展生态,将Dubbo打造成一个服务化改造的整体方案也是重点之一。这是我们将推出“服务化改造”系列文章的第二篇,通过在一些外围系统和服务化基础组件上的开发实践,分享Dubbo生态下的服务化改造收获和总结。
杨净 梦晨 发自 凹非寺 量子位 | 公众号 QbitAI 一项关于减肥的研究,怎么就能登上Cell封面了?! 还是中国团队出品。 据华东师大官方消息,他们解锁了局部热疗减肥法背后的基因机制,目前已被选为封面文章。 此消息一出,瞬间引爆全网热议,直接冲上热搜,阅读量达1.3亿。 有网友激动表示,泡澡减肥法终于有了科学依据! 还有暖宝宝、艾灸、汗蒸,甚至热水袋是不是可以整起来了。 但桥豆麻袋,真的是这样子吗? 不急着下结论,先看看论文本身说的是什么。 破解局部热疗减脂机制 简单来说,这篇论文验证的是“
Dubbo 自 2011 年 10 月 27 日开源后,已被许多非阿里系的公司使用,其中既有当当网、网易考拉等互联网公司,也不乏中国人寿、青岛海尔等大型传统企业。更多用户信息,可以访问 Dubbo @GitHub,issue#1012: Wanted: who's using dubbo。
学习是一件需要长期投入的事情,尤其是在当下大环境恶劣的背景下,我们程序员必须要多多的投资自己,去加强自己的技术硬实力和软实力。
首先本文仅作为笔者在做一些调研之后的总结,仅提供思路,不提供源码,所以如果是想直接冲着源码来的,可以跳过此文。如果后续有机会将项目开源出来,会第一时间写新文章讲解实线细节。
API 接口协议繁多,不同的协议有着不同的使用场景。70% 互联网应用开发者日常仅会接触到最通用的 HTTP 协议,相信大家希望了解更多其他协议的信息。我们今天会给大家介绍各种 API 接口主流协议和他们之间的关系。
2018年2月9日,Apache 基金会的邮件列表上发起了讨论是否接纳阿里的 Dubbo 项目进入 Apache 孵化器的投票。
监控一直是服务端掌握应用运行状态的重要手段,经过近几年的发展,阿里虾米服务端目前已经有 100 多个 Java 应用,承担核心业务的应用也有将近 50 个,对于应用的监控配置也是因人而异。有的人配置的监控比较细,有的应用在经历了多人开发阶段以后,监控就逐渐疏于管理,有些应用的监控项最后修改时间只停留到 2 年以前,早已不适应业务的发展。
一,应用无状态(淘宝session框架) 俗话说,一个系 统的伸缩性的好坏取决于应用的状态如何管理。为什么这么说呢?咱们试想一下,假如我们在session中保存了大量与客户端的状态信 息的话,那么当保
现如今都流行大前端开发,所谓的大前端就是,将后端的传统的MVC(model、view、controler)中的view和controler给接过来。 将view接过来这个没什么问题,最近的vue、react等框架,以前的静态html页面,ftl模板等都是干这种事情的,没什么好说。 但是,如果要将controler给接过来,就有些麻烦了。 最直接的问题就是需要搞定服务器内部服务之间的通讯
Dubbo 自 2011 年 10 月 27 日开源后,已被许多非阿里系的公司使用,其中既有当当网、网易考拉等互联网公司,也不乏中国人寿、青岛海尔等大型传统企业。
Dubbo 自 2011 年 10 月 27 日开源后,已被许多非阿里系的公司使用,其中既有当当网、网易考拉等互联网公司,也不乏中国人寿、青岛海尔等大型传统企业。更多用户信息,可以访问Dubbo @GitHub,issue#1012: Wanted: who's using dubbo。
本篇介绍企业应用架构的基本模式之一分离接口(Separated Interface)模式。这个模式比较常见,相信我们在应用中已经用过很多次了,甚至在一些架构中成了应用标准,不管用不用得到。
俗话说,一个系 统的伸缩性的好坏取决于应用的状态如何管理。为什么这么说呢?咱们试想一下,假如我们在session中保存了大量与客户端的状态信 息的话,那么当保存状态信息的server宕机的时候,我们怎么办?通常来说,我们都是通过集群来解决这个问题,而通常 所说的集群,不仅有负载均衡,更重要的是要有失效恢复failover,比如tomcat采 用的集群节点广播复制,jboss采 用的配对复制等session状 态复制策略,但是集群中的状态恢复也有其缺点,那就是严重影响了系统的伸缩性,系统不能通过增加更多的机器来达到良好的水平伸缩!
极简教程,五分钟快速入门之netty,搭配后面netty实战以及netty源码分析
RPC(Remote Procedure Call)即远程过程调用,允许一台计算机调用另一台计算机上的程序得到结果,而代码中不需要做额外的编程,就像在本地调用一样。
RPC(Remote Procedure Call)是指远程过程调用,是一种进程间通信方式,他是一种技术的思想,而不是规范。它允许程序调用另一个地址空间(通常是共享网络的另一台机器)的过程或函数,而不是程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的函数,本质上编写的调用代码基本相同
我们在日常分析中,有时会比较不同物种间motif序列结构的保守性。今天小编教大家使用R包“ motifStack ”绘制美观的motif序列结构图!
云原生时代的微服务又有什么特点?当前有哪些比较活跃的微服务项目?阿里巴巴资深技术专家李响从微服务的生命周期、流量治理、编程模型以及可信安全4个方面,分享他对微服务与云原生之间的关系的理解。 云原生时代
在企业的业务发展到一定程度的时候,企业内部的系统总会进行这样或者那样的系统切分。那么这会导致一个什么问题呢?原来直接通过直接本地调用方式的功能,已经无法正常工作了,因为物理上或者逻辑上已经隔离了。切分应用分别部署一般来说有四种方式。 1、同一主机不同端口。 2、同一主机跨虚拟机或者跨 Docker 容器。 3、跨主机同一内网 4、跨主机跨网络。 这就使得不论是从逻辑还是从物理上隔离,都使得远程调用尤为重要。现在最常用的就四大类。 1、SpringCloud系列,以 RESTful API 为首的 HTTP
Martin Flower定义的微服务是基于REST,Spring cloud就是其标准的实现,通用但HTTP协议比较冗余,短连接建立也较耗时,消息体一般基于JSON串行化反串行化, 性能肯定一般。
领取专属 10元无门槛券
手把手带您无忧上云