发表于: 2021-04-25 23:10:15
4 1193
今天完成的事情:
解决web模块调用service报错问题
继续完成web测试
使用spring-boot来完成springRMI-使用Duboo
明天计划的事情:
在增加一台service,放在服务器上运行
遇到的问题:
暂无
收获:
整合springboot+mybatis多模块时,项目启动时加载web模块下的资源文件,最初写模块时mybatis的xml文件在core模块中,web模块调用service的方法时无法加载core模块下mybaits的xml,因此在web模块的资源文件下添加core的xml文件,这就解决了
其他web测试成功
什么是 Duboo?
Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册)
Dubbo 架构
节点角色说明
节点 | 角色说明 |
Provider | 暴露服务的服务提供方 |
Consumer | 调用远程服务的服务消费方 |
Registry | 服务注册与发现的注册中心 |
Monitor | 统计服务的调用次数和调用时间的监控中心 |
Container | 服务运行容器 |
调用关系说明
- 服务容器负责启动,加载,运行服务提供者。
- 服务提供者在启动时,向注册中心注册自己提供的服务。
- 服务消费者在启动时,向注册中心订阅自己所需的服务。
- 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
- 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
- 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
为什么要用到dubbo?
dobbo是基于RPC的,你要用分布式,就需要用RPC来调用远程主机上的方法。这就是要用dubbo的核心原因。
而dubbo还有四个特性,刚好解决分布式调用的四个问题
负载均衡:同一个服务部署在不同的机器时该调用哪一台机器上的服务
服务调用链路生成:随着系统发展,服务越来越多,服务间依赖关系错综复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整描述应用的架构关系。Dubbo 可以为我们解决服务之间互相是如何调用的。
服务访问压力以及时长统计、资源调度和治理:基于访问压力实时管理集群容量,提高集群访问率。
服务降级:某个服务挂掉之后调用备用服务。
评论