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项目就运行启动了!!! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/224732.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

五周年活动周历!AutoGen解析·技术畅聊·3大城市工坊本周启动!

飞桨星河社区在成立的5年以来&#xff0c;已汇集660万AI开发者&#xff0c;覆盖深度学习初学者、在职开发者、企业开发者、高校教师、创业者等&#xff0c;已成为AI领域最具影响力的社区之一&#xff0c;无论是AI爱好者还是AI开发者&#xff0c;都能在这里探索AI的无限可能。 …

UData+StarRocks在京东物流的实践 | 京东物流技术团队

1 背景 数据服务与数据分析场景是数据团队在数据应用上两个大的方向&#xff0c;行业内大家有可能会遇到下面的问题&#xff1a; 1.1 数据服务 烟囱式开发模式&#xff1a;每来一个需求开发一个数据服务&#xff0c;数据服务无法复用&#xff0c;难以平台化&#xff0c;技术…

4.3-Linux网络命名空间

查看本机的netWork namespace ip netns list 删除netWork namespace ip netns delete netnsName 创建netWork namespace ip netns add test1 查看test1这个netWork namespace的ip信息&#xff1a; ip netns exec test1 ip a 可以在虚拟机上执行&#xff1a;ip link 同样&#…

Git的原理与使用(一):Git的基本操作(包含:版本回退)

Git原理与使用一 一.Git的初识与安装1.什么是Git2.如何安装Git1.git命令与git help(Git下的"man手册")2.centos下安装Git3.ubantu下安装Git 二.Git的前置操作与前置知识1.创建Git本地仓库2.配置Git3.理解Git的分区1.工作区2.暂存区3.版本库4.分区关系总结 三.添加文件…

vue中的keep-alive详解与应用场景

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;Vue篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue-keep-alive 目录 一、Keep-alive 是什么 二、使用场景 三、原理分析 四、案例实现 activa…

MaaS/PaaS/SaaS

生成式AI时代的AI Infra—从DevOps->MLOps->LLMOps - 知乎距离上次讲LLM相关的内容已经过去2个月了 LLM as Controller—无限拓展LLM的能力边界&#xff0c;本文想要从AI Infra的角度出发&#xff0c;从更宏观的角度看Generative AI对AI Infra生态产生的变化&#xff0c;…

Ops实践 | 从零开始,在云原生环境下快速实现K8S集群可视化监控

微信改版了&#xff0c;现在看到我们全凭缘分&#xff0c;为了不错过【全栈工程师修炼指南】重要内容及福利&#xff0c;大家记得按照上方步骤设置「接收文章推送」哦~ 关注回复【交流群】加入【SecDevOps】学习答疑群交流群! 原文链接&#xff1a;Ops实践 | 从零开始&#xff…

【C++】探索C++模板编程

文章目录 什么是C模板&#xff1f;模板的基本语法类型模板参数模板函数的示例类模板的示例总结 C模板是一种强大的编程工具&#xff0c;它可以实现泛型编程&#xff0c;使代码更加灵活和可重用。本篇博客将介绍C模板的基本语法、类型模板参数和模板函数的使用&#xff0c;并通过…

Spring不再支持Java8了

在今天新建模块的时候发现了没有java8的选项了&#xff0c;结果一查发现在11月24日&#xff0c;Spring不再支持8了&#xff0c;这可怎么办呢&#xff1f;我们可以设置来源为阿里云https://start.aliyun.com/ 。 java8没了 设置URL为阿里云的地址

端口被占用解决方法

1、查出被哪个进程占用&#xff1a; &#xff08;1&#xff09;开始---->运行---->cmd&#xff0c;或者是windowR组合键&#xff0c;调出命令窗口&#xff1b; &#xff08;2&#xff09;输入命令&#xff1a;netstat -ano&#xff0c;列出所有端口的级泥夏情况。在列表…

Phpstudy v8.0/8.1添加 php-7.4.9

1、官网下载最新的php版本 打开Windows版的官网下载&#xff0c;地址&#xff1a;PHP For Windows: Binaries and sources Releases 页面上有不同的PHP版本&#xff0c;这里我们下载的是64位nts版的PHP7.4.9&#xff0c;php-7.4.9-nts-Win32-vc15-x64.zip。 2、解压下载的文…

【开发实践】网页预览excel表格原版样式

一、需求分析 由于业务部门需要&#xff0c;在导出excel表格页面&#xff0c;不需要先下载&#xff0c;就可以直接在页面上预览该表格文件。 二、代码实现 使用Luckysheet实现&#xff1a; 什么是Luckysheet Luckysheet &#xff0c;一款纯前端类似excel的在线表格&#xff0…