zoukankan      html  css  js  c++  java
  • SpringBoot整合dubbo

    SpringBoot整合dubbo

    1.Dubbo是一种微服务框架,更多请访问apachedubbo github:https://github.com/apache/dubbo
    2.环境,jdk1.8,zookpeer注册中心, springboot2.1.6; dubbo-spring-boot-starter0.2.0
    3.统一的pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <packaging>pom</packaging>
      <modules>
        <module>api-service</module>
        <module>consumer01</module>
      </modules>
      <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
      </parent>
      <groupId>com.ls</groupId>
      <artifactId>dubbo01</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <name>dubbo01</name>
      <description>springboot整合dubbo</description>
    
      <properties>
        <java.version>1.8</java.version>
      </properties>
    
      <dependencies>
        <dependency>
          <groupId>com.alibaba.boot</groupId>
          <artifactId>dubbo-spring-boot-starter</artifactId>
          <version>0.2.0</version>
        </dependency>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-test</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
    
      <build>
        <plugins>
          <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    
    </project>
    
    

    4.dubbo的提供者
    4.1启动类ProvidersApplication

    package com.ls;
    
    import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    
    @EnableDubbo
    @SpringBootApplication
    public class ProvidersApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(ProvidersApplication.class);
        }
    
    }
    
    

    4.2实现类HelloServiceImpl

    package com.ls.service.impl;
    
    import com.alibaba.dubbo.config.annotation.Service;
    import com.ls.service.HelloService;
    
    
    @Service //注意是dubbo的service依赖
    public class HelloServiceImpl  implements HelloService {
    
        @Override
        public String sayHello(String name) {
            return name+"我是提供者";
        }
    }
    
    

    4.3application.yml

    spring:
      application:
        name: provider
    server:
      port: 9001
    dubbo:
      application:
        name: provider
      protocol:
        name: dubbo
        port: 20889
      registry:
        address: zookeeper://192.168.157.130:2181
        timeout: 9000
      provider:
        timeout: 1000
    

    5.消费者
    5.1pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <parent>
        <artifactId>dubbo01</artifactId>
        <groupId>com.ls</groupId>
        <version>0.0.1-SNAPSHOT</version>
      </parent>
      <modelVersion>4.0.0</modelVersion>
      <artifactId>consumer01</artifactId>
    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
      <dependency>
        <groupId>com.ls</groupId>
        <artifactId>api-service</artifactId>
        <version>0.0.1-SNAPSHOT</version>
      </dependency>
    </dependencies>
    </project>
    

    5.2消费者启动类

    @EnableDubbo
    @SpringBootApplication
    public class ConsumerApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(ConsumerApplication.class);
        }
    
    }
    

    5.4.HelloController

    package com.ls.controller;
    
    import com.alibaba.dubbo.config.annotation.Reference;
    import com.ls.service.HelloService;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    
    @RestController
    public class HelloController {
        @Reference
        private HelloService helloService;
        @GetMapping("/test")
        public String test(String name){
            String s = helloService.sayHello(name);
            return s;
        }
    }
    
    

    5.5application.yml

    spring:
      application:
        name: consumer
    server:
      port: 9002
    dubbo:
      application:
        name: consumer
      registry:
        address: zookeeper://192.168.157.130:2181
        timeout: 9000
    

    6.先启动zookpeer,zookpeer的安装自己去往搜索一下,启动提供者,然后启动消费者
    在这里插入图片描述
    在这里插入图片描述
    7.访问展示http://localhost:9002/test?name=helllo
    在这里插入图片描述
    dubbo和springboot暂时写到这里源码:github:https://github.com/smileLs66/springboot/tree/master/dubbo01

    参考:https://blog.csdn.net/qq_29102545/article/details/87368620

  • 相关阅读:
    ASP.NET(4):多语言的解决方案
    无题
    SIP 计时器的总结(转)
    一个Sip协议栈的实现方案
    通过拦截WCF消息进行身份栈传播
    从WPF控件拖放到Winform控件的注意事项
    一个用C#操作OpenLDAP的例子
    通过定制行为拦截WCF消息
    一个基于Prism的方案的介绍
    MVVM模式下附加属性的使用
  • 原文地址:https://www.cnblogs.com/szls-666/p/12494176.html
Copyright © 2011-2022 走看看