• springboot集成dubbo


    1、下载 zookeeper http://archive.apache.org/dist/zookeeper
    解压缩到 /usr/local
    重命名 conf/zoo_sample.cfg --> conf/zoo.cfg

    2、下载 tomcat https://tomcat.apache.org/download-80.cgi
    Tomcat linux 配置
    解压缩到 /usr/local
    添加环境变量 vi /etc/profile
    export TOMCAT_HOME=/usr/local/apache-tomcat-8.5.28

    配置 Tomcat 管理界面
    vi conf/tomcat-users.xml

    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <role rolename="manager-jmx"/>
    <role rolename="manager-status"/>
    <user username="tomcat" password="tangqun" roles="manager-script, manager-jmx, manager-gui"/>

    配置 Tomcat 管理界面 远程IP 访问
    vi conf/Catalina/localhost/manager.xml

    <Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager">
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
    </Context>

    3、下载 dubbo https://github.com/alibaba/dubbo/releases/dubbo-dubbo-2.5.8.tar.gz
    用IDEA打开, 找到 dubbo-admin 打war包
    将新生成的 dubbo-admin-2.5.8.war 上传到 /usr/local/apache-tomcat-8.5.28/webapps/ 下面
    启动 tomcat , 访问 http://yourhost:8080/http://106.75.11.56:8080/dubbo-admin-2.5.8/
    账号: root 密码:root


    4、代码 生产者 消费者

    通用 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>
    
        <groupId>com.example</groupId>
        <artifactId>demo</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <name>demo</name>
        <description>Demo project for Spring Boot</description>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.5.10.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/com.alibaba/dubbo -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>dubbo</artifactId>
                <version>2.5.8</version>
            </dependency>
    
            <dependency>
                <groupId>com.alibaba.spring.boot</groupId>
                <artifactId>dubbo-spring-boot-starter</artifactId>
                <version>1.0.1</version>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/com.101tec/zkclient -->
            <dependency>
                <groupId>com.101tec</groupId>
                <artifactId>zkclient</artifactId>
                <version>0.8</version>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.apache.zookeeper/zookeeper -->
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>3.4.6</version>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    
    </project>

    provider

    package com.example.demo.service.rpc;
    
    public interface HelloService {
        String say();
    }
    package com.example.demo.service.impl;
    
    import com.alibaba.dubbo.config.annotation.Service;
    import com.example.demo.service.rpc.HelloService;
    import org.springframework.stereotype.Component;
    
    @Service(interfaceClass = HelloService.class)
    @Component
    public class HelloServiceImpl implements HelloService {
    
        public String say() {
            return "hello word";
        }
    }
    package com.example.demo;
    
    import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    @EnableDubboConfiguration
    public class DemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    }
    spring.dubbo.appname=demo-dubbo-provider
    spring.dubbo.registry=zookeeper://106.75.11.56:2181
    spring.dubbo.protocol=dubbo

    consumer

    package com.example.demo.service.rpc;
    
    public interface HelloService {
        String say();
    }
    package com.example.demo.service.impl;
    
    import com.alibaba.dubbo.config.annotation.Reference;
    import com.example.demo.service.rpc.HelloService;
    import org.springframework.stereotype.Service;
    
    @Service
    public class RefService {
    
        @Reference
        private HelloService helloService;
    
        public String say() {
            return helloService.say();
        }
    }
    package com.example.demo;
    
    import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    @EnableDubboConfiguration
    public class DemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    }
    server.port=8088
    
    spring.dubbo.appname=demo-dubbo-consume
    spring.dubbo.registry=zookeeper://106.75.11.56:2181
    spring.dubbo.protocol=dubbo
    package com.example.demo.controller;
    
    import com.example.demo.service.impl.RefService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    @RequestMapping("/hello")
    @Controller
    public class HelloController {
    
        @Autowired
        private RefService refService;
    
        @RequestMapping("/say")
        @ResponseBody
        public String say() {
            return refService.say();
        }
    }

    注意:生产者 和 消费者 接口包名一致,通常做法都是将接口发布成一个独立的jar包。

  • 相关阅读:
    python之路——第三块(面向对象)
    python-第二块:random、shutil,json & pickle,shelve模块
    Win10和Linux系统下安装Mysql 8.0+版本
    django-(CSRF跨站请求伪造XSS、Cookie、Session、缓存、序列化、信号)
    django-(创建工程项目的基本配置、url路由系统详解、中间件&请求生命周期、admin介绍、FBV和CBV装饰器实现用户登陆认证)
    七、Web框架基础
    六、jQuery基础
    四、Dom基础
    二、css基础
    缓存和非关系型数据库的相关知识(memcached、redis)网址连接
  • 原文地址:https://www.cnblogs.com/tq1226112215/p/8529633.html
Copyright © 2020-2023  润新知