• dubbo入门教程:基于dubbo实现服务之前调用


    Dubbo学习笔记

    1.改造项目

    1.1引入依赖pom.xml

            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo-spring-boot-starter</artifactId>
                <version>3.0.7</version>
            </dependency>
            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo-rpc-dubbo</artifactId>
                <version>3.0.7</version>
            </dependency>
            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo-registry-zookeeper</artifactId>
                <version>3.0.7</version>
            </dependency>
    

    1.2配置application.yaml

    dubbo:
      application:
        name: provider-application
      protocol:
        name: dubbo
        port: 20880
      registry:
        address: zookeeper://127.0.0.1:2181
    
    • 注:调用和被调用方都需要写这个配置

    1.3 将接口提取到公共的模块

    image-20220704212117407

    1.4 依赖

    • provider实现common里面的接口
            <dependency>
                <groupId>org.example</groupId>
                <artifactId>common</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
    
    • consumer依赖common的jar包

             <dependency>
                  <groupId>org.example</groupId>
                  <artifactId>common</artifactId>
                  <version>1.0-SNAPSHOT</version>
              </dependency>
      
    • consumer启动类,provider启动类开启Dubbo:@EnableDubbo

    @SpringBootApplication
    @EnableDubbo
    public class ConsumerApplication {
        public static void main(String[] args) {
            SpringApplication.run(ConsumerApplication.class, args);
        }
    }
    
    
    @SpringBootApplication
    @EnableDubbo
    public class ProviderApplication {
        public static void main(String[] args) {
            SpringApplication.run(ProviderApplication.class, args);
        }
    }
    
    
    • 调用:@DubboReference(version="")
    @Service
    public class OrderService {
    
        @Autowired
        private RestTemplate restTemplate;
    
        @DubboReference(version = "1.0")
        private UserService userService;
    
        @Value("${user_url}")
        private String url;
    
        @Value("${port}")
        private Integer port;
    
        public String getOrder() {
            String address = url + ":" + port + "/user";
            System.out.println(address);
            return restTemplate.getForObject(address, String.class);
        }
    
    
        public String getOrderDubbo(){
            return userService.getUser();
        }
    }
    
  • 相关阅读:
    对外接口的安全性
    oracle 12c报错【ORA-28001:口令已经失效】解决办法
    linux环境下测试是否能访问外网
    Git 提交界面中文乱码解决
    SMPP协议
    什么是502 Bad Gateway错误以及如何解决(轻松修复指南)
    QPS和并发数,究竟是何种关系?
    使用 Nginx 实现灰度发布
    直播视频码流、码率、采样率、比特率、帧速率、分辨率、高清视频的概念
    sudo 使普通用户可以临时以 root 用户的身份和权限执行系统命令(centos 7.3)
  • 原文地址:https://www.cnblogs.com/skyfreedom/p/16444534.html
Copyright © 2020-2023  润新知