1.2 Dubbo基本案例(利用聚合工程)

1.项目结构

在这里插入图片描述

2.公共模块

在commons模块中定义一个service接口即可

在这里插入图片描述

package com.biao;

public interface UserService {

    String sayHello(String name);

}

3.创建provider服务提供者

3.1 pom.xml文件导入相关依赖

    <dependencies>
        <dependency>
            <groupId>com.biao</groupId>
            <artifactId>dubbo-commons</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <!--添加Spring依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.1.6.RELEASE </version>
        </dependency>
        <!--添加日志依赖-->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.25</version>
        </dependency>
        <!--Dubbo的依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.5.3</version>
            <exclusions>
                <exclusion>
                    <groupId>spring</groupId>
                    <artifactId>org.springframework</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--Zookeeper的客户端-->
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>
    </dependencies>

3.2 添加Spring配置文件

在这里插入图片描述

<?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:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    <!--提供方应用信息,要创建的服务的名称-->
    <dubbo:application name="dubboProvider"/>

    <!--设置Zookeeper注册中心-->
    <dubbo:registry protocol="zookeeper"
                    address="192.168.134.129,192.168.134.129,192.168.134.129"/>

    <!--设置Dubbo使用的协议-->
    <dubbo:protocol name="dubbo" port="20880"/>

    <!--注入UserServiceImplement-->
    <bean class="com.biao.service.UserServiceImpl" id="userService"/>

    <!--声明需要对外暴露的服务-->
    <dubbo:service interface="com.biao.service.UserService" ref="userService"
                   group="dubbo" version="1.0.0" timeout="5000"/>
</beans>

3.3 添加log4j.properties文件,方便看到日志信息

在这里插入图片描述

log4j.rootLogger=INFO,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout

3.4 启动文件

在这里插入图片描述

package com.biao;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class AppStart {
    public static void main(String[] args) throws InterruptedException {
        ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
        //挂起当前线程
        Thread.currentThread().join();
    }
}

3.5 启动效果

在这里插入图片描述

4.创建服务消费者

4.1 pom导入依赖(和provide中的依赖是一样的)

    <dependencies>
        <dependency>
            <groupId>com.biao</groupId>
            <artifactId>dubbo-commons</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <!--添加Spring依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.1.6.RELEASE </version>
        </dependency>
        <!--添加日志依赖-->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.25</version>
        </dependency>
        <!--Dubbo的依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.5.3</version>
            <exclusions>
                <exclusion>
                    <groupId>spring</groupId>
                    <artifactId>org.springframework</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--Zookeeper的客户端-->
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>
    </dependencies>

4.2 创建Spring的配置文件

<?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:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    <!--消费者应用信息-->
    <dubbo:application name="dubboConsumer"/>

    <!--配置和Provide相同的注册中心-->
    <dubbo:registry protocol="zookeeper"
                    address="192.168.134.129,192.168.134.131,192.168.134.132"/>

    <!--生成远程连接的服务代理-->
    <dubbo:reference interface="com.biao.service.UserService" id="userService"
                     group="dubbo" version="1.0.0" timeout="5000"/>
</beans>

4.3 添加log4j.properties文件,方便看到日志信息

在这里插入图片描述

4.4 测试代码

package com.biao;

import com.biao.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class AppStart {
    public static void main(String[] args) {
        ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
        //获取接口的代理对象
        UserService userService = (UserService) ac.getBean("userService");
        System.out.println(userService.sayHello("aaa"));
    }
}

5.测试

5.1 先启动服务端代码

在这里插入图片描述

5.2 启动消费者程序

在这里插入图片描述

5.3 获取结果的输出

在这里插入图片描述

5.4 消费者消费后是可以在Zookeeper的注册中心是可以看到新的注册信息的

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值