dubbo入门实例

朱雀 2022-01-16 15:11 340阅读 0赞

spring 4.3.20.RELEASE

dubbo 2.6.2

curator-framework 2.12.0

注册中心 zookeeper

jdk 1.8

一、服务提供方

1、pom.xml配置

  1. <dependencies>
  2. <dependency>
  3. <groupId>org.springframework</groupId>
  4. <artifactId>spring-core</artifactId>
  5. <version>4.3.20.RELEASE</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>com.alibaba</groupId>
  9. <artifactId>dubbo</artifactId>
  10. <version>2.6.2</version>
  11. </dependency>
  12. <!-- curator -->
  13. <dependency>
  14. <groupId>org.apache.curator</groupId>
  15. <artifactId>curator-framework</artifactId>
  16. <version>2.12.0</version>
  17. </dependency>
  18. <dependency>
  19. <groupId>org.slf4j</groupId>
  20. <artifactId>slf4j-nop</artifactId>
  21. <version>1.7.20</version>
  22. </dependency>
  23. <dependency>
  24. <groupId>junit</groupId>
  25. <artifactId>junit</artifactId>
  26. <version>4.12</version>
  27. <scope>test</scope>
  28. </dependency>
  29. </dependencies>
  30. <build>
  31. <plugins>
  32. <plugin>
  33. <groupId>org.apache.maven.plugins</groupId>
  34. <artifactId>maven-compiler-plugin</artifactId>
  35. <version>3.8.0</version>
  36. <configuration>
  37. <source>1.8</source>
  38. <target>1.8</target>
  39. </configuration>
  40. </plugin>
  41. </plugins>
  42. </build>

2、接口

  1. public interface HelloService {
  2. String sayHello(String name);
  3. }

3、接口实现类

  1. public class HelloServiceImpl implements HelloService {
  2. public String sayHello(String name) {
  3. return "Hello " + name;
  4. }
  5. }

4、spring配置文件

  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
  5. http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
  6. <dubbo:application name="dubbo-provider"></dubbo:application>
  7. <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"></dubbo:registry>
  8. <dubbo:protocol host="127.0.0.1" port="20880"></dubbo:protocol>
  9. <dubbo:service interface="com.kingtry.service.HelloService" ref="helloService"></dubbo:service>
  10. <bean id="helloService" class="com.kingtry.service.HelloServiceImpl"></bean>
  11. </beans>

5、log4j配置文件

  1. log4j.rootLogger=INFO,console
  2. log4j.appender.console=org.apache.log4j.ConsoleAppender
  3. log4j.appender.console.layout=org.apache.log4j.PatternLayout
  4. log4j.appender.console.layout.ConversionPattern=%-d{yyyy-MM-dd\u00A0HH:mm:ss,SSS}\u00A0[%t]\u00A0[%c]-[%p]\u00A0%m%n

6、注册,并提供服务的测试类

  1. public class DubboProviderTest {
  2. @Test
  3. public void test() {
  4. ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
  5. //使服务不中断
  6. try {
  7. System.in.read();
  8. } catch (IOException e) {
  9. e.printStackTrace();
  10. }
  11. }
  12. }

二、服务调用方

1、pom.xml文件

  1. <dependencies>
  2. <dependency>
  3. <groupId>org.springframework</groupId>
  4. <artifactId>spring-core</artifactId>
  5. <version>4.3.0.RELEASE</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>com.alibaba</groupId>
  9. <artifactId>dubbo</artifactId>
  10. <version>2.6.2</version>
  11. </dependency>
  12. <!-- curator -->
  13. <dependency>
  14. <groupId>org.apache.curator</groupId>
  15. <artifactId>curator-framework</artifactId>
  16. <version>2.12.0</version>
  17. </dependency>
  18. <dependency>
  19. <groupId>org.slf4j</groupId>
  20. <artifactId>slf4j-nop</artifactId>
  21. <version>1.7.20</version>
  22. </dependency>
  23. <dependency>
  24. <groupId>junit</groupId>
  25. <artifactId>junit</artifactId>
  26. <version>4.12</version>
  27. <scope>test</scope>
  28. </dependency>
  29. </dependencies>
  30. <build>
  31. <plugins>
  32. <plugin>
  33. <groupId>org.apache.maven.plugins</groupId>
  34. <artifactId>maven-compiler-plugin</artifactId>
  35. <version>3.8.0</version>
  36. <configuration>
  37. <source>1.8</source>
  38. <target>1.8</target>
  39. </configuration>
  40. </plugin>
  41. </plugins>
  42. </build>

2、 接口

//此处接口与提供方完全一致

  1. public interface HelloService {
  2. String sayHello(String name);
  3. }

3、spring配置文件

  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
  5. http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
  6. <dubbo:application name="dubbo-consumber"></dubbo:application>
  7. <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"></dubbo:registry>
  8. <dubbo:reference id="helloService" interface="com.kingtry.service.HelloService"></dubbo:reference>
  9. </beans>

4、log4j配置文件

  1. log4j.rootLogger=INFO,console
  2. log4j.appender.console=org.apache.log4j.ConsoleAppender
  3. log4j.appender.console.layout=org.apache.log4j.PatternLayout
  4. log4j.appender.console.layout.ConversionPattern=%-d{yyyy-MM-dd\u00A0HH:mm:ss,SSS}\u00A0[%t]\u00A0[%c]-[%p]\u00A0%m%n

5、调用服务的测试类

  1. public class DubboConsumerTest {
  2. @Test
  3. public void test() {
  4. ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
  5. HelloService helloService = (HelloService)context.getBean("helloService");
  6. System.out.println("----------------------------------------------------------");
  7. System.out.println(helloService.sayHello("DanDan"));
  8. System.out.println("----------------------------------------------------------");
  9. }
  10. }

三、输出如下结果

  1. ----------------------------------------------------------
  2. Hello DanDan
  3. ----------------------------------------------------------

转载于:https://blog.51cto.com/10759919/2406415

发表评论

表情:
评论列表 (有 0 条评论,340人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Dubbo入门

    Dubbo开始于电商项目,是用Java语言写的, 首先介绍一下电商项目的古老历史: 从刚开始的ORM框架,全称是Object Relational Mapping中文那,全

    相关 dubbo入门

    分布式 首先大致了解下分布式,分布式是指需要按照功能点把系统拆分,拆分成独立的功能工程,可以单独为某一个节点添加服务器,需要系统之间配合才能完成整个业务逻辑这就叫做分布式

    相关 Dubbo入门实例

    导语   在之前的学习中了解了关于Dubbo的一些基本的概念,但是概念毕竟是概念,更多的还需要通过自己编写代码的方式进行进一步的提高下面就来编写第一个入门的Dubbo应用

    相关 Dubbo入门

    Dubbo入门 1. 服务容器负责启动,加载,运行服务提供者,这个图上没标识出来,服务端启动就是0. 2. 服务提供者在启动时,向注册中心注册自己提供的服务。 3. 服