Dubbo02【搭建provider和consumer】

网友投稿 880 2022-11-22

Dubbo02【搭建provider和consumer】

Dubbo02【搭建provider和consumer】

本文来给大家介绍下基于Spring配置的方式来搭建dubbo中的服务提供端和消费端

provider和consumer的搭建

1.项目结构

模块说明

模块

说明

dubbo-common

公共模块,用来存放服务提供者和消费则所需的所有的接口和pojo类,实现代码的复用,dubbo-provider和dubbo-consumer都需要引入这个包,所以我们需要先 mvn clean install

dubbo-provider

服务提供者

dubbo-consumer

服务消费者

2.具体实现

2.1dubbo-common

person.java

package com.bobo.pojo;public class Person { private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } @Override public String toString() { return "Person [id=" + id + ", name=" + name + "]"; } public void setName(String name) { this.name = name; }}

UserService.java 接口中定义

package com.bobo.service;import com.bobo.pojo.Person;public interface UserService { String sayHello(String name); String testPojo(Person person);}

2.2 provider

pom.xml 引入相关的依赖

com.bobo dubbo-common 0.0.1-SNAPSHOT org.springframework spring-context 4.3.21.RELEASE org.slf4j slf4j-log4j12 1.7.25 com.alibaba dubbo 2.5.3 spring org.springframework com.github.sgroschupf zkclient 0.1

Spring配置文件 在spring配置文件中设置dubbo的相关信息

zookeeper的配置方式如下:

或者

如果有多个ip地址

或者

另外你还可以在同一个 Zookeeper 服务器上划分多个分组

在同一个 Zookeeper 服务器上划分了两个分组,也就是会有两颗树目录,树根分别为 registry1 和 registry2。

UserServiceImpl 接口实现类

public class UserServiceImpl implements UserService { @Override public String sayHello(String name) { //让当前当前线程休眠2s try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("-------"+name); return name+"----000"; } @Override public String testPojo(Person person) { System.out.println(person.getName()+"/t"+person.getId()); return "你好啊..."; }}

log4j.properties

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

测试启动

package com.bobo.test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Test { public static void main(String[] args) throws InterruptedException { ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); //挂起当前线程,如果没有改行代码,服务提供者进程会消亡,服务消费者就发现不了提供者了 Thread.currentThread().join(); }}

2.3 consumer

pom.xml 引入相关的依赖

com.bobo dubbo-common 0.0.1-SNAPSHOT org.springframework spring-context 4.3.21.RELEASE org.slf4j slf4j-log4j12 1.7.25 com.alibaba dubbo 2.5.3 spring org.springframework com.github.sgroschupf zkclient 0.1

Spring配置文件

log4j.properties

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

TsetConsumer.java

package com.bobo.test;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.bobo.service.UserService;public class TestConsumer { public static void main(String[] args) { ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); final UserService demoService = (UserService) ac.getBean("userService"); System.out.println(demoService.sayHello("哈哈哈")); }}

说明服务消费者已经正常调用了服务提供方的服务了!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:好好编程-物流项目09【角色信息查询】
下一篇:Spring框架 引入@Resource注解报空指针的解决
相关文章

 发表评论

暂时没有评论,来抢沙发吧~