【SpringBoot】| SpringBoot集成Dubbo

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

目录

一:SpringBoot集成Dubbo

1. 创建公共项目

2. 创建提供者项目provider

3. 创建消费者consumer项目

4. 注册中心Zookeeper的安装

图书推荐:《Python 自动化办公应用大全》


一:SpringBoot集成Dubbo

阿里巴巴提供了 dubbo 集成 springBoot 开源项目, 可以到 GitHub 上 GitHub - apache/dubbo-spring-boot-project: Spring Boot Project for Apache Dubbo查看入门教程

Apache Dubbo Spring Boot 项目可以轻松使用 Dubbo 作为 RPC 框架创建Spring Boot应用程序。更重要的是,它还提供: 

  • 自动配置功能(例如,注释驱动、自动配置、外部化配置)。
  • 生产就绪的功能(例如,安全性、健康检查、外部化配置)。

Apache Dubbo是一个高性能、轻量级、基于java的RPC框架。 Dubbo 提供了三个关键功能,包括基于接口的远程调用、容错和负载均衡以及自动服务注册和发现。

发布版本

dubbo-spring-boot-starter您可以通过将以下依赖项添加到 pom.xml 来将最新内容引入您的项目。

<dependencies>
    <!-- Dubbo Spring Boot Starter -->
    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>2.7.8</version>
    </dependency>    
</dependencies>

1. 创建公共项目

按照 Dubbo 官方开发建议,创建一个接口项目,该项目只定义接口和 model 类。此项目就是一个普通的 maven 项目

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.zl</groupId>
  <artifactId>dubbo-maven-1</artifactId>
  <version>1.0-SNAPSHOT</version>
  
</project>

model类

package com.zl.model;

import java.io.Serializable;

public class Student implements Serializable {
    private static final long serialVersionUID = 7924975682459971235L;
    private Integer id;
    private String name;
    private Integer age;

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

服务接口

package com.zl.service;

import com.zl.model.Student;


public interface StudentService  {
    Student queryStudent(Integer id);
}

2. 创建提供者项目provider

是一个SpringBoot项目,所以需要新建一个新工程!

第一步:创建SpringBoot项目,引入核心依赖

pom.xml

核心依赖:公共项目的gav、dubbo依赖、zookeeper依赖。

<?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 https://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.7.15</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<groupId>com.zl</groupId>
	<artifactId>dubbo-provider</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>dubbo-provider</name>
	<description>dubbo-provider</description>

	<properties>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<!--加入公共项目的gav-->
		<dependency>
			<groupId>com.zl</groupId>
			<artifactId>dubbo-maven-1</artifactId>
			<version>1.0-SNAPSHOT</version>
		</dependency>
		<!--dubbo依赖-->
		<dependency>
			<groupId>org.apache.dubbo</groupId>
			<artifactId>dubbo-spring-boot-starter</artifactId>
			<version>2.7.8</version>
		</dependency>
		<!--zookeeper依赖-->
		<dependency>
			<groupId>org.apache.dubbo</groupId>
			<artifactId>dubbo-dependencies-zookeeper</artifactId>
			<version>2.7.8</version>
			<type>pom</type>
			<exclusions>
				<!-- 排除log4j依赖 -->
				<exclusion>
					<artifactId>slf4j-log4j12</artifactId>
					<groupId>org.slf4j</groupId>
				</exclusion>
			</exclusions>
		</dependency>

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

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

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

第二步:实现Service公共项目的接口,暴露服务

注:使用@DubboService注解去暴露服务;使用interfaceClass属性指定接口的类,version属性指定版本号,还可以使用timeout指定延迟时间。

package com.zl.service.impl;

import com.zl.model.Student;
import com.zl.service.StudentService;
import org.apache.dubbo.config.annotation.DubboService;

// 暴露服务
@DubboService(interfaceClass = StudentService.class,version = "1.0"
,timeout = 5000)
public class StudentServiceImpl implements StudentService {
    @Override
    public Student queryStudent(Integer id) {
        Student student = new Student();
        if (1001 == id){
            student.setId(1001);
            student.setName("Jack");
            student.setAge(18);
        }else if(1002 == id){
            student.setId(1002);
            student.setName("Rose");
            student.setAge(22);
        }

        return student;
    }
}

第三步:application.properties进行dubbo属性配置

#配置服务器名称
spring.application.name=studentService-provider
#配置扫描的包
dubbo.scan.base-packages=com.zl.service
#配置dubbo协议
#dubbo.protocol.name=dubbo
#dubbo.protocol.port=20881
#注册中心
dubbo.registry.address=zookeeper://localhost:2181

第四步:启动类

注:适应@EnableDubbo注解启动dubbo,这是一个复合注解,有@EnableDubboConfig和

@DubboComponentScan的功能。

package com.zl;

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

@SpringBootApplication
@EnableDubbo // 启动Dubbo
public class DubboProviderApplication {

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

}

3. 创建消费者consumer项目

第一步:创建SpringBoot项目,引入核心依赖,和提供者相同;增加一个web依赖,方便测试

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

第二步:controller调用远程服务

注:使用@DubboReference注解调用远程服务,并把创建好的代理对象,注入给studentService。

package com.zl.controller;

import com.zl.model.Student;
import com.zl.service.StudentService;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class DubboController {
    // 这里的interfaceClass属性省略也行
    @DubboReference(interfaceClass = StudentService.class,version = "1.0")
    private StudentService studentService;

    @GetMapping("/query")
    public String queryStudent(){
        Student student = studentService.queryStudent(1001);
        return "调用远程接口,获取对象:"+student;
    }

}

第三步:application.properties进行dubbo属性配置

#指定服务名称
spring.application.name=consumer-application
#指定注册中心
dubbo.registry.address=zookeeper://localhost:2181

第四步:启动类

package com.zl;

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

@SpringBootApplication
@EnableDubbo
public class DubboConsumerApplication {

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

}

4. 注册中心Zookeeper的安装

解压下载好的Zookeeper压缩包:

【SpringBoot】| SpringBoot集成Dubbo,第五步:互联网分布式,spring boot,dubbo,后端

C:\dev\Zookeeper\apache-zookeeper-3.5.5-bin\conf\zoo.cfg进行配置

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.

#dataDir=/tmp/zookeeper
#修改存放临时生成的数据的目录
dataDir=C:/dev/Zookeeper/apache-zookeeper-3.5.5-bin/data

# the port at which the clients will connect
#端口号
clientPort=2181
#需要启动另外一个服务,默认端口是8080,防止冲突修改一下
admin.serverPort=8888
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

执行zkServer.cmd程序,启动Zookeeper

【SpringBoot】| SpringBoot集成Dubbo,第五步:互联网分布式,spring boot,dubbo,后端

 启动提供者和消费者项目的启动类

【SpringBoot】| SpringBoot集成Dubbo,第五步:互联网分布式,spring boot,dubbo,后端

进行访问

【SpringBoot】| SpringBoot集成Dubbo,第五步:互联网分布式,spring boot,dubbo,后端

图书推荐:《Python 自动化办公应用大全》

本次送书 1本! 
活动时间:截止到 2023-09-29 00:00:00。

抽奖方式:利用程序进行抽奖。

参与方式:关注博主(只限粉丝福利哦)、点赞、收藏,评论区随机抽取,最多三条评论!

关键点

1. 借助ChatGPT与Python轻松实现办公自动化。

2. Excel Home多位微软全球MVP专家打造,用大量实例介绍使用Python操作Excel、Word、PPT和日常办公中涉及的各种对象。

3. 方式新颖 详细介绍了如何用 ChatGPT 来补充学习知识点,以及如何快速生成所需的代码,零基础人员学习编程的成本进一步降低。

4. 内容丰富 以Excel数据处理与分析为重点,延展到 Word、PPT、邮件、图片、视频、音频、本地文件管理、网页交互等现代办公所需要处理的各种形式的数据。

5. 案例实用 用大量易借鉴的案例帮助用户学会在各个场景中使用自动化技术。

6. 作者权威 Excel Home团队策划,多位微软全球最有价值专家(MVP)通力打造,确保每个案例都实用,对编程小白友好。

7. 让没有编程经验的普通办公人员也能驾驭 Python,实现多个场景的办公自动化,提升效率!

内容简介

以Excel数据处理与分析为重点,延展到 Word、PPT、邮件、图片、视频、音频、本地文件管理、网页交互等现代办公所需要处理的各种形式的数据。

【SpringBoot】| SpringBoot集成Dubbo,第五步:互联网分布式,spring boot,dubbo,后端

当当网链接:《Python自动化办公应用大全(ChatGPT版)

京东的链接:京东安全文章来源地址https://www.toymoban.com/news/detail-720244.html

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

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

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

相关文章

  • 互联网大厂技术-HTTP请求-Springboot整合Feign更优雅地实现Http服务调用

    目录 一、SpringBoot快速整合Feign 1.添加Pom依赖 2.启动类添加注解 3.引用Feign服务 二、为请求添加Header的3种方式 1.添加固定header 2.通过接口签名添加header 3.动态添加header 三、为请求添加超时配置 1.默认超时时间 3.超时异常 4.全局超时配置 5.为单个服务设置超时配置 四、为请求配

    2024年02月04日
    浏览(61)
  • Java语言开发的AI智慧导诊系统源码springboot+redis 3D互联网智导诊系统源码

    Java 语言开发的AI智慧导诊系统源码 springboot+redis 3D 互联网智导诊系统源码 智慧导诊解决盲目就诊问题,减轻分诊工作压力。降低挂错号比例,优化就诊流程,有效提高线上线下医疗机构接诊效率。可通过人体画像选择症状部位,了解对应病症信息和推荐就医科室。 智慧导诊

    2024年04月23日
    浏览(48)
  • 产业互联网:补齐互联网的「短板」,重启互联网的「进化」

    尽管在互联网时代出现了诸多的乱象,但是,我们依然无法否认互联网时代给人们的生产和生活带来的影响和改变。即使如此,我们依然无法否认互联网本身其实是存在着诸多的问题和弊病的,这些问题和弊病所导致的一个最为直接的结果,便是互联网本身无法成为解决产业

    2024年02月02日
    浏览(58)
  • 互联网大厂技术-HTTP请求-Springboot整合Feign更优雅地实现Http服务调用 no suitable HttpMessageConverter found for response type

    目录 一、SpringBoot快速整合Feign 1.添加Pom依赖 2.启动类添加注解 3.引用Feign服务 二、为请求添加Header的3种方式 1.添加固定header 2.通过接口签名添加header 3.动态添加header 三、为请求添加超时配置 1.默认超时时间 3.超时异常 4.全局超时配置 5.为单个服务设置超时配置 四、为请求配

    2024年02月11日
    浏览(55)
  • 互联网医院系统|互联网医院平台改善就医方式

    在当今快节奏的生活中,互联网已经渗透到各个领域,医疗行业也不例外。互联网医院的出现,为人们提供了便捷的医疗服务,改变了传统医疗模式。本文将介绍互联网医院的系统功能、特点和优势,让您对互联网医院能够产生浓厚的兴趣。 一、系统功能 互联网医院以数字

    2024年02月11日
    浏览(57)
  • 互联网医院源码|互联网医院软件体现智慧医疗的优势

    现在大家看病一般都会直接在互联网医院平台上去就诊,每次大家需要看病时,可以在手机上直接去预约指定的医生,同城周边的所有医院都是可以去直接选择的,这样也可以去帮助大家节省很多的看病时间,在互联网医院软件中所具备的功能一般都是比较齐全的,那么互联

    2023年04月18日
    浏览(54)
  • 产业互联网的时代,就是互联网蝶变新生的时代

    不知道你有没有发现一个现象,即,现在那些所谓的新技术,几乎都是衍生于互联网,几乎都是由互联网玩家们开始衍生和发展起来的。区块链如此,云计算如此,前段时间火爆的ChatGPT和大模型,几乎都是如此。这些现象的背后,其实正在告诉我们,互联网正在从一个独立的

    2024年02月10日
    浏览(61)
  • 供求重构是产业互联网的核心 个体崛起是产业互联网的终点

    文章开头提到的网约车市场缘何会出现这样的困境?其中一个很重要的原因在于,建构于互联网模式之下的供求关系业已走到了尽头,仅仅只是依靠撮合和中介,仅仅只是凭借平台和中心开始无法破解供求两端的矛盾和问题。如何解决这一问题,其中一个很重要的原因就在于

    2024年02月14日
    浏览(47)
  • 客观和理性地看待产业互联网,寻找产业互联网的发展新路径

    当产业互联网呱呱坠地的时候,人们仅仅只是将它看成是一个互联网的孪生体,人们仅仅只是将它看成是一个互联网的变种。正是因为如此,我们才看到了以S2B为代表的新平台模式的衍生与出现。实践证明,仅仅只是以互联网的视角来看待产业互联网,发展产业互联网,是无

    2024年02月09日
    浏览(59)
  • 以前的互联网时代,其实就是一个以互联网技术为主导的年代

    事实上,以往,我们所经历的那个互联网玩家频出的年代,其实就是一个以互联网技术为主导的年代。在那样一个年代里,互联网技术几乎是解决一切痛点和难题的万能解药,几乎是破解一切行业痛点和难题的杀手锏。任何一个行业,只要是与互联网技术产生了联系,便开始

    2024年02月01日
    浏览(59)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包