zoukankan      html  css  js  c++  java
  • Springboot整合Dubbo

    一、项目介绍

    1、IDEA创建多模块springboot项目

    springboot-dubbo-api:接口层

    springboot-dubbo-client:服务消费者

    springboot-dubbo-server:服务提供者

    二、springboot-dubbo-server:服务提供者

    1、实现我们在springboot-dubbo-api上定义的接口,创建一个DubboServerServiceImpl类并实现ApiService

    package com.example.dubbo.service.impl;
    
    import com.alibaba.dubbo.config.annotation.Service;
    import com.example.dubbo.service.ApiService;
    
    @Service(version = "1.0.0")
    public class DubboServerServiceImpl implements ApiService {
    
        @Override
        public String getParm(String parm) {
            return parm;
        }
    }
    

    注意:代码里的@Service注解是com.alibaba.dubbo.config.annotation.Service的。

    2、在resources下创建一个spring-dubbo.xml配置文件。

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd
           http://code.alibabatech.com/schema/dubbo
           http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
    
        <dubbo:application name="provider"/>
        <!-- 注册中心的ip地址 -->
        <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
        <!-- 扫描注解包路径,多个包用逗号分隔,不填pacakge表示扫描当前ApplicationContext中所有的类 -->
        <dubbo:annotation package="com.example.dubbo.service.impl"/>
    </beans>
    

    3、在ServerApplication.java文件添加

    package com.example.dubbo;
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.ImportResource;
    
    @SpringBootApplication(scanBasePackages = {"com.example.dubbo"})
    @MapperScan("com.example.dubbo.*") //扫描的mapper
    @ImportResource({"classpath:spring-dubbo.xml"})
    public class ServerApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(ServerApplication.class, args);
        }
    
    }
    

    三、springboot-dubbo-client:服务消费者

    1、编写我们的Controller控制类

    package com.example.dubbo.controller;
    
    import com.alibaba.dubbo.config.annotation.Reference;
    import com.example.dubbo.service.ApiService;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class ClientController {
    
        @Reference(version = "1.0.0")
        private ApiService apiService;
    
        @RequestMapping("client")
        public String client(String parm){
            return apiService.getParm(parm);
        }
    }
    

    2、在resources下创建一个spring-dubbo.xml配置文件

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd
           http://code.alibabatech.com/schema/dubbo
           http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
    
        <dubbo:application name="consumer"/>
        <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
        <dubbo:annotation package="com.example.dubbo.controller"/>
    </beans>
    

    3、在ServerApplication.java文件添加

    package com.example.dubbo;
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.ImportResource;
    
    @SpringBootApplication(scanBasePackages = {"com.example.dubbo"})
    @MapperScan("com.example.dubbo.*") //扫描的mapper
    @ImportResource({"classpath:spring-dubbo.xml"})
    public class DubboClientApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(DubboClientApplication.class, args);
        }
    
    }
    

    至此,代码部分已经编写完毕

    4、安装zookeeper注册中心到电脑中

    下载地址:zookeeper下载地址
    点击后下载适合自己的版本,如图所示

    进入bin目录,运行zkServer.cmd文件。

     5、安装dubbo-admin-2.5.8

    链接:https://pan.baidu.com/s/1Hfb778tIYhwjTZ_gx2BcYg
    提取码:yrfd

    下载好用Jetty或Tomcat运行起来

     界面

    6. 现在终于可以运行我们的项目了

    依次运行server、client

     server控制台看到如图所示,说明注册成功

     
  • 相关阅读:
    ES6知识点脑图
    三大框架知识点比较(Angular, Vue, React)
    Angular(06)- 为什么数据变化,绑定的视图就会自动更新了?
    Angular(05)- 组件知识点脑图
    iTop4412开发板+虚拟机+tftp服务
    发布项目遇到的问题
    Ubuntu + Django(DRF) + channels(websocket)+NGINX + uwsgi 环境部署
    在Ubuntu中使用uwsgi 启动 Django ,但是静态文件映射出错
    Django + mysql 在创建数据库出错
    流媒体服务器搭建 ffmpeg + nginx
  • 原文地址:https://www.cnblogs.com/wangdahui/p/13101056.html
Copyright © 2011-2022 走看看