SpringBoot整合Dubbo

SpringBoot整合DubboDubbo 官方文档中提到有三种方式来开发 Dubbo 的应用程序 分别是基于 XML 配置实现继续注解实现 常用 推荐 基于 API 实现本文用的注册中心是 zookeeper 所以需要下载并安装 zookeeper

Dubbo官方文档中提到有三种方式来开发Dubbo的应用程序,分别是

基于XML配置实现
继续注解实现(常用 / 推荐)
基于API实现
本文用的注册中心是zookeeper,所以需要下载并安装zookeeper。安装zookeeper的示例网上有很多了,也很简单,自行安装就好啦。启动zookeeper之后如下图:
安装步骤
https://blog.csdn.net/qiunian/article/details/?ops_request_misc=%257B%2522request%255Fid%2522%253A%%2522%252C%2522scm%2522%253A%3..pc%255Fall.%2522%257D&request_id=65&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v28-1-.pc_search_result_cache&utm_term=windouw%E5%AE%89%E8%A3%85zookeeper&spm=1018.2118.3001.4449
在这里插入图片描述

在这里插入图片描述

创建一个空的maven项目,命名为dubbo-springboot

<?xml version="1.0" encoding="UTF-8"?>

com.bazooka
dubbo-springboot
1.0-SNAPSHOT

dubbo-springboot-api dubbo-springboot-consumer dubbo-springboot-provider

创建dubbo-springboot-api子项目
整个子项目其实什么也没有做,只是单纯的定义一个接口。
package com.bazooka.api.service;

public interface HelloDubboService {

String sayHello(String name);
}
创建dubbo-springboot-provider子项目
这个子项目主要是以服务提供者的身份编写HelloDubboService的实现,来供服务消费者远程调用。

com.alibaba.boot dubbo-spring-boot-starter 0.2.0 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test org.junit.vintage junit-vintage-engine com.bazooka dubbo-springboot-api 0.0.1-SNAPSHOT compile

编写服务提供者的实现
@Service
@Component
public class HelloDubboServiceImpl implements HelloDubboService {

@Override
public String sayHello(String name) {
return “欢迎” + name + “使用Dubbo。”;
}
}
@Service是Dubbo提供的注解
修改application.properties
#当前服务/应用的名字
dubbo.application.name=dubbo-springboot-provider
#注册中心的协议和地址
dubbo.registry.protocol=zookeeper
dubbo.registry.address=127.0.0.1:2181
#通信规则(通信协议和接口)
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
#连接监控中心
dubbo.monitor.protocol=registry
添加@EnableDubbo注解
这个注解的含义主要是来扫描包,实现Dubbo的自动装配,相当于配置dubbo.scan.base-packages。

@SpringBootApplication
@EnableDubbo
public class ProviderApplication {

public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
}
}
一切就绪之后启动ProviderApplication。

pom保持一致就可以啦。
定义一个ConsumerService并实现它。
这里的@Service是import org.springframework.stereotype.Service
@Reference来代替 @Autowired
@Service
public class ConsumerServiceImpl implements ConsumerService {

@Override
public String sayHello(String message) {
return helloDubboService.sayHello(message);
}
}
修改application.properties
server.port=8081

dubbo.application.name=order-service-consumer
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.monitor.protocol=registry
同样的需要在main方法上添加@EnableDubbo注解
@SpringBootApplication
@EnableDubbo
public class ConsumerApplication {

public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
}
创建一个HelloDubboController如下:
@RestController
public class HelloDubboController {

@GetMapping("/sayHello")
public String sayHello(@RequestParam(“name”) String name) {
return consumerService.sayHello(name);
}
}
在这里插入图片描述

今天的文章 SpringBoot整合Dubbo分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-12-08 23:27
下一篇 2024-12-08 23:21

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/80700.html