SpringBoot_分布式_Dubbo

本文详细介绍如何在SpringBoot项目中整合Dubbo,包括pom.xml依赖配置、application.properties服务配置、服务提供者与消费者代码示例及DubboAdmin管理工具的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


参考官方:http://dubbo.apache.org/zh-cn/index.html

依赖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">
	   
	   <!--添加SpringBoot parent支持 -->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.0.RELEASE</version>
	</parent>

	<modelVersion>4.0.0</modelVersion>
	<artifactId>itcast-dubbo-service</artifactId>

	   
	<dependencies>
		 <!--添加SpringBoot测试 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<!--添加dubbo的springboot依赖 -->
		<dependency>
			<groupId>com.alibaba.boot</groupId>
			<artifactId>dubbo-spring-boot-starter</artifactId>
			<version>0.2.0</version>
		</dependency>
		<!--添加dubbo依赖 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>dubbo</artifactId>
			<version>2.6.4</version>
		</dependency>

		 <!--添加springboot依赖,非web项目 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>
		       
		<dependency>
			<groupId>org.apache.zookeeper</groupId>
			<artifactId>zookeeper</artifactId>
			<version>3.4.13</version>
		</dependency>
		       
		<dependency>
			<groupId>com.github.sgroschupf</groupId>
			<artifactId>zkclient</artifactId>
			<version>0.1</version>
		</dependency>
	</dependencies>
	   
	<build>
		<plugins>
			 <!--添加springboot的maven插件 -->
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

配置文件application.properties

服务

#Spring boot application 
spring.application.name = dubbo-service 
server.port = 9090
 
#Service version 
dubbo.service.version = 1.0.0
 
#服务的扫描包 
dubbo.scan.basePackages  = com.vander.dubbo.service
 
#应用名称 
dubbo.application.name = dubbo-provider-demo
 
#协议以及端口 
dubbo.protocol.name = dubbo 
dubbo.protocol.port = 20880
 
#zk注册中心 
dubbo.registry.address = zookeeper://192.168.1.101:2181 
dubbo.registry.client = zkclient

消费

#Spring boot application 
spring.application.name = dubbo-consumer 
server.port = 9091
 
#应用名称 
dubbo.application.name = dubbo-consumer-demo
 
#zk注册中心 
dubbo.registry.address = zookeeper://192.168.1.101:2181 
dubbo.registry.client = zkclient

配置源码

1、创建pojo需要序列化
2、创建接口工程,供服务和消费依赖
3、服务方—接口实现类需要添加@Service注解指定版本

@Service(version = "${dubbo.service.version}") //声明这是一个dubbo服务 
public class UserServiceImpl implements UserService {
		//.....
}

4、服务方—启动类

@SpringBootApplication 
public class DubboProvider {
    public static void main(String[] args) {        
    	//非Web应用
       new SpringApplicationBuilder(DubboProvider.class).web(WebApplicationType.NONE).run(args);    
    } 
}

5、消费方—接口调用

  @Reference(version = "1.0.0")    
  private UserService userService;

服务的负载均衡

在集群负载均衡时,Dubbo 提供了多种均衡策略,缺省为 random 随机调用。
参考:http://dubbo.apache.org/zh-cn/docs/user/demos/loadbalance.html

1、启动多台服务方
2、配置消费方轮询均衡策略

  @Reference(version = "1.0.0",loadbalance = "roundrobin")    
  private UserService userService;

Dubbo Admin

Dubbo提供了可视化的界面管理工具,方便我们对服务进行管理。
代码地址:https://github.com/apache/incubator-dubbo-ops

部署安装:
1、下载并且解压:
git clone https://github.com/apache/incubator-dubbo-ops.git
2、修改配置文件:
在 dubbo-admin-backend/src/main/resources/application.properties 中指定注册中心地址。
3、Maven构建项目
未安装maven,可通过以下方式安装

vim /etc/profile 
#写入如下内容 
export MVN_HOME=/haoke/apache-maven-3.6.0 
export PATH={MVN_HOME}/bin:PATH

4、通过mavn插件启动程序:

mvn clean package
mvn --projects dubbo-admin-backend spring-boot:run

5、访问
http://192.168.1.101:8080/#/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值