学习dubbo时遇到的一些问题以及dubbo项目的完整架构方法

  1. 前言:首先dubbo-admin与我们的jdk1.8不兼容,开始我们用的jdk1.8发现不兼容,最后改为了1.7
  2. 此次文章是基于我以前的一个简单的项目改造而成的,当做dubbo的一个上手项目
  3. 开发时所需用到工具eclipse-mars、apache-maven-3.6.0、apache-tomcat-8.0.36、jdk1.7、MySql5.6、zookeeper-3.4.8、dubbo-admin-2.5.3
  4. 关于软件的安装和环境的部署网上都有很多的教程。在这里我就不详细的说明了。
  5. 说明一下关于zookeeper和dubbo-admin的安装教程https://blog.csdn.net/zhq426/article/details/56014525 参考这篇文章就可以了,在这里我用的是zk单机模式的部署。
  6. 这是我项目整体架构的一个结构图

在这里特别说明一下,我这个项目使用maven管理,api是一个jar包具体提供一些借口,provider是服务提供方,它是一个war包,然后consumer也是一个war包,它就相当于我们mvc里面的controller层,由于网上一些教程没有说明每个子module具体是什么类型的包,让我创建了几次maven工程。provider和consumer既然是一个web应用,所以少不了一些配置文件,因为这个工程是根据SSM架构过来的,所以具体的配置文件就是用的ssm架构的一些套路。

对比着看一下:

两者在配置文件的差异具体体现在一个里面是

provider.xml

id是自己定义的,class是根据你自己的项目写的路径,下面的一行就是根据上面定义好的id去使用它

consumer.xml

这是两个比较重要的一点。

我在项目开发中遇到的最多的问题就是配置少了一些jar包的依赖,因为一个web工程要想运行少不了具体的jar包,比如:spring、mybatis的jar包是必须引用的,当然还少不了

这两个在consumer和provider中都必须配置,一个是dubbo的依赖,一个是启动zk时的依赖,如果不依赖会报访问不到的错误

  1. 如果你要看通过dubbo-admin管理provider,那么你需要做以下几个步骤:
  2. 打开cmd命令行,切换到zk的bin目录下:然后运行zkServer.cmd,运行成功会如图所示

 3.启动我们自己的shop-dubbo-provider项目

这就是启动成功的标志,然后我们通过访问

 在这里你需要登录你的用户名和密码而进入你的dubbo-admin,具体配置在

一个是以root登录,一个是用普通用户登录。

我们的provider启动成功后就会在我们的dubbo-admin下可以找到了

4.在我们启动Tomcat项目时有可能报这种错误

这是由于Tomcat启动时间不足造成的,可以增加他的启动时间

双击标红部分,然后可以看到如图所示,打开标红部分

修改它的启动时间即可

5.我们启动shop-dubbo-consumer,正常的访问页面即可

 

到此,一个SSM架构的项目已经改造完成,我在这里面只用了一个provider,可以多部署几个provider到Tomcat上,只需要改变启动的端口号就可以同时启动多个Tomcat,有兴趣的可以尝试一下。

SSM架构的源码:https://github.com/BELONG1997520/shop

Dubbo架构的源码:https://github.com/BELONG1997520/shop/tree/shop-dubbo/shop-dubbo-parent

数据库源码:

/*
Navicat MySQL Data Transfer

Source Server         : localhost
Source Server Version : 50722
Source Host           : localhost:3306
Source Database       : shop

Target Server Type    : MYSQL
Target Server Version : 50722
File Encoding         : 65001

Date: 2019-01-06 10:29:45
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `tb_item`
-- ----------------------------
DROP TABLE IF EXISTS `tb_item`;
CREATE TABLE `tb_item` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8_bin DEFAULT NULL,
  `title_desc` varchar(255) COLLATE utf8_bin DEFAULT NULL,
  `created` date DEFAULT NULL,
  `updated` date DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- ----------------------------
-- Records of tb_item
-- ----------------------------
INSERT INTO `tb_item` VALUES ('1', 'liao', null, null, null);
INSERT INTO `tb_item` VALUES ('2', 'lili', null, null, null);
INSERT INTO `tb_item` VALUES ('3', 'lili', null, null, null);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值