栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

企业级SpringBoot与Dubbo的并用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

企业级SpringBoot与Dubbo的并用

SpringBoot越来越热门以至于达到烂大街可见的程度,而Dubbo这个基于二进制的微服务框架又捐献给Apache孵化,如果不会如何使用那么是不是很不好意思呢?

这次从公司的项目中抽一个小列子来熟悉下如果从零构建,至于深入了解->传送门:Dubbo官方中文手册

版本:
  • Springboot2.x

  • Double2.6

  • Zk3.4.14

  • JDK8

这里就不介绍Dubbo了,不了解的可以看这里:

https://www.cnblogs.com/SimpleWu/p/9769797.html

zookeepr安装

下载去官网查找稳定的版本进行使用:

http://www.apache.org/dyn/closer.cgi/zookeeper/

先在服务器上安装zookeeper。

cd /usr/local/src/
#下载
sudo wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
#解压
tar -zxvf zookeeper-3.4.14.tar.gz
#修改配置文件名称
mv conf/zoo_sample.cfg zoo.cfg
#启动zk
./bin/zkServer.sh start
#出现以下字样代表启动成功,默认端口2181
Starting zookeeper ... STARTED
SpringBoot2.x整合Dubbo

父工程搭建(pom工程)

com.simple.springboot
    yun-double
    0.0.1-SNAPSHOT
pom
yun-double
double



    1.8
    2.0.0
    0.10




        org.springframework.boot
        spring-boot-starter-parent
        2.1.4.RELEASE
        




    
        
            com.alibaba.spring.boot
            dubbo-spring-boot-starter
            ${double.version}
        

        
            com.101tec
            zkclient
            ${zkclient.version}
        

    


创建公共接口工程common

该工程用于存储服务层接口,以减少代码的冗余。

4.0.0


    com.simple.springboot
    yun-double
    0.0.1-SNAPSHOT


com.simple.springboot
common
0.0.1-SNAPSHOT

common
公共接口

创建公共接口

public interface UserService {

    String getUserById(int id);

}

创建服务提供者(provider)

Pom文件

4.0.0

com.simple.springboot
provider
0.0.1-SNAPSHOT
jar

provider
生产者



    com.simple.springboot
    yun-double
    0.0.1-SNAPSHOT



    
    
        com.alibaba.spring.boot
        dubbo-spring-boot-starter
    

    
    
        com.101tec
        zkclient
        
        
            
                log4j
                log4j
            


            
                org.slf4j
                slf4j-api
            


            
                org.slf4j
                slf4j-log4j12
            

        

    

    
    
        com.simple.springboot
        common
        0.0.1-SNAPSHOT
    




    
        
            org.springframework.boot
            spring-boot-maven-plugin
        

    


在pom文件中我们需要引入Dubbo,Zk客户端并且引入公共接口工程

application.properties配置文件

#dubbo.application.name 应用名称
#dubbo.registry.address 注册中心地址
#dubbo.protocol.name 协议名称
#dubbo.protocol.port 协议端口
#dubbo.scan dubbo 服务类包目录
#server.port=8080
spring.application.name=user-pro
dubbo.application.name=user-provider1
dubbo.registry.address=zookeeper://192.168.197.133:2181
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880

在这里dubbo.application.name应用名称一定不能重复

实现UserService

@Component
@Service(timeout = 10000,interfaceClass = UserService.class)
public class UserServiceImpl implements UserService {

    @Override
    public String getUserById(int id) {
        if(id == 1) {
            return "SimpleWu";
        }else {
            return "Apache Dubbo";
        }
    }
}

@Service 这个注解使用的不是Spring里面的,而是com.alibaba.dubbo.config.annotation.Service

  • timeout 配置超时时间

  • interfaceClass 接口类

  • version 服务版本,如果配置了服务版本在消费端引用也必须一样,具体等会说

创建启动类

在该工程中我们不需要引入Web模块浪费端口号,只需要这样写启动类

@EnableDubbo
@EnableDubboConfiguration
@DubboComponentScan("com.simple.springboot.provider.common.impl")
public class ProviderApplication {

    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(ProviderApplication.class);
        app.run(args);
        //dubbo Main独立运行,脱离web容器
        Main.main(args);
    }

}


  • @EnableDubbo 启动Dubbo功能

  • @EnableDubboConfiguration 启动Duubbo配置

  • @DubboComponentScan 扫描提供者实现类


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/239154.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号