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

Spring-Boot & Dubbo 整合

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

Spring-Boot & Dubbo 整合

为什么要用dubbo

服务治理框架服务的监控服务的注册发现服务的通信服务的容错服务的负载均衡 dubbo支持的注册中心

consulzookeepereurekaredisetcdnacos… 创建 Demo

创建工程、在工程下创建三个模块、分别是 api、consumer、provider

provider & consumer 的 pom 依赖


    1.8
    UTF-8
    UTF-8
    2.2.1.RELEASE



    
        org.springframework.boot
        spring-boot-starter
        ${spring-boot.version}
    
    
        org.apache.dubbo
        dubbo-spring-boot-starter
        2.7.7
    
    
        org.springframework.boot
        spring-boot-starter-web
        ${spring-boot.version}
    
    
    
        org.apache.dubbo
        dubbo-dependencies-zookeeper
        2.7.7
        pom
    

    
        org.springframework.boot
        spring-boot-starter-test
        ${spring-boot.version}
        test
        
            
                org.junit.vintage
                junit-vintage-engine
            
        
    
    
        org.example
        api
        1.0-SNAPSHOT
        compile
    

先在 api 模块中新增一个接口

public interface DemoService {
    String sayHello(String name);
}

后续在 provider 模块中实现该接口

@DubboService(version = "1.0.0")
public class DefaultDemoService implements DemoService {
    
    @Value("${dubbo.application.name}")
    private String serviceName;
    public String sayHello(String name) {
        return String.format("[%s] : Hello, %s", serviceName, name);
    }
}

编写 Spring Boot 启动类

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

在 resource 目录下新建 application.properties

spring.application.name=dubbo-auto-configuration-provider-demo
# 服务发布的协议
dubbo.protocol.name=dubbo
# dubbo 接收请求的端口
dubbo.protocol.port=12345
# 注册中心的协议和地址
dubbo.registry.address=zookeeper://127.0.0.1:2181

启动 Zookeeper

./zkServer.sh start
 ./zkServer.sh status

查看 Zookeeper 上面的节点信息

获取并对其进行解码、存储的该接口的一些基本信息

dubbo://127.0.0.1:12345/com.demo.api.DemoService
?anyhost=true
&application=dubbo-auto-configuration-provider-demo
&deprecated=false
&dubbo=2.0.2
&dynamic=true
&generic=false
&interface=com.demo.api.DemoService
&methods=sayHello
&pid=78391
&release=2.7.7
&revision=1.0.0
&side=provider
×tamp=1642253598103
&version=1.0.0

编写消费端

@SpringBootApplication
public class DubboAutoConfigurationConsumerBootstrap {
    @DubboReference(version = "1.0.0")
    private DemoService demoService;
    public static void main(String[] args) {
        SpringApplication.run(DubboAutoConfigurationConsumerBootstrap.class).close();
    }
    @Bean
    public ApplicationRunner runner() {
        return new ApplicationRunner() {
            public void run(ApplicationArguments args) throws Exception {
                System.out.println(demoService.sayHello("mercyblitz"));
            }
        };
    }
}

配置文件

spring.application.name=dubbo-auto-configure-consumer-sample
server.port=8090
dubbo.registry.address=zookeeper://127.0.0.1:2181

控制台输出

[dubbo-auto-configuration-provider-demo] : Hello, mercyblitz

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

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

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