栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot使用Dubbo非常入门的demo

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot使用Dubbo非常入门的demo

代码地址

https://gitee.com/zjj19941/ZJJ_Dubbo.git

看dubbo-start-demo项目即可

搭建zookeeper

自己去博客随便弄个zookeeper安装教程.,然后启动起来

或者看我的博客,用docker快速搭建一个zookeeper起来,

https://blog.csdn.net/qq_41489540/article/details/109129293

pom文件

自己去我码云项目看一下,我就不粘贴了

https://gitee.com/zjj19941/ZJJ_Dubbo.git

看dubbo-start-demo项目即可

interface项目 DemoService
package com.zjj;


public interface DemoService {
    // 同步调用方法
    String sayHello(String name);

}

服务的提供者 properties文件
# Spring boot application
spring.application.name=dubbo-provider-demo
server.port=8081

# base packages to scan Dubbo Component: @org.apache.dubbo.config.annotation.Service
#这个配置是扫描带有@org.apache.dubbo.config.annotation.Service注解的类,如果有的话,就解析这个注解的类
#将配置信息进行处理,最后放到注册中心上面去.
#你在类上面定义注解是没有用的,你得有配套的逻辑去识别定义这个注解的类
#然后做一些别的处理
dubbo.scan.base-packages=com.zjj.provider.service
# dubbo需要定义你的应用名字
dubbo.application.name=${spring.application.name}
## Dubbo 注册的注册中心地址
dubbo.registry.address=zookeeper://zjj101:2181

# Dubbo 协议定义,这个是属于应用级别的 ,配置你这个应用 用什么协议
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880

#dubbo.protocol.name=rest
#dubbo.protocol.port=8083
提供服务的实现类
package com.zjj.provider.service;

import com.zjj.DemoService;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.config.annotation.Service;
import org.apache.dubbo.rpc.RpcContext;

@Service(version = "default")
public class DefaultDemoService implements DemoService {

    @Override
    public String sayHello(String name) {
        System.out.println("执行了服务" + name);

        URL url = RpcContext.getContext().getUrl();
        return String.format("%s:%s, Hello, %s", url.getProtocol(), url.getPort(), name);  // 正常访问
    }


}

启动类
package com.zjj;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DubboProviderDemo {

    public static void main(String[] args) {
        SpringApplication.run(DubboProviderDemo.class, args);
    }
}

服务的消费者 配置文件
spring:
  application:
    name: dubbo-consumer-demo

server:
  port: 8082

dubbo:
  registry:
    address: zookeeper://zjj101:2181

启动类
package com.zjj;

import org.apache.dubbo.config.annotation.Reference;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

@SpringBootApplication
public class DubboConsumerDemo  {

  //@Reference注解就是用于标记这个服务具体使用了生产者的哪个接口实现
    @Reference(version = "default")
    private DemoService demoService;

    public static void main(String[] args)  {
        ConfigurableApplicationContext context = SpringApplication.run(DubboConsumerDemo.class);
        DemoService demoService = context.getBean(DemoService.class);

        System.out.println((demoService.sayHello("你好")));
    }

}

开始测试

先启动服务的提供者项目 ,再启动服务的消费者, 然后控制台就能看到,说明服务的消费者已经访问到了服务的发起方了.

dubbo:20880, Hello, 你好

查看zookeeper,你会发现这个服务被注册到了注册中心上

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/657963.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号