springboot 集成dubbo

简介: springboot 集成dubbo

1.pom引入dubbo依赖

<dependency>
            <groupId>io.dubbo.springboot</groupId>
            <artifactId>spring-boot-starter-dubbo</artifactId>
            <version>1.0.0</version>
</dependency

2.application.properties中引入dubbo 配置信息

# Dubbo provider server config
spring.dubbo.application.name=provider
spring.dubbo.registry.address=zookeeper://ip:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
spring.dubbo.scan=com

3.封装接口service,接口实现类加dubbo的service注解
import com.alibaba.dubbo.config.annotation.Service;

以上是服务提供,服务消费和提供引入类似

4.消费者引用dubbo服务
首先把服务提供者的service接口打成jar包,service接口一定要有注释,此处最好打包时带源码,方便别人调用时查看调用的方法。

20170921112013050.png

import com.alibaba.dubbo.config.annotation.Reference;
@Reference(timeout=6000)
    private IRedisService redisService;

引入即可。
5.dubbo提供服务时的注意点:

若服务内有被事务代理的bean注入,或是方法有

import javax.transaction.Transactional;

被事务管理的,则服务注册zookeeper时会失败。
解决方案:
将有事务管理的方法写到另外的service类内。比如:

@Service
public class UserServiceImpl implements IUserService{

    private Logger logger = LoggerFactory.getLogger(UserServiceImpl.class);
    @Autowired
    private MemberRepository memberRepository;
 
    @Autowired
    private VoiceprintRepository voiceprintRepository;
    
    @Autowired
    private TranscationService transcationService;
     
    private Member insertMember(String contract, YHTUserVO yhtUserVO) {
    transcationService.save(member);
    }

UserServiceImpl是我要注册的dubbo服务,TranscationService为放置事务管理的方法类

import javax.transaction.Transactional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class TranscationService {

    @Autowired
    private MemberRepository memberRepository;
    @Transactional
    public void save(Member member){
        memberRepository.save(member);
    }
    @Transactional
    public void saveAndFlush(Member member){
        memberRepository.save(member);
    }
}

至此,基本就简单实现了注册服务与调用服务了。
查看dubbo服务是否注册和发布成功:

20170921111222531.png

6.若是服务既是提供者又是消费者,发现服务发现不了,可以把扫描包路径设置成一致的即可。

相关文章
|
2月前
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
1月前
|
Dubbo Java 应用服务中间件
深入探讨了“dubbo+nacos+springboot3的native打包成功后运行出现异常”的原因及解决方案
本文深入探讨了“dubbo+nacos+springboot3的native打包成功后运行出现异常”的原因及解决方案。通过检查GraalVM版本兼容性、配置反射列表、使用代理类、检查配置文件、禁用不支持的功能、查看日志文件、使用GraalVM诊断工具和调整GraalVM配置等步骤,帮助开发者快速定位并解决问题,确保服务的正常运行。
52 1
|
29天前
|
消息中间件 监控 Java
您是否已集成 Spring Boot 与 ActiveMQ?
您是否已集成 Spring Boot 与 ActiveMQ?
53 0
|
2月前
|
监控 Dubbo Java
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
这篇文章详细介绍了如何将Spring Boot与Dubbo和Zookeeper整合,并通过Dubbo管理界面监控服务注册情况。
173 0
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
|
5月前
|
监控 druid Java
spring boot 集成配置阿里 Druid监控配置
spring boot 集成配置阿里 Druid监控配置
322 6
|
5月前
|
Java 关系型数据库 MySQL
如何实现Springboot+camunda+mysql的集成
【7月更文挑战第2天】集成Spring Boot、Camunda和MySQL的简要步骤: 1. 初始化Spring Boot项目,添加Camunda和MySQL驱动依赖。 2. 配置`application.properties`,包括数据库URL、用户名和密码。 3. 设置Camunda引擎属性,指定数据源。 4. 引入流程定义文件(如`.bpmn`)。 5. 创建服务处理流程操作,创建控制器接收请求。 6. Camunda自动在数据库创建表结构。 7. 启动应用,测试流程启动,如通过服务和控制器开始流程实例。 示例代码包括服务类启动流程实例及控制器接口。实际集成需按业务需求调整。
428 4
|
4月前
|
Dubbo Java Nacos
【实战攻略】破解Dubbo+Nacos+Spring Boot 3 Native打包后运行异常的终极秘籍——从零开始彻底攻克那些让你头疼不已的技术难题!
【8月更文挑战第15天】Nacos作为微服务注册与配置中心受到欢迎,但使用Dubbo+Nacos+Spring Boot 3进行GraalVM native打包后常遇运行异常。本文剖析此问题及其解决策略:确认GraalVM版本兼容性;配置反射列表以支持必要类和方法;采用静态代理替代动态代理;检查并调整配置文件;禁用不支持的功能;利用日志和GraalVM诊断工具定位问题;根据诊断结果调整GraalVM配置。通过系统排查方法,能有效解决此类问题,确保服务稳定运行。
116 0
|
5月前
|
消息中间件 Java 测试技术
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
390 1
|
5月前
|
消息中间件 Java Kafka
Spring Boot与Apache Kafka Streams的集成
Spring Boot与Apache Kafka Streams的集成
|
5月前
|
消息中间件 Java Kafka
Spring Boot与Apache Kafka集成的深度指南
Spring Boot与Apache Kafka集成的深度指南

热门文章

最新文章