作者:
逍遥Sean
简介:一个主修Java的Web网站\游戏服务器后端开发者
主页:https://blog.csdn.net/Ureliable
觉得博主文章不错的话,可以三连支持一下~ 如有需要我的支持,请私信或评论留言!
Dubbo是一个高性能分布式服务的Java RPC框架,它可以可以帮助实现不同应用之间的远程调用,帮助我们快速开发和提供高性能、高可靠性的分布式服务,同时提供服务治理、容错、负载均衡等功能。
下载Dubbo:前往Dubbo的官方网站(https://dubbo.apache.org/zh-cn/
)下载最新版本的Dubbo。
安装Zookeeper:Dubbo依赖于Zookeeper,需要先安装Zookeeper。在Zookeeper的官网(https://zookeeper.apache.org/
)下载最新版本的Zookeeper。
启动Zookeeper:解压Zookeeper,进入bin目录,执行命令:./zkServer.sh start,即可启动Zookeeper。
解压Dubbo:将Dubbo的压缩包解压缩到本地。
编写Dubbo配置文件:在Dubbo解压后的目录下,新建一个名为dubbo.properties的文件,并在其中写入Dubbo的配置信息。
启动应用:在应用的启动脚本中,增加启动Dubbo的命令。例如,在Java应用的启动脚本中,增加以下代码:
java -Djava.ext.dirs=$JAVA_HOME/lib/ext \
-Djava.net.preferIPv4Stack=true \
-Ddubbo.application.logger=slf4j \
-Ddubbo.registry.address=zookeeper://127.0.0.1:2181 \
-jar your-jar.jar
http://localhost:8080/
)。以上就是Dubbo的下载安装步骤。需要注意的是,Dubbo的安装过程比较复杂,建议了解基本的Java和RPC相关知识后再进行安装
使用Dubbo可以分为以下步骤:
pom.xml
文件中添加dubbo依赖:<dependency>
<groupId>com.alibabagroupId>
<artifactId>dubbo-spring-boot-starterartifactId>
<version>${dubbo.version}version>
dependency>
application.properties
或application.yml
配置文件中添加dubbo的配置:# 注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
# 应用名
dubbo.application.name=example-provider
# 服务提供者协议
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
# 服务提供者接口包名
dubbo.scan.base-packages=com.example.service.impl
public interface GreetingService {
String sayHello(String name);
}
@Service
public class GreetingServiceImpl implements GreetingService {
@Override
public String sayHello(String name) {
return "Hello, " + name;
}
}
在实现类上添加@Service
注解,将服务实现类暴露给dubbo框架。
@EnableDubbo
注解,开启dubbo的功能:@SpringBootApplication
@EnableDubbo
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
可以使用dubbo自带的Dubbo Admin
,或者使用dubbo提供的REST API进行测试。也可以编写测试类测试服务是否可用:
@RunWith(SpringRunner.class)
@SpringBootTest
public class GreetingServiceTest {
@Reference
private GreetingService greetingService;
@Test
public void testSayHello() {
String result = greetingService.sayHello("dubbo");
Assert.assertEquals("Hello, dubbo", result);
}
}
在测试类中使用@Reference
注解注入dubbo服务,并进行测试。
具体使用可以参考Dubbo的官方文档和示例代码。