当前位置:首页 > 服务端 > springboot+zookeeper+dubbo

springboot+zookeeper+dubbo

2022年09月17日 15:32:19服务端4

一个简易版工程终于调通了,使用springboot框架,zookeeper注册中心,dubbo服务(提供者和消费者)。

一、dubbo服务提供者:
1.SayHelloImpl.java

package com.dubbo.provider.demo.service;

import com.alibaba.dubbo.config.annotation.Service;
import com.dubbo.demo.api.ISayHello;

@Service
public class SayHelloImpl implements ISayHello {
    @Override
    public String hello(String name) {
        String out = "hello,"+name;
        return out;
    }
}

2.DemoApplication.java

package com.dubbo.provider.demo;

import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@EnableDubbo
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class,args);
    }

}

3.application.properties

server.port=20000
spring.application.name=dubbo-provider-demo
# dubbo
dubbo.application.name=dubbo-provider-demo
dubbo.protocol.name=dubbo
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.protocol.port=10012

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>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
    </parent>

    <groupId>com.dubbo.demo</groupId>
    <artifactId>dubbo-provider-demo</artifactId>
    <version>1.0.0-SNAPSHOT</version>

    <properties>
        <project.artifactId>dubboProviderDemo</project.artifactId>
    </properties>

    <dependencies>

        <dependency>
            <groupId>com.dubbo.demo</groupId>
            <artifactId>dubbo-demo-api</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.6.12</version>
            <exclusions>
                <exclusion>
                    <artifactId>spring</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.7.0</version>
            <exclusions>
                <exclusion>
                    <artifactId>slf4j-log4j12</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>spring-boot-starter-logging</artifactId>
                    <groupId>org.springframework.boot</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>4.0.1</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>


    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

二、dubbo服务消费者:

1.CallProviderService.java

package com.dubbo.customer.demo.service;

import com.alibaba.dubbo.config.annotation.Reference;
import com.dubbo.demo.api.ISayHello;
import org.springframework.stereotype.Service;

@Service
public class CallProviderService {

    @Reference
    ISayHello sayHello;

    public void callInterface(){
       String res = sayHello.hello("hl");
        System.out.println("res--"+res);
    }

}

2.DemoApplication.java

package com.dubbo.customer.demo;

import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableDubbo
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class,args);
    }

}

3.CallProviderServiceController.java

package com.dubbo.customer.demo.controller;

import com.dubbo.customer.demo.service.CallProviderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


@RestController
@RequestMapping("test")
public class CallProviderServiceController {

    @Autowired
    private CallProviderService callProviderService;

    @RequestMapping("aa")
    public void subscribeSayHello(){
        callProviderService.callInterface();
    }

}

4.application.properties

server.port=26000
spring.application.name=dubbo-customer-demo

dubbo.application.name=dubbo-customer-demo
dubbo.protocol.name=dubbo
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.consumer.check=false

5.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>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
    </parent>

    <groupId>com.dubbo.demo</groupId>
    <artifactId>dubbo-customer-demo</artifactId>
    <version>1.0.0-SNAPSHOT</version>

    <properties>
        <project.artifactId>dubboCustomerDemo</project.artifactId>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.dubbo.demo</groupId>
            <artifactId>dubbo-demo-api</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.6.12</version>
            <exclusions>
                <exclusion>
                    <artifactId>spring</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.7.0</version>
            <exclusions>
                <exclusion>
                    <artifactId>slf4j-log4j12</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.15.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>spring-boot-starter-logging</artifactId>
                    <groupId>org.springframework.boot</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>4.0.1</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

本地调试过程中遇到的问题:

1.由于本地电脑启用了虚拟网卡,导致启动起来的提供者IP和消费者IP不同;因为提供者和消费者都注册在本地zookeeper,在zookeeper上查看两个服务信息,其IP应该确保是同一个。

解决方式:禁止本地电脑网络的虚拟网卡。

2.两个服务正常启动后,消费者总是提示找不到服务者提供的服务。后来发现消费者服务里没有引用zookeeper。这个问题困扰比较久。

解决方式:在消费者的pom文件里引入zookeeper

作者:morebetter4hl
来源链接:https://blog.csdn.net/morebetter4hl/article/details/124409854

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/42679.html

标签: Dubbo
分享给朋友:

“springboot+zookeeper+dubbo” 的相关文章

Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例

Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例

摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢!...

dubbo监控报错Error creating bean with name 'uriBrokerService'

dubbo监控报错Error creating bean with name 'uriBrokerService'

在jdk1.8下面会出现此错误   解决方法: 1、更换服务器jdk版本。(会影响其他项目环境) 2、修改dubbo-admin tomcat默认jdk版本。 3、修改dubbo-admin项目依赖(dependency)从新打包。 进入h...

SpringBoot与Dubbo整合的三种方式

SpringBoot与Dubbo整合的三种方式

1. 使用默认application.properties和注解的方式 导入dubbo-starter,在application.properties配置属性,使用@Service注解来暴露服务,使用@Reference来引用服务。具体可参考 Dubbo整合Spring...

Java高级面试必问—Dubbo面试题汇总

1、默认使用的是什么通信框架,还有别的选择吗?2、服务调用是阻塞的吗?3、一般使用什么注册中心?还有别的选择吗?4、默认使用什么序列化框架,你知道的还有哪些?5、服务提供者能实现失效踢出是什么原理?6、服务上线怎么不影响旧版本?7、如何解决服务调用链过长的问题?8、说说核心的配置...

Springboot整合dubbo(一):搭建一个springboot + dubbo的微服务

Springboot整合dubbo(一):搭建一个springboot + dubbo的微服务

现在越来越多的公司开发项目中使用了springboot作为搭建服务的框架,因为springboot集成了一套完整项目所需要的基本的开发工具的jar包,无需再像之前开发一个spring项目中需要引入各种配置,只需要引入简单的几个配置就能达到项目的启动,大大减少了开发周期,使开发越来...

史上最全 40 道 Dubbo 面试题及答案,看完碾压面试官!

史上最全 40 道 Dubbo 面试题及答案,看完碾压面试官!

想往高处走,怎么能不懂 Dubbo? Dubbo是国内最出名的分布式服务框架,也是 Java 程序员必备的必会的框架之一。Dubbo 更是中高级面试过程中经常会问的技术,无论你是否用过,你都必须熟悉。 下面我为大家准备了一些 Dubbo 常见的的面...

搭建SpringBoot+dubbo+zookeeper+maven框架(一)

搭建SpringBoot+dubbo+zookeeper+maven框架(一)

这几天项目还没来,所以就自己试着参考网上的一些资料,搭建了一个SpringBoot+dubbo+zookeeper+maven框架,网上参考的很多资料照着他们一步一步搭建,最后很多都运行不通,很是郁闷,最后自己在总结了他们之后自己搭建了一个,项目的源码我会附在文章的最后,并且后期还会继...

Dubbo整合Nacos

Dubbo整合Nacos

Dubbo项目将Nacos作为其注册中心和配置中心 Nacos提供了四个主要功能 服务发现和服务运行状况检查(服务治理):Nacos使服务易于注册自己并通过DNS或HTTP接口发现其他服务。Nacos还提供服务的实时运行状况检查,以防...

SpringCloud系列之集成Dubbo应用篇

SpringCloud系列之集成Dubbo应用篇

目录 前言 项目版本 项目说明 集成Dubbo 2.6.x 新项目模块 老项目模块 集成Dubbo 2....

SpringCloud采用Dubbo远程调用(SpringCloud Alibaba)

SpringCloud采用Dubbo远程调用(SpringCloud Alibaba)

系统架构:      这里只演示以下组件,其他组件的使用和SpringCloud一样     application-1 :应用1,模拟应用,提供http接口服务。     service-1 :微服务1,模拟微服务,提供dubbo接口服务。     se...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。