当网站变大后,不可避免的须要拆分应用进行服务化,以提升开发效率,调优性能,节省关键竞争资源等。
当服务愈来愈多时,服务的URL地址信息就会爆炸式增加,配置管理变得很是困难,F5硬件负载均衡器的单点压力也愈来愈大。
当进一步发展,服务间依赖关系变得错踪复杂,甚至分不清哪一个应用要在哪一个应用以前启动,架构师都不能完整的描述应用的架构关系。
接着,服务的调用量愈来愈大,服务的容量问题就暴露出来,这个服务须要多少机器支撑?何时该加机器?等等……
在遇到这些问题时,均可以用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也支持更多协议,更多注册中心的集成,以适应更多的网站架构。负载均衡