• spring boot集成dubbo


    spring-boot-start-dubbo

    spring-boot-start-dubbo,让你可以使用spring-boot的方式开发dubbo程序。使dubbo开发变得如此简单。

    如何使用

    1. clone 代码(可选,已经发布到中央仓库,可以直接依赖中央仓库的稳定版本)

    git clone git@github.com:teaey/spring-boot-starter-dubbo.git
    

    2. 编译安装(可选)

    cd spring-boot-starter-dubbo
    mvn clean install
    

    3. 修改maven配置文件(可以参考样例spring-boot-starter-dubbo-sample)

    • 在Spring Boot项目的pom.xml增加parent:
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.3.6.RELEASE</version>
    </parent>
    
    • 在Spring Boot项目的pom.xml中添加以下依赖:

    根据实际情况依赖最新版本

     <dependency>
         <groupId>io.dubbo.springboot</groupId>
         <artifactId>spring-boot-starter-dubbo</artifactId>
         <version>1.0.0</version>
     </dependency>
    
    • maven插件用于打包成可执行的uber-jar文件,添加以下插件(这里一定要加载需要打包成jar的mudule的pom中)
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <version>1.3.6.RELEASE</version>
    </plugin>
    

    4. 发布服务

    服务接口:

    package cn.teaey.sprintboot.test;
    
    public interface EchoService {
        String echo(String str);
    }
    
    

    在application.properties添加Dubbo的版本信息和客户端超时信息,如下:

    spring.dubbo.application.name=provider
    spring.dubbo.registry.address=zookeeper://192.168.99.100:32770
    spring.dubbo.protocol.name=dubbo
    spring.dubbo.protocol.port=20880
    spring.dubbo.scan=cn.teaey.sprintboot.test
    

    在Spring Application的application.properties中添加spring.dubbo.scan即可支持Dubbo服务发布,其中scan表示要扫描的package目录

    • spring boot启动
    package cn.teaey.sprintboot.test;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class Server {
        public static void main(String[] args) {
            SpringApplication.run(Server.class, args);
        }
    }
    
    
    • 编写你的Dubbo服务,只需要添加要发布的服务实现上添加 @Service ,如下
    package cn.teaey.sprintboot.test;
    
    import com.alibaba.dubbo.config.annotation.Service;
    
    @Service(version = "1.0.0")
    public class EchoServerImpl implements EchoService {
    
        public String echo(String str) {
            System.out.println(str);
            return str;
        }
    }
    
    

    5. 消费Dubbo服务

    • 在application.properties添加Dubbo的版本信息和客户端超时信息,如下:
    spring.dubbo.application.name=consumer
    spring.dubbo.registry.address=zookeeper://192.168.99.100:32770
    spring.dubbo.scan=cn.teaey.sprintboot.test
    

    在Spring Application的application.properties中添加spring.dubbo.scan即可支持Dubbo服务发布,其中scan表示要扫描的package目录

    • spring boot启动
    package cn.teaey.sprintboot.test;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.ConfigurableApplicationContext;
    
    @SpringBootApplication
    public class Client {
        public static void main(String[] args) {
            ConfigurableApplicationContext run = SpringApplication.run(Client.class, args);
            AbcService bean = run.getBean(AbcService.class);
            System.out.println(bean.echoService.echo("abccc"));
        }
    }
    
    
    • 引用Dubbo服务,只需要添加要发布的服务实现上添加 @Reference ,如下:
    package cn.teaey.sprintboot.test;
    
    import com.alibaba.dubbo.config.annotation.Reference;
    import org.springframework.stereotype.Component;
    
    @Component
    public class AbcService {
        @Reference(version = "1.0.0")
        public EchoService echoService;
    }
    

    6. 打包

    可以直接执行Server或者Client启动

    可以通过mvn clean package 打包成可执行的uber-jar文件

  • 相关阅读:
    搭建一个免费的,无限流量的Bloggithub Pages和Jekyll入门
    通过扩展方法 链式方法 为MVC 3 视图添加验证
    让移动UI模式设计者获得灵感的10个有用的网站资源
    企业级应用架构(NHibernater+Spring.Net+MVC3)_V1.0
    把博客放在Github
    实例化需求—流程
    nginx+keepalievd,实现负载均衡和故障点切换。keepalived双机热备。
    古城钟楼
    从初步使用该控件到多维数据集控件PivotGridControl
    搜索引擎的评价
  • 原文地址:https://www.cnblogs.com/exmyth/p/7923303.html
Copyright © 2020-2023  润新知