基于zookeeper+dubbo+spring的分布式架构

这种架构的教程网上想必应该是比比皆是了,不过今天想自己尝试一下。

首先是部署注册中心,具体步骤就不再过多赘述。在注册中心部署完成后,就开始provider的部署

先引入jar包


这里我的jdk版本是1.8,所以zkclient和dubbo都使用的最新版本,否则会报错,原因是因为内部依赖的javaassist不兼容。

然后就是划分项目结构

我用的maven做的项目结构划分,服务提供模块和消费模块都依赖于业务模块,服务提供模块主要是向注册中心注册服务,而消费模块主要是调用服务,


这是我理解的spring与dubbo之间的关系,首先一个业务需要抽象出一个接口,然后再进行实现。

现在spring一般都是直接配置扫描+注解的方式,所以在服务提供者中,要在实现类上加上相应的service注解。这里spring首先把类加载进容器中,然后再把这个加载好的类交给dubbo,dubbo把这个类的接口已经它的方法一起注册到注册中心去。

注册成功后,接下来就是消费者调用服务,调用的流程正好跟注册是相反的,首先是由dubbo从注册表中加载需要的类,然后再将这个装载成功的类交给spring容器使用(这里加载我猜是虚拟加载,让spring相信真实存在这样一个已经加载好的类,其实它的实体在provider那里)。然后我们就可以开心的使用spring干各种坏事了。

消费模块调用

然而需要注意的是,我们因为习惯于使用spring的扫描,要对消费者模块和提供者模块的包路径扫描做好区分,比如正确的路径是消费者模块:com.company.web,提供者模块:com.company.provider

如果偷懒的话消费者模块的扫描路径设置为:com.company,那么在消费者模块会出现bean重复加载的情况,spring会报错,原因是dubbo加载一个给spring,spring自己又扫描加载一次。所以在消费者模块注意不要把服务的实现类给扫描进去。

通过以上简单的几个步骤基本上已经把一个简单的分布式架构系统搭好了,至于你是选择放在一个服务器上还是多个服务器上,那得看你的资源是否丰富了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,970评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,126评论 6 342
  • 中秋佳节即将到来,随手打开app,铺天盖地的螃蟹广告已经布满了各个信息平台。 想起前几日部门活动一起去海边玩,美美...
    一叶扁舟子阅读 6,577评论 4 2
  • 随手拍的,各位看官下手轻点
    qianchang阅读 1,319评论 1 2
  • 01 这几天听了《周易》的大概讲解。五次课,从饱含期待到三观尽毁,既在意料之外,又在情理之中。 前几年,有位朋友读...
    南塘问水阅读 3,401评论 0 3

友情链接更多精彩内容