当前位置: 首页 > news >正文

dubbo框架技术文档-《spring-boot整合dubbo框架搭建+配置文件》框架的本地基础搭建

阿丹:

        目前流行的微服务更多的就是dubbo和springcould微服务。之前阿丹没有出过dubbo相关的文章,因为之前接触springcould的微服务概念比较多一点,但是相对于springcould来说,springcould服务之间的调用是大多是使用了nacos,来构造了http的请求来完成的。但是对于dubbo的服务来说就更加的灵活。所以掌握dubbo也是一个很重要的技能,本文章阿丹就带着大家从企业的项目出发搭建一个多环境运行的spring整合的dubbo框架。

        多环境就是本地环境、测试环境、生产环境。

简单介绍dubbo:

Apache Dubbo 是一款高性能、轻量级的开源 Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。 Dubbo 的主要特性包括:

  • 支持多种协议:Dubbo 提供了多种协议的支持,包括 HTTP、Hessian、Dubbo、RMI、Webservice、Memcached 等。
  • 高性能:Dubbo 使用 Netty 作为网络通信框架,并进行了大量的优化,使得其在网络通信方面的性能非常优秀。
  • 动态配置:Dubbo 支持动态调整配置参数,可以在不重启服务的情况下改变服务提供者或消费者的行为。
  • 自动化服务治理:Dubbo 提供了自动化服务治理的能力,包括服务注册与发现、智能路由、流量调度等。
  • 容错性:Dubbo 支持智能容错机制,可以根据不同的错误情况采取不同的应对策略。
  • 负载均衡:Dubbo 支持多种负载均衡算法,包括随机、轮询、最少活跃调用数等。
  • 可扩展性:Dubbo 设计上遵循微内核的设计理念,只提供了最基础的核心功能,其他的高级功能都通过插件的方式实现,具有很好的可扩展性。 此外,Dubbo 还提供了丰富的工具和组件,包括可视化监控中心、配置中心、API网关等,方便用户进行管理和运维。

文章内容:

        我会先将整体服务和框架搭建起来然后再将框架改成不同环境下运行的项目。并附带配置文件!!

项目结构:

同学们可以学习一下这个项目的结构,以及每个包的作用,我之前专门出了一个文章描述这个包的用处。

引入依赖:

注意:我们在企业中开发的时候在引入依赖的时候一定要谨慎!!!尤其是进行二次开发的同学们,一定要去项目中的其他模块先观察,版本以及依赖关系,不然的话在最后处理就会很麻烦!!!还可能会造成大事故!!!!

阿丹小贴士:

        不同版本之间极有可能会造成因为版本冲突而导致的程序无法启动等等问题,所以在实践本文章的小伙伴一定要在新搭建项目的时候使用IDEA中的快捷键CTRL+SHIFT+F来查找自己二开的项目中的已经使用的版本。

<?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.adn.export</groupId><artifactId>adn-exportCSV</artifactId><version>1.0-SNAPSHOT</version>
<!--    指定spring版本--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.8</version><relativePath /> <!-- lookup parent from repository --></parent><properties><maven.compiler.source>11</maven.compiler.source><maven.compiler.target>11</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>com.alibaba.spring.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.0.0</version></dependency><!-- 引入 Zookeeper 依赖项 --><!-- 这是 Apache Dubbo 所需的一个核心组件,用于服务注册与发现 --><!-- 参考:https://mvnrepository.com/artifact/org.apache.dubbo/dubbo-dependencies-zookeeper --><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-dependencies-zookeeper</artifactId><version>2.7.15</version><type>pom</type><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion></exclusions></dependency><!-- 引入 Spring Boot Web 开发所需的依赖项 --><!-- 参考:https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion></exclusions></dependency><!-- 引入 Log4j 日志框架 --><!-- 注意:请根据实际情况调整 Log4j 版本号;并注意日志框架版本与系统中已存在的日志库兼容性问题 --><!-- 参考:https://mvnrepository.com/artifact/log4j/log4j --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency></dependencies></project>

为了便于大家理解写上了全部的注释,但是要注意根据后面的操作,这个写配置文件会进行修改。

配置文件:

        我这里的配置文件采用的是application.yml

        这里只是一个简单的示例,

# Spring Boot 的应用名称
spring:application:name: adn-exportCSV# Web 服务端口设置
server:port: 9091# 服务器的上下文路径servlet:context-path: /# Dubbo 配置
dubbo:# 标识当前节点为 Dubbo 既是服务提供者也是消费者server: false# 设置 Dubbo 注册中心,这里采用 ZooKeeperregistry: zookeeper://127.0.0.1:2181

启动类编码:

import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@EnableDubboConfiguration
public class ExportCsvApplication {public static void main(String[] args) {SpringApplication.run(ExportCsvApplication.class,args);}
}

先启动zookper:

如果不会的阿丹后期会专门出一个文章给同学们提供资源。

 运行!!!

恭喜你的第一个dubbo项目就运行启动了!!! 

相关文章:

dubbo框架技术文档-《spring-boot整合dubbo框架搭建+配置文件》框架的本地基础搭建

阿丹&#xff1a; 目前流行的微服务更多的就是dubbo和springcould微服务。之前阿丹没有出过dubbo相关的文章&#xff0c;因为之前接触springcould的微服务概念比较多一点&#xff0c;但是相对于springcould来说&#xff0c;springcould服务之间的调用是大多是使用了nacos&#…...

中通快递单号查询入口,将指定某天签收的单号筛选出来

批量查询中通快递单号的物流信息&#xff0c;将指定某天签收的单号筛选出来。 所需工具&#xff1a; 一个【快递批量查询高手】软件 中通快递单号若干 操作步骤&#xff1a; 步骤1&#xff1a;运行【快递批量查询高手】软件&#xff0c;并登录 步骤2&#xff1a;点击主界面左…...

MySQL-含json字段表和与不含json字段表查询性能对比

含json字段表和与不含json字段表查询性能对比 说明: EP_USER_PICTURE_INFO_2:不含json字段表 20200729json_test:含有json字段表 其中20200729json_test 标准ID、MANAGER_NO、PHONE_NO 为非json字段 data为json字段 2个表中MANAGER_NO、PHONE_NO都创建了各自的索引 测试…...

如何用Docker快速搭建本地开发环境

&#x1f4e2; 声明&#xff1a; &#x1f344; 大家好&#xff0c;我是风筝 &#x1f30d; 作者主页&#xff1a;【古时的风筝CSDN主页】。 ⚠️ 本文目的为个人学习记录及知识分享。如果有什么不正确、不严谨的地方请及时指正&#xff0c;不胜感激。 直达博主&#xff1a;「…...

SpringDataJPA基础

简介 Spring Data为数据访问层提供了熟悉且一致的Spring编程模版&#xff0c;对于每种持久性存储&#xff0c;业务代码通常需要提供不同存储库提供对不同CURD持久化操作。Spring Data为这些持久性存储以及特定实现提供了通用的接口和模版。其目的是统一简化对不同类型持久性存储…...

程序员如何成为自由的独立开发者?

你是不是那个整天坐在电脑前敲代码的程序员朋友&#xff1f;作为程序员&#xff0c;你是否也曾思考过如何成为一名独立开发者&#xff1f;思考过究竟如何踏上这段充满挑战和创造的旅程&#xff1f; 现在这个数码时代&#xff0c;技术不断演进&#xff0c;越来越多的程序员朋友…...

Ant Design Vue(v1.7.8)a-table组件的插槽功能

本案例中&#xff0c;编写了一个名为stockAdd的vue&#xff08;v2.5.17&#xff09;自定义组件&#xff0c;使用a-table组件的插槽功能&#xff0c;创建了一个可编辑的数据表格&#xff1a; 表格用于添加采购的物品&#xff0c;点“新增物品”按键&#xff0c;表格添加一行&…...

笔记69:Conv1d 和 Conv2d 之间的区别

笔记地址&#xff1a;D:\work_file\&#xff08;4&#xff09;DeepLearning_Learning\03_个人笔记\4. Transformer 网络变体 a a a a a a a a a a a...

关于马达保护器 的选型 你知道吗

一、智能马达保护器的介绍 在有色冶炼中&#xff0c;根据工艺需求和客户需求&#xff0c;智能电动机保护器的主要应用模式有保护模式、端子控制模式、全通信模式和半通信模式。 4.1保护模式 在保护模式下&#xff0c;智能电动机保护器只利用其自身的保护功能和测量功能&#…...

springboot(ssm高校竞赛管理系统 在线竞赛平台 Java系统

springboot(ssm高校竞赛管理系统 在线竞赛平台 Java系统 开发语言&#xff1a;Java 框架&#xff1a;ssm/springboot vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&#xff08;或8.0&#xff09; 数…...

SDXL使用animateDiff和hotshot-xl进行文生视频

截至2023.12.8号&#xff0c;目前市面上有两款适用于SDXL的文生视频开源工具&#xff0c;分别是AnimateDiff和hotshot-xl。 一、工具下载链接 &#xff08;1&#xff09;AnimateDiff的webui版本的git链接&#xff1a; GitHub - continue-revolution/sd-webui-animatediff: A…...

【高数:3 无穷小与无穷大】

【高数&#xff1a;3 无穷小与无穷大】 1 无穷小与无穷大2 极限运算法则3 极限存在原则4 趋于无穷小的比较 参考书籍&#xff1a;毕文斌, 毛悦悦. Python漫游数学王国[M]. 北京&#xff1a;清华大学出版社&#xff0c;2022. 1 无穷小与无穷大 无穷大在sympy中用两个字母o表示无…...

C语言预读取技术 __builtin_prefetch

__builtin_prefetch 是一个编译器内置函数&#xff0c;用于在编译时向编译器发出指令&#xff0c;要求在执行期间预取内存数据。它通常用于提高程序的性能&#xff0c;特别是对于那些需要频繁访问内存的情况。 __builtin_prefetch 函数的语法如下&#xff1a;c __builtin_prefe…...

自动驾驶学习笔记(十三)——感知基础

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo Beta宣讲和线下沙龙》免费报名—>传送门 文章目录 前言 传感器 测距原理 坐标系 标定 同…...

WLAN配置实验

本文记录了WLAN配置实践的过程&#xff0c;该操作在华为HCIA中属于相对较复杂的实验&#xff0c;记录过程备忘。这里不就WLAN原理解释&#xff0c;仅进行配置实践&#xff0c;可以作为学习原理时候的参考。本文使用华为ENSP进行仿真。实验拓扑图如下&#xff1a; 1.WLAN工作流程…...

java_web接收前端传的excel文件读取数据

#本次做一个将患者数据导入到某个模块的功能&#xff0c;前期集成的代码时不时出现异常&#xff0c;本次进行修改记录 //controller层/*** 导入患者数据*/RejectReplayRequestPostMapping("/importData")public Result<?> importData(HttpServletRequest req…...

在Vue开发中v-if指令和v-show指令的使用介绍和区别及使用场景

一、条件渲染 v-if v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回真值时才被渲染。 <h1 v-if"awesome">Vue is awesome!</h1>v-else 你也可以使用 v-else 为 v-if 添加一个“else 区块”。 <h1 v-if"awesome"&g…...

Power Query是啥

Power Query是一种用于数据获取、转换和整理的功能强大的工具&#xff0c;它是Microsoft Excel和Power BI中的一个组件。Power Query可以帮助用户从各种数据源中获取数据&#xff0c;并进行数据清洗、转换和整理&#xff0c;以便进一步分析和可视化。 使用Power Query&#xf…...

在k8s中部署nfs-client-provisioner

1、部署过程 1.1、环境依赖 在部署nfs-client-provisioner之前&#xff0c;需要先部署nfs服务。 因为&#xff0c;nfs-client-provisioner创建的pv都是要在nfs服务器中搭建的。 本示例中的nfs server的地址如下&#xff1a; [rootnode1 /]# showmount -e Export list for …...

23.12.10日总结

周总结 这周三的晚自习&#xff0c;学姐讲了一下git的合作开发&#xff0c;还有懒加载&#xff0c;防抖&#xff0c;节流 答辩的时候问了几个问题&#xff1a; 为什么在js中0.10.2!0.3? 在js中进行属性运算时&#xff0c;会出现0.10.20.300000000000000004js遵循IEEE754标…...

学习网络安全至少需要什么配置的电脑?

很多同学对于学习 Web 渗透所需的电脑配置仍有疑问&#xff0c;所以老师结合自己的教学经验&#xff0c;总结了关于电脑配置要求的一些内容&#xff0c;遂成此文。当然&#xff0c;对于电脑配置的追求是无上限的&#xff0c;所以有条件的话最好还是搞一台配置强劲的电脑。 一、…...

为什么你的Polars 2.0清洗脚本在1TB数据下突然卡死?——Lazy Execution陷阱、Chunking边界与并发泄漏三重真相

第一章&#xff1a;为什么你的Polars 2.0清洗脚本在1TB数据下突然卡死&#xff1f;——Lazy Execution陷阱、Chunking边界与并发泄漏三重真相Lazy Execution的隐式延迟引爆内存雪崩 Polars 2.0 默认启用 LazyFrame 模式&#xff0c;所有操作仅构建执行计划&#xff0c;直到调用…...

Gitee:数字化转型浪潮中企业项目管理的战略级解决方案

在数字经济成为全球经济增长新引擎的背景下&#xff0c;企业数字化转型已从"选择题"变为"必答题"。项目管理工具作为数字化转型的基础设施&#xff0c;其重要性日益凸显。根据IDC最新预测&#xff0c;到2025年&#xff0c;中国数字经济规模将突破80万亿元&…...

3个核心优势:BG3 Mod Manager的模组管理创新特性

3个核心优势&#xff1a;BG3 Mod Manager的模组管理创新特性 【免费下载链接】BG3ModManager A mod manager for Baldurs Gate 3. This is the only official source! 项目地址: https://gitcode.com/gh_mirrors/bg/BG3ModManager 博德之门3&#xff08;Baldurs Gate 3&…...

从原理到实践:深入理解Shellcode免杀技术及其对抗策略

Shellcode免杀技术的深度解析与对抗策略演进 在网络安全攻防对抗的永恒博弈中&#xff0c;Shellcode免杀技术始终占据着特殊地位。不同于传统的恶意软件检测规避&#xff0c;Shellcode免杀更注重代码层面的"隐形"能力&#xff0c;其核心在于让关键载荷在内存中执行时…...

如何永久保存微信聊天记录?WeChatMsg终极指南让你重获数据掌控权

如何永久保存微信聊天记录&#xff1f;WeChatMsg终极指南让你重获数据掌控权 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trendin…...

实战分享:如何用本地替换和插桩调试搞定Kasada最新版x-kpsdk-cd环境检测

逆向工程实战&#xff1a;Kasada最新版x-kpsdk-cd环境检测的深度调试策略 在当今Web安全防护体系中&#xff0c;Kasada作为新一代反自动化攻击解决方案&#xff0c;其x-kpsdk-cd机制通过动态加密和运行时环境检测构建了强大的防御层。面对从280位扩展到294位的加密数组和Proxy保…...

华为OD面试官最爱问的10个Python八股文,我这样答拿到了Offer

华为OD Python面试实战指南&#xff1a;10个高频问题的深度解析与应答策略 面试开场&#xff1a;如何用技术叙事打动面试官 去年冬天&#xff0c;我坐在华为OD的会议室里&#xff0c;手指不自觉地敲击着桌面。面试官推了推眼镜&#xff0c;抛出了第一个Python问题。那一刻我突然…...

Qwen-Ranker Pro快速部署:Windows WSL2环境下Streamlit兼容性方案

Qwen-Ranker Pro快速部署&#xff1a;Windows WSL2环境下Streamlit兼容性方案 1. 环境准备与系统要求 在Windows WSL2环境中部署Qwen-Ranker Pro需要确保系统满足以下基本要求&#xff1a; 硬件要求&#xff1a; 内存&#xff1a;至少8GB RAM&#xff08;推荐16GB以上&…...

intv_ai_mk11作品分享:会议纪要提炼、政策白话解读、技术术语通俗化实例

intv_ai_mk11作品分享&#xff1a;会议纪要提炼、政策白话解读、技术术语通俗化实例 1. 模型简介与核心能力 intv_ai_mk11是一款基于Llama架构的中等规模文本生成模型&#xff0c;特别擅长处理各类文本转换和解释任务。这个开箱即用的解决方案已经完成本地部署&#xff0c;用…...