zoukankan      html  css  js  c++  java
  • Apache Dubbo的基本使用

    节点 角色说明
    Provid 暴露服务的服务提供方
    Consumer 调用远程服务的服务消费方
    Registry 服务注册与发现的注册中心
    Monitor 统计服务的调用次数和调用时间的监控中心
    Container  服务运行容器

     

     Dubbo涉及版本 2.7.7 ~ 2.7.8


     

     Dubbo怎么去使用


    代码实例地址:

    https://gitee.com/public2586/dubbo-client-sample  (客户端)

    https://gitee.com/public2586/dubbo-server-sample  (服务端)

    发布一个dubbo服

    发布服务之后,提供一个协议url地址

    http:// 服务器的IP:容器的端口/ mapping

    dubbo://192.168.1.104:20880/com.bx.dubbo.server.ILoginService

    dubbo支持的注册中心

    • consu
    • zookeeper
    • eureka
    • redis
    • etcd
    • nacos
    • ....

    Dubbo Spring Cloud


    创建一个项目:

    代码实例地址:https://gitee.com/public2586/spring-cloud-dubbo-example

    创建一个spring-cloud-dubbo-example的maven工程,分别添加三个模块

    1. spring-cloud-dubbo-sample-api
    2. spring-cloud-dubbo-sample-provider
    3. spring-cloud-dubbo-sample-consumer

    其中后面两个模块都是spring boot的应用

    修改 spring-cloud-dubbo-sample-provider 这个模块中

    • 将dependencyManagement部分的依赖移动到parent pom.xml
    • 修改spring-cloud-dubbo-sample-provider中的pom.xml,增加parent模块的依赖
    <parent>
    <groupId>com.bx.dubbo</groupId>
    <artifactId>spring-cloud-dubbo-example</artifactId>
    <version>1.0-SNAPSHOT</version>
    </parent>

    添加maven依赖

     <dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-dubbo</artifactId>
    </dependency>
    <dependency>
    <groupId>com.bx.dubbo</groupId>
    <version>1.0-SNAPSHOT</version>
    <artifactId>spring-cloud-dubbo-sample-api</artifactId>
    </dependency>
    <dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>

    定义服务接口


    在spring-boot-dubbo-sample-api模块中,定义接口

    public interface IHelloService {
    String sayHello();
    }

    实现服务


    在spring-boot-dubbo-sample-provider中,实现IHelloService接口

    public class HelloServiceImpl implements IHelloService{
    @Override
    public String sayHello() {
    return "Hello GuPao";
    }
    }

    添加 @EnableDiscoveryClient 注解

    @EnableDiscoveryClient
    @SpringBootApplication
    public class SpringCloudDubboSampleProviderApplication {
    public static void main(String[] args) {
    SpringApplication.run(SpringCloudDubboSampleProviderApplication.class,
    args);
    }
    }

    配置dubbo服务发布


    在服务实现类中添加 @Service 注解

    @Service
    public class HelloServiceImpl implements IHelloService{
    @Override
        public String sayHello() {
        return "Hello GuPao";
        }
    }

    Dubbo Spring Boot


    基于spring boot集成Dubbo方式

    代码实例地址:https://gitee.com/public2586/spring-boot-dubbo-example

    创建一个spring-boot-dubbo-example的maven工程,分别添加三个模块

    1. spring-boot-dubbo-sample-api[maven]
    2. spring-boot-dubbo-sample-provider[spring boot]
    3. spring-boot-dubbo-sample-consumer[spring boot]

    添加jar包依赖

    从2.7开始,dubbo的版本和dubbo-spring-boot的版本是保持一致的。

    <dependency>
     <groupId>org.apache.dubbo</groupId>
     <artifactId>dubbo-spring-boot-starter</artifactId>
      <version>2.7.7</version>
    </dependency>
    <dependency>
     <groupId>com.alibaba.nacos</groupId>
     <artifactId>nacos-client</artifactId>
     <version>1.2.1</version>
     </dependency>

    添加服务以及发布

    @DubboService
    public class SayHelloServiceImpl implements ISayHelloService {
    
        @Override
        public String sayHello(String msg) {
            return "[version1.0]Hello,"+msg+"";
        }
    }
    spring.application.name=spring-boot-dubbo-sample-provider
    dubbo.registry.address=nacos://172.16.12.148:8848
    dubbo.scan.basepackages=com.bx.springboot.dubbo.springbootdubbosampleprovider.service
    dubbo.protocol.name
    =dubbo
    dubbo.protocol.port
    =-1

    编写服务引用代码


    添加jar包依赖

    <dependency>
           <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
           <groupId>com.bx.springboot.dubbo</groupId>
           <version>1.0-SNAPSHOT</version>
          <artifactId>spring-boot-dubbo-sample-api</artifactId>
    </dependency>
    <dependency>
          <groupId>org.apache.dubbo</groupId>
          <artifactId>dubbo-spring-boot-starter</artifactId>
          <version>2.7.7</version>
            </dependency>
    <dependency>
       <groupId>com.alibaba.nacos</groupId>
       <artifactId>nacos-client</artifactId>
       <version>1.2.1</version>
    </dependency>

    添加web测试

        @DubboReference
        ISayHelloService sayHelloService;
    
        @GetMapping("/say")
        public String say(){
            return sayHelloService.sayHello("sayHello");
        }

     现在人工智能非常火爆,很多朋友都想学,但是一般的教程都是为博硕生准备的,太难看懂了。最近发现了一个非常适合小白入门的教程,不仅通俗易懂而且还很风趣幽默。所以忍不住分享一下给大家

     

  • 相关阅读:
    快速幂模板
    部分有关素数的题
    POJ 3624 Charm Bracelet (01背包)
    51Nod 1085 背包问题 (01背包)
    POJ 1789 Truck History (Kruskal 最小生成树)
    HDU 1996 汉诺塔VI
    HDU 2511 汉诺塔X
    HDU 2175 汉诺塔IX (递推)
    HDU 2077 汉诺塔IV (递推)
    HDU 2064 汉诺塔III (递推)
  • 原文地址:https://www.cnblogs.com/wqsbk/p/13438283.html
Copyright © 2011-2022 走看看