Dubbo,阿里巴巴战略选择分析为什么选择了 HSF

阿里巴巴分布式服务框架 Dubbo 团队成员梁飞专访 - 名家访谈 - ITeye精华
相关知识库:
Dubbo是阿里巴巴内部的SOA服务化治理方案的核心框架,每天为2000+ 个服务提供3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。Dubbo自2011年开源后,已被许多非阿里系公司使用。
项目主页:
为了使大家对该框架有一个深入的了解,本期我们采访了Dubbo团队主要开发人员之一。
ITeye期待并致力于为国内优秀的开源项目提供一个免费的推广平台,如果你和你的团队希望将自己的开源项目介绍给更多的开发者,或者你希望我们对哪些开源项目进行专访,请告诉我们,发站内短信给或者发邮件到即可。
先来个自我介绍吧!
我叫梁飞,花名虚极,之前负责Dubbo服务框架,现已调到天猫。
我的博客:
Dubbo是什么?能做什么?
Dubbo是一个分布式服务框架,以及SOA治理方案。其功能主要包括:高性能NIO通讯及多协议集成,服务动态寻址与路由,软负载均衡与容错,依赖分析与降级等。
Dubbo适用于哪些场景?
当网站变大后,不可避免的需要拆分应用进行服务化,以提高开发效率,调优性能,节省关键竞争资源等。
当服务越来越多时,服务的URL地址信息就会爆炸式增长,配置管理变得非常困难,F5硬件负载均衡器的单点压力也越来越大。
当进一步发展,服务间依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整的描述应用的架构关系。
接着,服务的调用量越来越大,服务的容量问题就暴露出来,这个服务需要多少机器支撑?什么时候该加机器?等等……
在遇到这些问题时,都可以用Dubbo来解决。
Dubbo的设计思路是什么?
该框架具有极高的扩展性,采用微核+插件体系,并且文档齐全,很方便二次开发,适应性极强。
Dubbo的需求和依赖情况?
Dubbo运行JDK1.5之上,缺省依赖javassist、netty、spring等包,但不是必须依赖,通过配置Dubbo可不依赖任何三方库运行。
Dubbo的性能如何?
Dubbo通过长连接减少握手,通过NIO及线程池在单连接上并发拼包处理消息,通过二进制流压缩数据,比常规HTTP等短连接协议更快。在阿里巴巴内部,每天支撑2000多个服务,30多亿访问量,最大单机支撑每天近1亿访问量。
和淘宝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还提供服务黑白名单,来控制服务所允许的调用方。
Dubbo在阿里巴巴内部以及外部的应用情况?
在阿里内部,除淘系以外的其它阿里子公司,都在使用Dubbo,包括:中文主站,国际主站,AliExpress,阿里云,阿里金融,阿里学院,良无限,来往等等。
开源后,已被:去哪儿,京东,吉利汽车,方正证劵,海尔,焦点科技,中润四方,华新水泥,海康威视,等公司广泛使用,并不停的有新公司加入,社区讨论及贡献活跃,得到用户很高的评价。
在分布式事务、多语言支持方面,Dubbo的计划是什么?
分布式事务可能暂不会支持,因为如果只是支持简单的XA/JTA两阶段提交事务,实用性并不强。用户可以自行实现业务补偿的事件,或更复杂的分布式事务,Dubbo有很多扩展点可以集成。
在多语言方面,Dubbo实现了C++版本,但在内部使用面极窄,没有得到很强的验证,并且C++开发资源紧张,没有精力准备C++开源事项。
Dubbo采用的开源协议?商业应用应该注意哪些事项?
Dubbo采用Apache License 2.0开源协议,它是一个商业友好的协议,你可以免费用于非开源的商业软件中。
你可以对它进行改造和二次发布,只要求保留阿里的著作权,并在再发布时保留原始许可声明。
Dubbo开发团队情况?
Dubbo共有六个开发人员参与开发和测试,每一个开发人员都是很有经验,团队合作很默契,开发过程也很有节奏,有完善质量保障流程。团队组成:
梁飞 (开发人员/产品管理)
刘昊旻 (开发人员/过程管理)
刘超 (开发人员/用户支持)
李鼎 (开发人员/用户支持)
陈雷 (开发人员/质量保障)
闾刚 (开发人员/开源运维)
从左至右:刘超,梁飞,闾刚,陈雷,刘昊旻,李鼎
可参见:
其他开发者如何参与?可以做哪些工作?
开发者可以在Github上fork分支,然后将修改push过来,我们审核并测试后,会合并到主干中。
Github地址:
开发者可以在JIRA上认领小的BUG修复,也可以在开发者指南页面领取大的功能模块。
JIRA:(暂不可用)
开发者指南:
Dubbo未来的发展计划?
Dubbo的RPC框架已基本稳定,未来的重心会放在服务治理上,包括架构分析、监控统计、降级控制、流程协作等等。
哈哈哈,看到一个很久未见的好哥们儿的照片了。。。。
majiashiweiyi 写道这个框架和淘宝的notify、Metamorphosis等消息中间件有什么区别呢。望楼主指点一下,谢谢了。notify是推模式的消息中间件。metaq是拉模式的消息中间件。dubbo是远程服务调用中间件。是互补的。请问一下什么是消息队列中间件的推模式和拉模式?
引用引用引用引用[*][/list][/list][/list]
majiashiweiyi 写道这个框架和淘宝的notify、Metamorphosis等消息中间件有什么区别呢。望楼主指点一下,谢谢了。notify是推模式的消息中间件。metaq是拉模式的消息中间件。dubbo是远程服务调用中间件。是互补的。该问题域有没有类似Dubbo的其他开源解决方案呢?
教程地址访问不了!已将wiki迁至Github,文中链接已更新
dubbo 主页 /wiki/display/dubbo/Home-zh& 现在访问不了么? 现在貌似访问不了,不知道是不是正在向淘宝的Taocode上迁移可以先访问这个
这个框架和淘宝的notify、Metamorphosis等消息中间件有什么区别呢。望楼主指点一下,谢谢了。notify是推模式的消息中间件。metaq是拉模式的消息中间件。dubbo是远程服务调用中间件。是互补的。
lection.yu 写道wmcoo 写道任何JAVA环境,GAE,BAE,SAE 可以用不hessian是可以在GAE下用的,其它没测试,应该也没问题楼主的Dubbo我不是很理解作用,您将Dubbo和Hessian进行对比,是不是Dubbo也是一个类似Hessian或者WebService的分布式框架,提供一种协议和交互API?但是描述中又是SOA又是二次开发什么的,好像不单纯只是一个分布式通讯那么简单。这个就是一个远程调用+负载均衡+路由规则的集合,和单纯的远程调用有差别。多谢指点,豁然开朗。我接触的软件,复杂程度还没有到内部服务的调用都需要到负载均衡的级别。
wmcoo 写道任何JAVA环境,GAE,BAE,SAE 可以用不hessian是可以在GAE下用的,其它没测试,应该也没问题楼主的Dubbo我不是很理解作用,您将Dubbo和Hessian进行对比,是不是Dubbo也是一个类似Hessian或者WebService的分布式框架,提供一种协议和交互API?但是描述中又是SOA又是二次开发什么的,好像不单纯只是一个分布式通讯那么简单。这个就是一个远程调用+负载均衡+路由规则的集合,和单纯的远程调用有差别。
惭愧。看了半天没弄清楚到底是怎么应用。公司的网站都是单机基本搞定的,需要集群也就是用Terracotter,部分应用抽离出来,比如上传文件接口等等,还没有需要分布式到太大地步的。这么复杂的东西,我确实不知道什么应用场景来使用。如果是单机就能搞定的就不要用了,不然只能适得其反还会引入很多麻烦
& 上一页 1
相关资源推荐Dubbo的文档迁移到:
浏览 59433
梁飞, http://alibaba.github.io/dubbo-doc-static/Home-zh.htm 上的资源都不能下载呀,比如那个管理控制台和控制中心/mvn/releases/com/alibaba/dubbo-demo-provider/2.4.1/dubbo-demo-provider-2.4.1-assembly.tar.gz。有没其他的地方可以下载呢,谢谢 可以下载源码/alibaba/dubbo/tree/master,然后再打包
& 上一页 1
浏览: 1139914 次
来自: 杭州699号
http://download.csdn.net/downlo ...
lua 能调用dubbo吗如果能有现成的框架或者包吗 ...
将自己写代码的感悟总结成行之有效的理论,再拿这套理论去审视自己 ...
能给我一份吗?
zzg16 写道
我下载下来了,重新分享了下,需要下载的朋友 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'当前位置:
微信扫一扫分享到朋友圈
阿里巴巴集团内部使用的分布式服务框架 HSF(High Speed Framework,也有人戏称“好舒服”)已经被很多技术爱好者所熟知,目前已经支撑着近 2000 多个应用的运行。其对应早期的开源项目 Dubbo(因为某些原因,Dubbo 项目在 2012 年年底,阿里巴巴就停止了对此开源项目的更新),则更是在互联网领域有着非常高的知名度和广泛的使用。本文通过对阿里巴巴 HSF 服务框架的介绍,让大家能对这类分布式服务框架架构设计、运行原理,以及如何实现作为一个 SOA 架构需要满足的各个特性有一个清晰的认识。HSF 服务框架主要组件1、服务提供者在服务框架中真正提供服务功能实现的应用实例,为了保障服务提供的高可用性,一般均是集群部署。每一个 HSF 的应用均是以 War 包的形式存在,运行在阿里巴巴优化定制后的 Tomcat 容器中,在 Tomcat 容器层已经集成了 HSF 服务框架对服务提供者或服务调用者进行配置服务器发现、服务注册、订阅、失效转移等相关功能,所以不管是在服务提供者还是调用者开发时,只需要进行服务相关的配置操作,应用中无需引入任何 HSF 相关的 Jar 依赖包。考虑到应用故障的隔离、更方便的服务管控,目前淘宝内部大部分应用的部署方式还是一个虚拟机(对应一个操作系统)运行一个 Tomcat 容器,每个 Tomcat 运行一个服务应用,随着近几年以 Docker 容器技术的发展和流行,现在阿里巴巴内部也正在进行应用容器化部署的工作,让服务器的资源利用更加科学和高效。2、服务调用者作为服务的消费者,大多数也是以 WAR 应用包的方式运行在 Tomcat 容器中,在阿里巴巴集团内部也有一部分是基于 C/C++、PHP、Node.js 等语言开发的服务调用者。3、地址服务器在 HSF 服务框架中,地址服务器肩负着给服务提供者和服务调用者提供部署环境中所有配置服务器和 Diamond 服务器的服务器列表信息,是由 Nginx( 是一个高性能的 HTTP 和反向代理服务器)提供该服务能力。在部署 HSF 服务环境时,会将整个环境中的配置服务器集群(服务器 IP 列表)和 Diamond 服务器集群信息设置在地址服务器上,在实际生产部署中,也会部署多台地址服务器提供负载均衡和高可用性的服务,服务提供者和调用者通过统一域名的方式访问这些地址服务器(比如“xxx.tbsite.net”),通过 DNS 轮询实现地址服务器访问的高可用性。4、配置服务器配置服务器在 HSF 框架中主要负责记录环境内所有服务发布(服务提供者的 IP 地址和服务端口信息)和服务订阅(服务调用者的 IP 地址和服务端口信息)信息,并将服务相关信息推送到服务节点上。为了追求服务发布和订阅的推送效率,所有的服务发布和订阅信息均是保存在内存中。配置服务器与所有服务者提供者和调用者均是长连接,采用心跳的方式可监控到各服务运行节点的状况,一旦出现服务提供者服务节点出现故障时,会自动推送更新后(将出问题的服务提供者服务节点信息从列表中删除)的服务提供者列表给相关的服务调用者端。在生产环境中,会部署多台配置服务器,用于服务发布、订阅、推送的负载均衡,在多台配置服务器间会进行实时的数据同步,保证服务发布和订阅信息尽快能同步到各服务节点上。某种程度上,配置服务器在 HSF 框架中扮演了服务调用调度的指挥官,通过给服务调用者端推送不同的服务提供者列表就可以轻易的调整服务调用的路由,这一特性在淘宝平台实现单元化(即某一客户在访问淘宝时,访问请求一旦路由到某一个淘宝机房后,在淘宝上进行的所有业务的操作均可以在该机房完成,而无需访问其他机房的服务,也是实现异地多活的基础)、异地多活起到了至关重要的作用。5、Diamond 服务器本质上,Diamond 服务器是一个通用的统一配置管理服务,类似 ZooKeeper,给应用提供统一的配置设置和推送服务,使用场景非常广泛,在阿里巴巴内部有很多的产品在需要进行配置的保存和获取时都会使用 Diamond 服务器。在 HSF 服务框架中,则主要承担了服务调用过程中对于服务调用安全管控的规则、服务路由权重、服务 QPS 阀值等配置规则的保存,所有的信息均是持久化保存到了后端的 MySQL 服务器中,在生产环境中,会有多台 Diamond 服务器提供负载均衡的服务。使用 Diamond 服务器进行服务相关设置的典型场景如下:通过设置白名单(服务调用者所在服务节点 IP 地址)的方式设置某些服务或服务中的方法只能让特定 IP 地址的服务器调用;通过用户认证的方式控制服务是否能够调用;按照不同的服务器权重设置服务调用者对多个服务提供者服务节点的访问;设置某些服务的 QPS 能力上限值,一旦该服务的 QPS 达到该阀值,则拒绝服务的继续调用,这也是实现服务限流的技术实现,在平台进行大促或秒杀场景时,保障平台的稳定的重要屏障。通过这样规则的设置,Diamond 除了将这些规则保存在自身的数据库中外,会自动将这些规则推送到相关的服务节点上(实际实现上是服务节点会定时从 Diamond 服务器上同步相关配置信息),使这些规则能立即在服务运行环境中生效。如图 3-5 所示是阿里巴巴 HSF 服务框架的工作原理,按照服务注册发布、服务订阅、服务规则推送、最终服务提供者和服务调用者间的服务交互的顺序说明了 HSF 服务框架中每个组件在整个框架中所扮演的角色。&图 3-5 HSF 服务框架工作原理示意图1)服务节点对配置服务器列表的获取。服务调用者和服务提供者在随着 Tomcat 容器启动后,会以域名(比如“xxx.tbsite.net”)的方式获取到可用的地址服务器,通过向地址服务器分别发送获取配置服务器和 Diamond 服务器服务 IP 列表请求的方式,在容器启动完成后,就已经在该服务节点上获取到了配置服务器和 Diamond 服务器的 IP 列表信息。整个过程如图 3-5 中的步骤①②。2)服务的注册发布。作为服务提供者,当获取到配置服务器的服务器列表后,则向配置服务器发送当前应用中包含的服务提供者相关信息(这些信息均是从应用的配置文件中获取到,比如服务的接口类全名、服务版本、所属服务组等信息),联同当前服务器的 IP 地址、服务端口等信息进行服务注册发布,如图 3-5 中的步骤③。这个步骤在每一个有服务提供的应用启动时都会自动执行,比如现在有 5 个提供同一服务的应用启动后,此时在配置服务器上就已经保存了提供这一服务的 5 个服务器相关信息。3)服务的订阅。当作为服务调用者的应用启动时,同样在完成配置服务器列表的获取后,就进行与配置服务器的交互,发送服务消费者相关信息(同样包含了服务的接口全名,服务版本、所属服务组)到配置服务器进行服务的订阅,此时在配置服务器上会通过服务接口全名+服务版本作为匹配条件在当前配置服务器的内存中进行搜索,一旦获取到对应的服务注册信息,则将对应的服务提供者的服务器组 IP 地址及端口返回给服务调用者所在的应用节点上,此时也就完成了服务调用者端对于它所需要调用的服务提供者服务器列表信息,用于在服务真正交互时使用。服务订阅过程如图 3-5 中的步骤④⑤。4)服务规则的推送(如果需要)。如果没有上文提到对于服务安全管控、流量控制等需求的时候,对于 Diamond 服务器的使用并不是必需的,在有这样的需求场景时,可通过 Diamond 提供的规则设置界面,可以对指定服务的服务提供者和调用者设置相关的规则,一旦保存规则后,则此规则配置将会在 5 秒内推送到与所设置服务相关的服务节点上。如图 3-5 中的步骤⑥。5)服务交互。在应用进行业务请求处理过程中,出现了服务调用者对服务提供者的调用时,服务调用者会从已经保存在该应用节点上的服务提供者服务器列表中选择(阿里巴巴内部使用随机模式)其中一台进行服务请求的发送,服务交互期间完全是服务调用者和服务提供者间两台服务器间的,无需通过中间服务器的中转,这就是相比于“中心化” ESB 模式,所有服务交互都需要“中心” ESB 进行服务路由,而当前这种架构称为“去中心化”的主要原因。如图 3-5 中的步骤⑦。阿里巴巴的分布式服务框架核心是以服务化的方式构建整个应用体系的同时,要保证在高并发的情况下,服务具备高效交互、高可用性和扩展能力。接下来对于 HSF 框架如何给服务提供以上能力具体加以说明。1、HSF 框架采用 Netty + Hession 数据序列化协议实现服务交互HSF 框架中采用如今流行的网络通信框架 Netty 加上 Hession 数据序列化协议实现 HSF 服务间的交互,主要考虑点是在大并发量时,服务交互性能达到最佳。这类 RPC 协议采用多路复用的 TCP 长连接方式,在服务提供者和调用者间有多个服务请求同时调用时会共用同一个长连接,即一个连接交替传输不同请求的字节块。它既避免了反复建立连接开销,也避免了连接的等待闲置从而减少了系统连接总数,同时还避免了 TCP 顺序传输中的线头阻塞(head-of-line blocking)问题。Hessian 是 HSF 框架中默认使用的数据序列化协议,在数据量较小时性能表现出众,Hessian 的优点是精简高效,同时可以跨语言使用,目前支持 Java, C++, &.net, Python, ruby 等语言。另外 Hessian 可以充分利用 Web 容器的成熟功能,在处理大量用户访问时很有优势,在资源分配、线程排队、异常处理等方面都可以由 Web 容器保证。HSF 框架同时也支持切换使用 Java 序列化,Hession 相比 JDK 标准的序列化方式(即基于 Serializable 接口的标准序列化),在典型场景中,其序列化时间开销可能缩短 20 倍。虽然 Hessian 不是最快的序列化协议,但它对于复杂业务对象的序列化正确率、准确性相较于最稳定的 Java 序列化并不逊色太多。业界还有一些比 Hessian 更快的序列化协议,但它们相对于 Hessian 在复杂场景下的处理能力还是会差一些,所以 Hessian 是在性能和稳定性同时考虑下最优的序列化协议。阿里巴巴当时在对多种通信协议和数据序列化组件等测试中,Netty + Hession 的组合在互联网高并发量的场景下,特别是在 TPS 上达到 10w 以上时,性能和效率远比 REST 或者 Web Service 高。2、HSF 框架的容错机制因为要保证服务的高可用性,所以在生产环境部署中一定会有多个应用实例作为服务提供者提供某一相同服务。基于之前所提到的服务框架的运行原理的说明,在进行服务调用时,服务调用者端已经保存了它所需要调用的服务提供者的服务器列表信息(如图 3-6 中为例,则保存了三台服务提供者所在服务器的列表)。当采用随机方式获取其中一台进行服务交互时(如图 3-6 步骤①),不管是第一台服务器已经某种故障造成了服务请求无法响应,还是该服务器已经接收了服务请求,在进行服务请求处理过程中出现了服务器故障(比如宕机、网络问题),造成该服务器没有在规定的时间(一般服务调用会设置到期时间)返回服务处理的结果,服务调用者端则会获取到服务调用失败的反馈(如图 3-6 步骤②)。在 HSF 服务调用的代码中会立即从剩下的服务提供者服务器列表中选择另外一个服务器再次进行服务请求(如图 3-6 步骤③),这一次这个服务提供者实例正常提供了此次服务的请求(如图 3-6 步骤④),从而保证了在个别服务提供者出现故障时,完全不会影响该服务正常提供服务。图 3-6 HSF 服务框架实现服务高可用性原理示意图同时,因为配置服务器是采用长连接的方式与服务节点进行网络通讯,一旦发现有服务提供者实例出现故障,配置服务器在秒级就会感知到(如图 3-6 步骤⑤),此时会将出问题这台服务提供者的信息从该服务的服务器列表中删除,并将更新后的服务器列表采用推送的方式同步给与该服务相关的所有服务调用者端(如图 3-6 步骤⑥),这样当下次服务调用者再进行此服务的调用时,就不会因为随机的方式再次对已经停止服务提供的服务器发起服务的调用。3、HSF 框架的线性扩展支持作为 HSF 框架设计之初,最为重要的一个特性就是服务能力的可扩展性。也就是真正的做到某个服务的业务处理能力能随着服务器资源的增加得到线性的增长。其实在传统架构中一直也会强调平台的扩展能力,但均会程度不一的出现服务节点数量到达一定量后,出现阻碍平台服务能力扩展的问题,有的是出现网络传输的瓶颈、也有服务节点接入数量上的限制,前文所描述的 ESB 架构带来的“雪崩”效应也均是这类架构给服务能力的扩展带来影响的原因所在。如图 3-7 中所描述的场景,当服务面对较大的服务调用压力或将要面临如天猫双11大促、秒杀等活动前,已有的服务提供者各服务器水位(CPU、内存、IO等)处于比较高的情况或现有服务能力满足不了业务访问量的要求时,则需要通过增加服务节点数量的方式提升该服务的服务处理能力。&图 3-7 HSF 服务框架对服务能力线性扩展支持1此时,只需要通过增加该服务的服务提供者实例(如图 3-8 所示,增加了一个服务),基于 HSF 框架的运行机制,新增加的服务提供者实例一旦应用启动完成后,可在几秒内开始进行服务请求的处理(主要完成服务注册发布、更新后服务列表推送到服务调用者端),从而达到分担其他服务器实例压力的作用,实现服务能力整体水位恢复到正常的状态(如图 3-9)。图 3-8 HSF服务框架对服务能力线性扩展支持2&图 3-9 HSF 服务框架对服务能力线性扩展支持3正是基于 HSF 框架这一特性,从而真正实现了只要增加服务实例就能实现该服务能力扩展的目标,目前在阿里巴巴共享服务事业部中多个服务中心在天猫双 11 那天各自所部署的服务实例节点数量均超过 2000,即同一个服务由超过 2000 个服务实例同时提供负载均衡的服务。本文节选自机械工业出版社《企业IT架构转型之道——阿里巴巴中台战略思想与架构实战》第 3 章。由机械工业出版社华章 IT 授权。基于移动阅读的考虑,部分内容进行了排版调整,想了解本书全部详细内容,可以在各大书店购买。作者:钟华(花名:古谦) 阿里巴巴中间件首席架构师,15 年中间件领域行业经验。推荐阅读本文由机械工业出版社华章IT授权高可用架构发表,转载请注明出处,技术原创及架构实践文章,欢迎通过公众号菜单「联系我们」进行投稿。高可用架构改变互联网的构建方式长按二维码 关注「高可用架构」公众号
分享给好友
分享到微信朋友圈: 第一步 打开微信底部扫一扫 第二步 扫下面的文章二维码 第三步 右上角点击转发
相关文章Relevant
点击上方“洞察榆林”可订阅热门信息第一时间免费发给你洞察榆林三秦都市报陪你细致、客观、善意地看榆林新闻热线:
韩国总统文在寅的特使李海瓒今天起访问中国。韩国从17日起向美日中俄分别派出特使,正式启动“四强外交”。
民国剧《十里洋场拾年花》正在横店影视城热拍。探班期间制片人姚博文携主演秦海璐、盛一伦、王铭铎接受采访。谈及搭
“农药残存”!这些蔬菜你需要认真清洗了!
14日,哈尔滨一男子突发致呼吸受阻,被送到医院时,呼吸、心跳、血压均为零,且已过了10分钟,符合死亡标准。医
不换肝孩子将肝衰竭夭折罗永洪一家来自枣庄滕州市张汪镇后许楼村。5个月前,罗永洪剖宫产生下小光杰,一家人还没来
喜欢就分享一下!
5月17日,上海同济大学毕业市集,毕业生们设摊售卖带不走的闲置物品,有毕业生摆出了“出售单身狗,毕业不单身”
苏富比拍卖行16日在瑞士日内瓦举行春季珠宝拍卖会,一对彩色梨形钻石耳坠以约5740万美元(1美元约合6.
他们,是财富的搬运工。194被浏览15107分享邀请回答258 条评论分享收藏感谢收起5添加评论分享收藏感谢收起

我要回帖

更多关于 阿里巴巴类目选择 的文章

 

随机推荐