美文网首页
dubbodemo搭建

dubbodemo搭建

作者: kevinXiao | 来源:发表于2022-03-28 17:28 被阅读0次

第一步:搭建zookeeper服务器

1.官网下载链接:zookeeper下载

2.选择要下载的版本【3.4.6】并解压

2.1:启动、停止Zookeeper
image image

2.查看zkEnv.cmd

image

3、增加zoo.cfg文件,如下

image

4.zoo.cfg配置文件介绍

修改dataDir属性值,在上级目录下增加data目录

image image

5.双击zkServer.com启动

image

第二步:创建maven项目dubbodemo

1、新建module项目dubbodemo_provider

1.1:配置pom.xml

     <packaging>war</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <spring.version>5.0.5.RELEASE</spring.version>
    </properties>
    
    <dependencies>
        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jms</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!-- dubbo相关 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.6.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.7</version>
        </dependency>
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>
        <dependency>
            <groupId>javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>3.12.1.GA</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <!-- java编译插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <configuration>
                    <port>8011</port>
                    <path>/</path>
                </configuration>
            </plugin>
        </plugins>
    </build>

1.2:配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
          http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         version="2.5">
    <context-param>
        <!-- 如果不记得contextConfigLocation配置项的名称,可以到DispatcherServlet的父类FrameworkServlet中查找 -->
        <param-name>contextConfigLocation</param-name>
        <!-- 使用classpath:说明这个路径从类路径的根目录开始才查找 -->
        <param-value>classpath:applicationContext-service.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
</web-app>

1.3:配置applicationContext-service.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc" 
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xmlns:dobbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       https://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/mvc
       https://www.springframework.org/schema/mvc/spring-mvc.xsd 
       http://code.alibabatech.com/schema/dubbo 
       http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    <!-- 声明应用的名称。用于注册中心对我们的项目识别 -->
    <dubbo:application name="dubbodemo_provider" />

    <!--  连接注册中心 zookeeper ip 为 zookeeper 所在服务器的ip地址  -->
    <dubbo:registry address="zookeeper://localhost:2181" />
    <!--  注册 协议和port 端口默认是20880  -->
    <dobbo:protocol name="dubbo" port="20881"/>

    <!--  扫描指定包,加入@Service注解,它是用来发布服务。  -->
    <dubbo:annotation package="com.baiddu.service"/>
</beans>

1.4:新建一个接口跟实现类


100.png

1.5:建好的目录结构


image.png

2、新建module项目dubbodemo_consumer
2.1:配置pom.xml,导入的包一样,就配置的tomcat端口号要区分开

    <build>
        <plugins>
            <!-- java编译插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <configuration>
                    <!-- 请求端口 -->
                    <port>8012</port>
                    <!--  请求路径   -->
                    <path>/</path>
                </configuration>
            </plugin>
        </plugins>
    </build>

2.2:配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
          http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         version="2.5">
    
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- 指定加载的配置文件,通过参数contextConfigLocation加载 -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext-web.xml</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

2.3:配置applicationContext-web.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc.xsd
            http://code.alibabatech.com/schema/dubbo
            http://code.alibabatech.com/schema/dubbo/dubbo.xsd
            http://www.springframework.org/schema/context
            https://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 声明应用的名称。用于注册中心对我们的项目识别 -->
    <dubbo:application name="dubbodemo_consumer" />
    <!--  连接注册中心 zookeeper ip 为 zookeeper 所在服务器的ip地址  -->
    <dubbo:registry address="zookeeper://localhost:2181" />
    <!--  扫描的方式暴露接口  -->
    <dubbo:annotation package="com.baidu.controller"/>
    <!--  运行dubbo不检查提供者是否提前开启 建议在开发阶段将check值设置为false,在生产环境下改为true -->
    <dubbo:consumer check="false"/>

</beans>

2.4:新建一个接口跟controller

101.png

3、运行tomcat检查是否运行成功
先运行provider


102.png

再运行consumer


103.png

4、输入http://localhost:8012/demo/hello?name=kevin 查看结果

104.png

5、新建module项目dubbodemo_interface
5.1:新建一个Service接口,删除其他的Service接口


105.png

5.2:到provider的pom.xml跟consumer的pom.xml插入interface的依赖

    <dependency>
        <groupId>com.baidu</groupId>
        <version>1.0-SNAPSHOT</version>
        <artifactId>dubbodemo_interface</artifactId>
    </dependency>

5.3:找到maven视图上的dubbodemo下Lifecycle的install运行一下,可多次运行


image.png

5.4:输入http://localhost:8012/demo/hello?name=Jack验证是否成功

image.png

6、resources加入log4j.properties文件

### set log levels ###
//debug  info  warn  error  ,  D ,  E
log4j.rootLogger = debug ,  stdout 

### 输出到控制台 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.err
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern =  %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n


### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.FileAppender
log4j.appender.D.File = logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG ## 输出DEBUG级别以上的日志
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

7、安装dubbo管理控制台,下载dubbo-admin-2.6.0.war包放到本机的tomcat的webapps目录下,启动tomcat解压


image.png

8.测试集群负载均衡,到dubbodemo目录下,复制一份dubbodemo_provider2的文件夹
8.1、到父工程下pom.xm文件加上

        <module>dubbodemo_provider2</module>

8.2、到provider2的applicationContext-service.xml更改端口20889

    <!--  注册 协议和port 端口默认是20880  -->
    <dobbo:protocol name="dubbo" port="20889"/>

8.3、到provider2的pom.xml文件下更改tomcat端口号为8019

                    <port>8019</port>

8.4、更改负载均衡模式,到consumer的controller添加

    // 默认是randombin 
    @Reference(loadbalance = "roundrobin")

9、在provider工程基础上进行编辑
9.1、在pom.xml文件中增加maven坐标

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.6</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>sqljdbc4</artifactId>
            <version>4.0</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.3</version>
        </dependency>

9.2在applicationContext-service.xml配置文件中加入数据源、事务管理器、开启事务注解的相关配置

相关文章

网友评论

      本文标题:dubbodemo搭建

      本文链接:https://www.haomeiwen.com/subject/wuqsjrtx.html