您的位置:网站首页 > 热门源码 > 正文

Java开发大型互联网-Dubbo项目拆分下踩坑的记录

类别:热门源码 日期:2017-12-16 18:51:00 人气: 来源:

  Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。

  服务引用配置,明明就已经声明了的服务,但service bean通过autowried引用,总提示不存在,原因是 服务少了id的设置,查看官网文档,dubbo:reference表签,id属性为必填项。但dubbo启动时却没有发出,导致问题被隐含了。

  dubbo通过设置短的超时机制+重试次数,马上将当前超时服务提供者provider切换到其他可用的provider,通过这种思实现快速响应。但对于一些新增记录的操作来说,有可能因为设定时间内,provider无法响应,客户端执行n次重试,导致新增记录操作的请求发了n次,数据库里这时候保存了n条记录数据。暂时解决方式是将那些响应时间相对旧一些的服务,它的超时时间设置长一点,并将重试次数retries设置为0

  项目拆由原来单一个应用(可以看成单一个provider)按照业务功能便捷,拆分成好几个provider, 但不是全部都拆了出来,还保留了一个原始比较大的provider。

  我们这边服务器配置比较低,基本上要两台服务器才能把所有provider部署下来,不然全部部署同一个服务器,最后一个启动的provider有可能因为内存满了,而加载很慢,从而影响整个应用服务不能正常运作。

  另外一点:由于拆分了好多个服务,所以如果要一次批量全部更新的话,要在linux上不断的cd 、 nohup java -jar ......

  搭建一个专门用来 存放各个(如开发、测试)的运行目录所需要的程序,包括provider, web部署目录。

  现在有了每个provider 的startup.sh了,为了一件启动,所以还需要写一个总运行的脚本,

  由于开发或测试服务器内存不够,有可能要将不同的provider部署到不同的服务器上,这时就要把startup_all.sh 文件拆分成两个文件来运行。

  其中${build.env} 可选的值为dev 、test、 production,分别表示开发、测试、生产。由parent 项目(定义所有子项目的依赖)里的pom 文件定义。

  另外由于maven 输出包含一些多余文件,所以我利用maven resources插件将需要的文件 或目录 ,如jar,lib目录,properties文件,shell文件,拷贝到输出目录底下的bin目录:

  以 上就是我对Java开发大型互联网-Dubbo项目拆分下踩坑的记录问题及其优化总结,分享给大家,希望大家知道什么是Java开发大型互联网-Dubbo项目拆分下踩坑的记录问题及其优化。觉得收获的话可以点个关注收藏转发一波喔,谢谢大佬们支持!

  最后,每一位读到这里的网友,感谢你们能耐心地看完。希望在成为一名更优秀的Java程序员的道上,我们可以一起学习、一起进步!都能赢取白富美,架构师的人生巅峰!

  3丶想了解学习以上课程内容可加群:469717771 验证码头条(06 必过)欢迎大家的加入哟!

  延伸相关词:

  陈小艺被曝姐弟恋,倒追小伙被当保姆,陆贞传奇演员表,人鱼情未了 电视剧,莫小棋三级,保拉的诱惑,李慧珍老公,luciano rivarola,如意剧情介绍电视猫,电视剧当狗爱上猫

关键词:java项目源码
0
0
0
0
0
0
0
0
下一篇:没有资料

相关阅读

网友评论 ()条 查看

姓名: 验证码: 看不清楚,换一个

推荐文章更多

热门图文更多

最新文章更多

关于联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助

CopyRight 2002-2012 技术支持 源码吧 FXT All Rights Reserved

赞助合作: