关于Dubbo开发项目,我有几个疑问
我们基于Dubbo来开发的分布式项目,都要放在一个大项目模块中,这个大项目模块也有依赖,那么我们实际开发中,如何将这个大项目和还有子项目各个拆分到各个机器上,并且还能有依赖的联系。
Dubbo这种分布式开发模式,将各个项目拆分到各个机器上后,是如何做到所有项目的统一校验的?我们SpringCloud有Zuul的过滤器来做到,Dubbo呢?
我们Dubbo会向连接的注册中心定时发送心跳机制是默认自己会实现的,还是必须自己在application.properties中配置,还是在哪里配置?
dubbo.registry.file=${user.home}/dubbo-cache/${spring.application.name}/dubbo.cache
我想问一下这个配置文件配置的这句代码,这 ${user.home} 和${spring.application.name}引用的是哪里的?还有我想问一下,这整句代码配置的效果是为Dubbo配置指定的缓存文件吧?这个缓存文件是保存到Zookeeper服务器还是本地还是哪里?
正在回答
同学你好
maven是支持按模块分别打包的,同学可以把每个maven模块理解成一个独立的程序。
整体流程是:
1、打包producer,
2、上传到producer到maven私服,
3、打包consumer
4、部属producer和consumer这两个jar包。
具体操作流程如下:
打包:
首先,由于是spring boot 项目,所以在模块的 pom里加
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
</plugins>
</build>
然后在idea里找到maven,并打开producer模块的lifecircle,双击package打包
此时会有一个producer的jar产出。
这时需要deploy部署到私有maven服务器,但是由于通常我们个人开发者不具有私有maven,所以在课程里才没有演示多模块项目的部属过程。
如果同学公司有私有maven,那么就可以deploy,然后按同样方法package我们的consumer,会有一个consumer的jar产出,之后就像普通spring项目一样,在不同的机器上java -jar运行就可以了。
祝学习愉快~
同学你好
所有的依赖都是通过Maven管理的,Maven打包时的作用就是根据pom.xml文件里面的配置信息,当我们的程序有多个模块组成时,我们可以使用Maven来组织聚合我们的项目。Maven聚合项目可以通过父子继承和模块聚合来实现。使用Maven来聚合项目,会有一个顶层项目,这个顶层项目并没有实际的业务功能,只是用来组织各个下级的模块项目,并且对项目的依赖插件等进行统一管理。所以打包项目时只需要在顶层项目中执行packing,即可将整个项目打包,如果子项目有相互依赖的需要install将被引用的子项目安装进maven的本地仓库中,安装后所有项目都可以引用该项目
dubbo项目是controller层和service层通过dubbo通信,拆分项目只会将 controller层和service层拆分开来分别部署到不同服务器,而统一校验功能一般写在controller层,而所有的controller层是部署在一台服务器上,没有拆分,所以dubbo 可以自定义filter 实现公用过滤器处理;并且dubbo也是有网关的,同学感兴趣的话可以查阅些相关资料
dubbo的心跳机制是默认实现的,如果没有配置的话,默认是60s;
user.home 代表当前操作系统的用户目录,spring.application.name代表项目名称;这个缓存文件存储到本地电脑,以保证即使zookeeper挂了也不影响consumer调用provider,因为provider地址都缓存在本地了,zookeeper连不上还可以从缓存文件里找
祝学习愉快~
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星