Spingboot整合Dubbo+zookeeper

这篇具有很好参考价值的文章主要介绍了Spingboot整合Dubbo+zookeeper。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

2023-12-26 19:38:05

最近学习分布式技术:Dubbo+zookeeper,准备写一个demo用springboot整合dubbo和zookeeper。但是看了网上一些教程都是几年前的,试着跟着写了几个demo没一个跑起来,基本是maven依赖方面的问题。

版本信息:

springboot:2.7.6
Dubbo:2.7.3
zookeeper:3.8.0
jdk:1.8
idea:2021.3.2

Maven坐标:

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.3</version>
        </dependency>

        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>2.12.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>2.8.0</version>
        </dependency>
    
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.14</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

Demo项目:

项目准备:

1、点击创建一个springboot项目

2、勾选web和lombok

3、创建

4、修改IDEA的Maven配置

5、刷新Maven

6、运行测试

7、修改pom配置文件

8、刷新maven

项目结构:

src:
├─main
│ ├─java
│ │ └─com
│ │ └─example
│ │ └─dubbo
│ │ │ DubboApplication.java
│ │ │ TimeService.java
│ │ │
│ │ ├─consumer
│ │ │ │ ConsumerApplication.java
│ │ │ │
│ │ │ └─controller
│ │ │ indexController.java
│ │ │
│ │ └─provider
│ │ │ ProviderApplication.java
│ │ │
│ │ └─impl
│ │ TimeServiceImpl.java
│ │
│ └─resources
│ │ application-consumer.properties
│ │ application-provider.properties
│ │ application.properties
│ │
│ ├─static
│ └─templates

生产者:

ProviderApplication.java

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

@SpringBootApplication
@EnableDubbo
public class ProviderApplication {
    public static void main(String[] args) {
        SpringApplication.run(ProviderApplication.class,args);
    }
}

TimeServiceImpl.java


import com.example.dubbo.TimeService;
import org.apache.dubbo.config.annotation.Service;


@Service //注意引入的是dubbo包下的Service
public class TimeServiceImpl implements TimeService {

    @Override
    public String getTime() {
        System.out.println("provider被调用啦!");
        return "Hello,Dubbo!";
    }
}

注意要将ProviderApplication.java的运行配置文件改为provider!

application-provider.properties

server.port=8082
dubbo.application.name=provider-app

消费者:

ConsumerApplication.java

import com.example.dubbo.TimeService;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.time.format.DateTimeFormatter;

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

indexController.java

import com.example.dubbo.TimeService;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;


@RestController
public class indexController {

    @Reference//Duboo包下的
    private TimeService timeService;

    @GetMapping("/")
    public String getTime(){
        System.out.println("consumer被调用啦!");
        return timeService.getTime();
    }
}

注意要将ConsumerApplication.java的运行配置文件改为consumer!

application-consumer.properties:

server.port=8081
dubbo.application.name=consumer-app

公共类:

TimeService.java:

public interface TimeService {

    String getTime();
}

公共配置:

application.properties:

# 换成你自己zookeeper服务的地址
dubbo.registry.address=zookeeper://localhost:2181

启动:

依次启动zookeeper、ProviderApplication.java、ConsumerApplication.java

项目地址:

百度网盘:https://pan.baidu.com/s/1dyxzUGJaiQUF0ibXGKBITA
提取码:ex2s

gitee:https://gitee.com/qinglianguzhou/dbuuo-demo.git文章来源地址https://www.toymoban.com/news/detail-760638.html

到了这里,关于Spingboot整合Dubbo+zookeeper的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot整合Dubbo和Zookeeper分布式服务框架使用的入门项目实例

    Dubbo是一个 分布式服务框架 ,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求。其本质上是个远程服务调用

    2024年01月21日
    浏览(51)
  • 关于Apache Dubbo反序列化漏洞(CVE-2023-23638)的预警提示与对应的Zookeeper版本

            公司在升级dubbo过程中因 zookeeper版本不匹配,导致服务注册和调用出现异常 一、漏洞详情 Apache Dubbo是一款高性能、轻量级的开源Java服务框架。 Apache官方发布安全公告,修复了Apache Dubbo中的一个反序列化漏洞(CVE-2023-23638)。由于Apache Dubbo安全检查存在缺陷,导致可

    2024年02月15日
    浏览(39)
  • Spingboot 整合netty-socket.io

    依赖 注意版本号,不然client版本不对的话也是连不上的 https://github.com/mrniko/netty-socketio ​ `` 结构 3 配置 4 .ClientCache `` 5 . 连接处理类 6.工具处理类 7.NettySocketRunnable yaml 配置 8:nginx 配置 协议升级 wss(443) 或ws(80) 1: 注意server的版本和client版本是对应上的 2: 上线后注意线上是否

    2024年02月15日
    浏览(38)
  • SpingBoot——SB整合MB的web项目模板

    新建一个springboot项目,这里jdk版本和java版本根据需求选择 ——选择springboot版本和他提供的可以选择安装的依赖 这里因为是开发web项目,所以选择一个spring web 同时因为还要用到mysql,要一个mysql驱动,和一个mybatis框架简化开发 在配置文件application.properties当中完成和数据库

    2023年04月20日
    浏览(40)
  • SpingBoot整合Swagger和Hibernate-Validate练习

    需求:用SpingBoot+Swagger+Hibernate-Validate集成一个demo,用Swagger查看Controller的接口文档。Swagger接口包括Controller的请求和返回,用Hibernate-Validate校验Controller的请求参数的合法性。目前只需要校验非空即可。 @NotBlank 只能注解String字符串类型 @NotNull可以注解在Integer类型 @EnableOpenApi

    2024年02月16日
    浏览(34)
  • Dubbo+Zookeeper使用_dubbo zookeeper配置

    } ?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"? 4.0.0 server: port: 8081 spring: application: name: dubbo-consumer dubbo: registry: address: zookeeper://localhost:2181 # 连接到注册中心 protocol: name: dubbo # 指定的协议 port: 28081 # 指定的端口 scan: basePackages: com.hzy.controller # 接口列表和接口中的方法列表 server: port: 8082 spring:

    2024年04月15日
    浏览(34)
  • Dubbo+Zookeeper使用

    说明:Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。 本文介绍Dubbo的简单使用及一些Dubbo功能特性,注册中心使用的是ZooKeeper,可在官网下载。 (另外,在阿里巴巴发出的《微服务治理技术白皮

    2024年02月14日
    浏览(36)
  • SpringBoot + Dubbo + zookeeper实现

    目录 一,框架搭建 1. 启动zookeeper ! 2. IDEA创建一个空项目; 3.创建一个模块,实现服务提供者:provider-server , 选择web依赖即可 4.项目创建完毕,我们写一个服务,比如卖票的服务 编写接口 编写实现类 编写service 二,服务提供者 1,第一步  zookeeper的包我们去maven仓库下载,

    2024年04月26日
    浏览(41)
  • 服务框架Dubbo和ZooKeeper

    本篇为动物园之旅~ dubbo看作动物园的动物,那么zookeeper就是动物园 如果有人想去动物园看小老虎,那么动物园中有小老虎才能看到,否则看不到~ 关系:dubbo与 zookeeper的关系 Dubbo建议使用Zookeeper作为服务的注册中心 大型互联网项目的架构目标 传统项目和互联网项目 大型互联

    2024年02月03日
    浏览(45)
  • Dubbo+Zookeeper 实现服务远程调用

    提示:以下是本篇文章正文内容,Java 系列学习将会持续更新 官方文档 :https://cn.dubbo.apache.org/zh-cn/#td-block-1 Dubbo 是阿里巴巴公司开源的一个高性能、轻量级的 Java RPC 框架。 致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案。 三个核心功能: 基于接

    2023年04月19日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包