Dubbo读后感

86 阅读2分钟

本抱着啃透Dubbo源码买了《深入理解Apache Dubbo与实战》一书,读了2-3章后有点小失望,书中对Dubbo源码分析很少或一笔带过,故在阅读的过程中配合着Dubbo官网读完的。作为Dubbo初学者,这本书主要是对dubbo架构及原的理进行讲解,中间穿插了一些实战案例,通过这本书可以更好的理解dubbo的使用,理解其设计理念。

在Dubbo出现之前,服务端架构多为all-in-one单体架构,涉及到的少量分布式架构也是比较繁重的EJB、消息总线、SOA。这种架构相对来说耦合度高,开发部署友好,运维成本较低,但随着业务量的增加,许多问题也会暴露出来。架构臃肿、代码量较大、重构困难、扩展性差。随着互联网技术的推广普及,一些2c企业的业务量爆发式增长,单体架构无法满足并发高,迭代快的场景,按照不同业务模块拆分系统成为趋势,Dubbo在alibaba顺势诞生,Dubbo一经问世,便改变了国内互联网企业系统架构,甚至于面试也成了必考题,在经历了数十年的打磨抛光后,在当前更是成为Apache基金会的顶级项目。

dubbo是rpc调用框架属于soa架构,其重要功能便是服务治理包括了服务注册与发现,集群容错降级,服务监控等。dubbo架构中有三个重要角色,他们分别是服务提供者provider,注册中心registry,服务消费者consumer。provider启动时会向注册中心把自己的元数据注册上去(比如服务ip和端口号),consumer在启动时从注册中心订阅(第一次订阅会全量拉取数据)服务提供方的元数据,注册中心发生数据变更会推送给订阅的Consumer。在获取服务元数据后,Consumer可以发起RPC调用,在RPC调用前后会向监控中心上报统计信息(比如并发数和调用的接口)。由于采用了类似计算机网络的分层架构,对于provider和consumer方只需要关心service层和config层无需要关注底层实现,仅需要配置和实现业务逻辑即可。dubbo架构最吸引人的设计便是SPI,它改进了jdk的SPI机制,比如不会一次初始化所有扩展点,扩展点配置相应名称方便排查报错,增加了ioc和aop的支持,dubbo的spi设计使得替换框架组件变得优雅,无侵入,人人都能依赖该设计成为自己公司的架构师!