• 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");
        }

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

     

  • 相关阅读:
    【转】Linux进程间通信——管道及有名管道
    【转】linux进程间通信——信号(上)
    【转】Linux进程间通信—— 共享内存(下)
    【转】linux进程间通信——信号(下)
    python 文件
    文本分类入门(转)
    五大主流数据库模型 (转)
    使用libSVM
    Python编程之前戏——Python环境搭建与编译器的选择 Java(转)
    最棒的10款MySQL GUI工具 (转)
  • 原文地址:https://www.cnblogs.com/wqsbk/p/13438283.html
Copyright © 2020-2023  润新知