登录
    Technology changes quickly but people's minds change slowly.

springboot+dubbo+nacos 实现服务调用

技术宅 破玉 5430次浏览 0个评论

  dubbo 是阿里的高性能RPC框架,是除spring cloud 之外的另一种 微服务选择。本篇文章,我们来利用spring boot +nacos +dubbo 来探讨下 dubbo 服务调用的基本实现。

简介

  Apache Dubbo |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
  易于构建云原生应用的动态服务发现、配置管理和服务管理平台,简单说是个注册中心。

程序构建

配置

  在程序中引入dubbo-spring-boot-starter 和nacos-discovery-spring-boot-starter 的 mvn jar 包。
yml 配置文件:

server:
  port: 9097

spring:
  application:
    name: user-service

nacos:
  discovery:
    server-addr: 127.0.0.1:8848

dubbo:
  application:
    name: ${spring.application.name}
  registry:
      address: nacos://${nacos.discovery.server-addr}
  protocol:
    name: dubbo
    port: 20880
  scan:
    base-packages: com.magicdu.dubbo.back.service
  consumer:
    check: false # 启动时不检查 consumer

新增服务时,我们修改下上面的配置文件即可,我们配置每个服务即可为生产者,也可为消费者。为了共用service 接口,我们需要为所有项目提供公共的 service 层,来管理接口。

编写程序

   我们首选在公共模块编写 接口

package com.magicdu.dubbo.back.service;

public interface UserService {
    String sayHello(String userName);
}

生产者提供该接口的实现

@Service
@Slf4j
public class UserServiceImpl implements UserService {
    @Override
    public String sayHello(String userName) {
        log.info("请求接口---->");
        return "hello"+userName;
    }
}

注意 这里的 @Service 注解 是 dubbo 的注解 org.apache.dubbo.config.annotation.Service 不是 sping 的注解
消费者,只需 调用该服务即可、

package com.magicdu.dubbo.dept.controller;

import com.magicdu.dubbo.back.service.UserService;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class DeptController {
    @Reference
    private UserService userService;

    @RequestMapping("/sayHi/{name}")
    public String sayHello(@PathVariable String name){
        return userService.sayHello(name);
    }
}

使用 org.apache.dubbo.config.annotation.Reference 注解 标注接口 为 RPC 服务,dubbo 就会根据配置来调用相关服务。
源码:spring boot-duubo-nacos-demo


华裳绕指柔, 版权所有丨如未注明 , 均为原创|转载请注明springboot+dubbo+nacos 实现服务调用
喜欢 (20)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址