今天主要说的是Dubbo+Zookeeper分布式服务的搭建,前面我们搭建过web层也就是http层的负载均衡,由nginx去操作的,所以今天不做整合,只对分布式项目进行搭建
搭建过程:
一、我们要下载Zookeeper并安装、配置
下载地址:http://apache.fayea.com/zookeeper/ 我下载的是3.5.3-beta 测试版本进行搭建的,大家可以选择稳定版
我们把下载下来的zookeeper进行解压,打开后我们进入到 zookeeper-3.5.3\conf 这个文件夹
打开zoo.cfg,对zookeeper的端口和log、data进行配置
返回,进入bin目录我们启动zkServer.cmd,zookeeper就启动了
二、下载配置dubbo的管理项目
下载地址:https://download.csdn.net/download/qq_27612843/10465247
接下来我们需要准备个tomcat,改好端口,避免冲突,并且把下载的dubbo-admin.war放入到webapps里面
启动后会自动解压,这里要说一下流程,必须得是先启动zookeeper注册中心,然后再启动dubbo-admin服务
还有一个需要注意的地方是在 webapps—>dubbo-admin—>WEB-INF—>dubbo.properties文件中的zookeeper端口必须要和你zookeeper的端口保持一致
启动tomcat之后我们进行访问可以看到会让我们输入用户名和密码,都是root
登录进去之后就是dubbo的管理项目
三、接下来我们来创建我们的dubbo项目,这里我采用maven聚合来进行搭建
dubbo 父节点 Packaging——pom
dubbo-api 接口(也就是我们的service接口) Packaging——jar
dubbo-provider 服务提供方(这里面写service的实现和数据持久)、需要在pom中引入dubbo-api Packaging——war
dubbo-consumer 消费方(可以理解为controller层的调用)、需要在pom中引入dubbo-api Packaging——war
下面搭建流程就是一个maven聚合,我把各个程序里面所需要的配置贴出来
1、dubbo-api什么都不需要配置,只用写出我们一个接口即可
2、dubbo-provider的pom.xml的配置,dubbo自带的spring版本较低对其进行替换,大家自行把groupId和artifactId改名
[html] view plain copy
- <?xml version="1.0"?>
- <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>com.dubbo</groupId>
- <artifactId>dubbo</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- </parent>
- <artifactId>dubbo-provider</artifactId>
- <packaging>war</packaging>
- <name>dubbo-provider Maven Webapp</name>
- <url>http://maven.apache.org</url>
- <properties>
- <spring.version>4.3.8.RELEASE</spring.version>
- </properties>
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>com.dubbo</groupId>
- <artifactId>dubbo-api</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>dubbo</artifactId>
- <version>2.5.3</version>
- <exclusions>
- <exclusion>
- <artifactId>spring</artifactId>
- <groupId>org.springframework</groupId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.zookeeper</groupId>
- <artifactId>zookeeper</artifactId>
- <version>3.5.3-beta</version>
- </dependency>
- <!-- spring begin -->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-jdbc</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-aop</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-test</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-test</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <!-- spring end -->
- <!-- 日志相关 -->
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>1.2.16</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>1.7.5</version>
- </dependency>
- <!-- zookeeper client依赖,用于向zookeeper注册服务 -->
- <dependency>
- <groupId>com.github.sgroschupf</groupId>
- <artifactId>zkclient</artifactId>
- <version>0.1</version>
- </dependency>
- </dependencies>
- <build>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>