前期准备
Jdk:版本,1.8,环境变量,JAVA_HOME、CLASSPATH,Path检查一下
Maven:3.5.4,也要环境变量,maven的bin目录,
Mvn –version命令查看版本,检查下mvn命令是否可用(.m2文件夹,复制一个settings文件到此目录)
Settings.Xml
1、下载dubbox 2.8.4版本
地址:https://github.com/dangdangdotcom/dubbox/tree/dubbox-2.8.4
2、用maven编译工程,(此步会生成jar包)
进入到解压后的根目录,使用mvn命令进行安装编译(按住shift,右击鼠标,选择在此处打开命令窗口)
mvn install -f ./pom.xml -D maven.test.skip=true
(第一次,执行大概10分钟)
3、将dubbo-2.8.4.jar安装到本地仓库(部署编译好的2.8.4.jar,到本地仓库)
3.1dubbo目录下找到dubbo-2.8.4.jar
控制台输入命令,执行将下载jar包安装到本地仓库命令(注意:-Dfile=后面的路径是自己的jar包位置,且不能有空格)
mvn install:install-file -DgroupId=com.alibaba -DartifactId=dubbo -Dversion=2.8.4 -Dpackaging=jar -Dfile=D:\dubbox-master\dubbox-master\dubbo\target\dubbo-2.8.4.jar
查看本地仓库是否有jar包
4、
5、将dubbo-admin文件夹下dubbo-admin-2.8.4.war包放入本地tomcat的webapps目录下
6、下载zookeeper,解压,
7、zoo_simple.cfg文件,要重命名为zoo.cfg
8、启动顺序,1.zookeeper的zkServer.cmd, 2.tomcat (访问管理页面http://127.0.0.1:8080/dubbo-admin-2.8.4/)
原理:common公共组件,打包,部署(install,部署安装到本地仓库),provider引入common组件(启动),向注册中心注册服务,consumer去注册中心,消费provider提供的服务
注意:common:maven项目,
Clean命令
Install命令
Pom.xml
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
<version>1.18.8</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
<scope>runtime</scope>
</dependency>
**Provider项目:springboot项目
提供服务(实现service的接口)**
Pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.1.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
//<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>//注释掉
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.8.4</version>
</dependency>
<dependency>
<groupId>io.dubbo.springboot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.example</groupId>
<artifactId>ms-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
Application.yml
server:
port: 8081
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/smbms?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: root
dubbo:
application:
name: spring-boot-starter-dubbo-demo-provider
registry:
address: zookeeper://192.168.101.128:2181
protocol:
name: dubbo
port: 20880
scan: com.example.service2
mybatis中mapper的位置
mybatis:
#config-location: classpath:mybatis-config.xml
mapper-locations: classpath:mapping/*Mapper.xml
type-aliases-package: com.example.pojo
注意点:@Service注解(import com.alibaba.dubbo.config.annotation.Service;
)
@Resource注解来替换@Autowired
启动类上加注解:@MapperScan(“com.example.mapper”)
(mapper接口文件所在的目录)
Dubbo-admin管理员的页面,提供者里进行注册
Consumer:springBoot项目
去注册中心消费服务,
Pom.xml
<!--fastJson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.57</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.1.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.8.4</version>
</dependency>
<dependency>
<groupId>io.dubbo.springboot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.example</groupId>
<artifactId>ms-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
Application.yml
server:
port: 8082
spring:
#thymeleaf 视图的配置
thymeleaf:
cache: false
prefix: classpath:/templates/
suffix: .html
encoding: UTF-8
mode: html5
servlet:
content-type: text/html
dubbo:
application:
name: spring-boot-starter-dubbo-demo-consumer
registry:
address: zookeeper://192.168.101.128:2181
protocol:
name: dubbo
port: 20880
scan: com.example.controller
mvc:
static-path-pattern: /static/**
注意点:service的接口,注解:@Reference(import com.alibaba.dubbo.config.annotation.Reference;
)