Dubbo(四)------Dubbo入门示例(基于属性配置)

迷南。 2023-06-25 06:21 47阅读 0赞

11

官方文档:http://dubbo.apache.org/en-us/docs/user/configuration/properties.html

父工程dubbo的依赖文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <groupId>com.yi</groupId>
  6. <artifactId>dubbo</artifactId>
  7. <version>0.0.1-SNAPSHOT</version>
  8. <packaging>pom</packaging>
  9. <modules>
  10. <module>dubbo-api</module>
  11. <module>dubbo-consumer</module>
  12. <module>dubbo-provider</module>
  13. </modules>
  14. <properties>
  15. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  16. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  17. <java.version>1.8</java.version>
  18. </properties>
  19. <parent>
  20. <groupId>org.springframework.boot</groupId>
  21. <artifactId>spring-boot-starter-parent</artifactId>
  22. <version>2.1.4.RELEASE</version>
  23. <relativePath/> <!-- lookup parent from repository -->
  24. </parent>
  25. <dependencies>
  26. <dependency>
  27. <groupId>org.springframework.boot</groupId>
  28. <artifactId>spring-boot-starter-web</artifactId>
  29. </dependency>
  30. <dependency>
  31. <groupId>org.springframework.boot</groupId>
  32. <artifactId>spring-boot-starter-test</artifactId>
  33. <scope>test</scope>
  34. <exclusions>
  35. <exclusion>
  36. <groupId>org.junit.vintage</groupId>
  37. <artifactId>junit-vintage-engine</artifactId>
  38. </exclusion>
  39. </exclusions>
  40. </dependency>
  41. </dependencies>
  42. <build>
  43. <plugins>
  44. <plugin>
  45. <groupId>org.springframework.boot</groupId>
  46. <artifactId>spring-boot-maven-plugin</artifactId>
  47. </plugin>
  48. <!-- JDK版本 -->
  49. <plugin>
  50. <artifactId>maven-compiler-plugin</artifactId>
  51. <configuration>
  52. <source>1.8</source>
  53. <target>1.8</target>
  54. </configuration>
  55. </plugin>
  56. </plugins>
  57. </build>
  58. </project>

dubbo-api 依赖文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <groupId>com.yi</groupId>
  6. <artifactId>dubbo-api</artifactId>
  7. <version>1.0-SNAPSHOT</version>
  8. <properties>
  9. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  10. </properties>
  11. <build>
  12. <plugins>
  13. <plugin>
  14. <groupId>org.springframework.boot</groupId>
  15. <artifactId>spring-boot-maven-plugin</artifactId>
  16. </plugin>
  17. <!-- JDK版本 -->
  18. <plugin>
  19. <artifactId>maven-compiler-plugin</artifactId>
  20. <configuration>
  21. <source>1.8</source>
  22. <target>1.8</target>
  23. </configuration>
  24. </plugin>
  25. </plugins>
  26. </build>
  27. </project>

dubbo-provider 提供方依赖文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <groupId>com.yi</groupId>
  6. <artifactId>dubbo-provider</artifactId>
  7. <version>0.0.1-SNAPSHOT</version>
  8. <properties>
  9. <java.version>1.8</java.version>
  10. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  11. </properties>
  12. <parent>
  13. <groupId>com.yi</groupId>
  14. <artifactId>dubbo</artifactId>
  15. <version>0.0.1-SNAPSHOT</version>
  16. </parent>
  17. <dependencies>
  18. <!--引入公共的api-->
  19. <dependency>
  20. <groupId>com.yi</groupId>
  21. <artifactId>dubbo-api</artifactId>
  22. <version>1.0-SNAPSHOT</version>
  23. </dependency>
  24. <!--引入springboot-->
  25. <!-- <dependency>
  26. <groupId>org.springframework.boot</groupId>
  27. <artifactId>spring-boot-starter</artifactId>
  28. <version>2.1.0.RELEASE</version>
  29. </dependency>-->
  30. <!--zookeeper 注册中心客户端引入 使用的是curator客户端 -->
  31. <dependency>
  32. <groupId>org.apache.dubbo</groupId>
  33. <artifactId>dubbo-dependencies-zookeeper</artifactId>
  34. <version>2.7.4.1</version>
  35. <type>pom</type>
  36. <exclusions>
  37. <exclusion>
  38. <groupId>org.slf4j</groupId>
  39. <artifactId>slf4j-log4j12</artifactId>
  40. </exclusion>
  41. </exclusions>
  42. </dependency>
  43. <!-- dubbo 2.7.x引入-->
  44. <dependency>
  45. <groupId>org.apache.dubbo</groupId>
  46. <artifactId>dubbo-spring-boot-starter</artifactId>
  47. <version>2.7.4.1</version>
  48. </dependency>
  49. <dependency>
  50. <groupId>org.springframework.boot</groupId>
  51. <artifactId>spring-boot-autoconfigure</artifactId>
  52. <version>2.1.7.RELEASE</version>
  53. <scope>compile</scope>
  54. </dependency>
  55. </dependencies>
  56. <build>
  57. <plugins>
  58. <plugin>
  59. <groupId>org.springframework.boot</groupId>
  60. <artifactId>spring-boot-maven-plugin</artifactId>
  61. </plugin>
  62. </plugins>
  63. </build>
  64. </project>

dubbo-consumer 依赖文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <groupId>com.yi</groupId>
  6. <artifactId>dubbo-consumer</artifactId>
  7. <version>0.0.1-SNAPSHOT</version>
  8. <packaging>jar</packaging>
  9. <parent>
  10. <groupId>com.yi</groupId>
  11. <artifactId>dubbo</artifactId>
  12. <version>0.0.1-SNAPSHOT</version>
  13. </parent>
  14. <properties>
  15. <java.version>1.8</java.version>
  16. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  17. </properties>
  18. <dependencies>
  19. <!--引入公共的api-->
  20. <dependency>
  21. <groupId>com.yi</groupId>
  22. <artifactId>dubbo-api</artifactId>
  23. <version>1.0-SNAPSHOT</version>
  24. </dependency>
  25. <!--<!–引入springboot–>
  26. <dependency>
  27. <groupId>org.springframework.boot</groupId>
  28. <artifactId>spring-boot-starter</artifactId>
  29. <version>2.1.0.RELEASE</version>
  30. </dependency>-->
  31. <!--zookeeper 注册中心客户端引入 使用的是curator客户端 -->
  32. <dependency>
  33. <groupId>org.apache.dubbo</groupId>
  34. <artifactId>dubbo-dependencies-zookeeper</artifactId>
  35. <version>2.7.4.1</version>
  36. <type>pom</type>
  37. <exclusions>
  38. <exclusion>
  39. <groupId>org.slf4j</groupId>
  40. <artifactId>slf4j-log4j12</artifactId>
  41. </exclusion>
  42. </exclusions>
  43. </dependency>
  44. <!-- dubbo 2.7.x引入-->
  45. <dependency>
  46. <groupId>org.apache.dubbo</groupId>
  47. <artifactId>dubbo-spring-boot-starter</artifactId>
  48. <version>2.7.4.1</version>
  49. </dependency>
  50. </dependencies>
  51. <build>
  52. <plugins>
  53. <plugin>
  54. <groupId>org.springframework.boot</groupId>
  55. <artifactId>spring-boot-maven-plugin</artifactId>
  56. </plugin>
  57. </plugins>
  58. </build>
  59. </project>

dubbo-api
在这里插入图片描述

  1. package com.yi;
  2. /**
  3. * 接口
  4. */
  5. public interface TestService {
  6. String sayHello(String word);
  7. }

dubbo-provider

  1. package com.yi.service.impl;
  2. import com.yi.TestService;
  3. import org.apache.dubbo.config.annotation.Service;
  4. @Service(version = "1.0.0")
  5. public class TestServiceImpl implements TestService {
  6. @Override
  7. public String sayHello(String word) {
  8. return word;
  9. }
  10. }
  11. package com.yi;
  12. import org.springframework.boot.SpringApplication;
  13. import org.springframework.boot.autoconfigure.SpringBootApplication;
  14. @SpringBootApplication
  15. public class ApplicationProvider {
  16. public static void main(String[] args) {
  17. SpringApplication.run(ApplicationProvider.class, args);
  18. System.out.println("dubbo_provider 已启动!");
  19. }
  20. }
  21. # Spring boot application
  22. spring.application.name=dubbo-provider
  23. # Base packages to scan Dubbo Component: @org.apache.dubbo.config.annotation.Service
  24. dubbo.scan.base-packages=com.yi.service
  25. # Dubbo Application
  26. ## The default value of dubbo.application.name is ${spring.application.name}
  27. dubbo.application.name=${spring.application.name}
  28. # Dubbo Protocol
  29. dubbo.protocol.name=dubbo
  30. dubbo.protocol.port=20880
  31. ## Dubbo Registry
  32. dubbo.registry.address=zookeeper://127.0.0.1:2181
  33. server.port=8083
  34. #如果有Can't assign address异常需要加vm参数:
  35. #-Djava.net.preferIPv4Stack=true
  36. log4j.rootLogger = INFO, stdout, logfile
  37. #日志输出到控制台
  38. log4j.appender.stdout = org.apache.log4j.ConsoleAppender
  39. log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
  40. #日志输出到文件
  41. log4j.appender.logfile = org.apache.log4j.DailyRollingFileAppender
  42. #${webapp.root}WEB-INF/logs/log4j.log 日志文件存放在tomcat编译项目web-inf/log目录下
  43. log4j.appender.logfile.File = ${webapp.root}WEB-INF/logs/log4j.log
  44. #是否追加写进文件
  45. log4j.appender.logfile.Append = true
  46. #输出DEBUG级别日志到文件中
  47. log4j.appender.logfile.Threshold = DEBUG
  48. log4j.appender.logfile.layout = org.apache.log4j.PatternLayout
  49. log4j.appender.logfile.layout.ConversionPattern = %d [%t] %-5p %c - %m%n

dubbo-consumer

  1. package com.yi.controller;
  2. import com.yi.TestService;
  3. import org.apache.dubbo.config.annotation.Reference;
  4. import org.springframework.web.bind.annotation.GetMapping;
  5. import org.springframework.web.bind.annotation.RestController;
  6. @RestController
  7. public class TestController {
  8. @Reference(version = "1.0.0")
  9. private TestService service;
  10. @GetMapping("sayHello")
  11. public String sayHello() {
  12. return service.sayHello("hello wrold!");
  13. }
  14. }
  15. package com.yi;
  16. import org.springframework.boot.SpringApplication;
  17. import org.springframework.boot.autoconfigure.SpringBootApplication;
  18. @SpringBootApplication
  19. public class ApplicationConsumer {
  20. public static void main(String[] args) {
  21. SpringApplication.run(ApplicationConsumer.class, args);
  22. System.out.println("dubbo_consumer 已启动!");
  23. }
  24. }
  25. spring.application.name=dubbo_consumer
  26. dubbo.registry.address=zookeeper://127.0.0.1:2181
  27. server.port=8082
  28. #如果有Can't assign address异常需要加vm参数:
  29. #-Djava.net.preferIPv4Stack=true

启动服务之前(先启动zookeeper,先启动zookeeper,先启动zookeeper)

然后依次启动dubbo-providerdubbo-consumer

在这里插入图片描述

调用:http://127.0.0.1:8082/sayHello
在这里插入图片描述

项目代码实例下载


如果你觉得本篇文章对你有所帮助的话,麻烦请点击头像右边的关注按钮,谢谢!

技术在交流中进步,知识在分享中传播

发表评论

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

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

相关阅读