`

关于dubbo服务启动后自动停止的解决办法

阅读更多

 

 

周末两天在家准备把dubbo相关知识系统过一下,顺便写个demo以备以后不时之需,什么时候写demo都是先在网上找一下有没有别人总结好的,有的话直接拿过来修改修改就ok了。通过《一个简单的dubbo服务

这篇文章在github上找到了对应的demo示例,直接clone下来对照着文章看了一遍没问题尝试着启动dubbo服务。

 

启动provider:

C:\Program Files\Java\jdk1.8.0_101\bin\java"

......

[27/08/17 10:48:39:039 CST] main  INFO zookeeper.ZookeeperRegistry:  [DUBBO] Notify urls for subscribe url provider://192.168.1.101:20880/api.PermissionService?anyhost=true&application=demotest-provider&category=configurators&check=false&dubbo=2.4.10&interface=api.PermissionService&methods=getPermissions&organization=dubbox&owner=programmer&pid=7436&side=provider&timestamp=1503802117211, urls: [empty://192.168.1.101:20880/api.PermissionService?anyhost=true&application=demotest-provider&category=configurators&check=false&dubbo=2.4.10&interface=api.PermissionService&methods=getPermissions&organization=dubbox&owner=programmer&pid=7436&side=provider&timestamp=1503802117211], dubbo version: 2.4.10, current host: 127.0.0.1

[27/08/17 10:48:39:039 CST] main  INFO container.Main:  [DUBBO] Dubbo SpringContainer started!, dubbo version: 2.4.10, current host: 127.0.0.1

[2017-08-27 10:48:39] Dubbo service server started!

 
正常启动,没问题!

 

启动consumer:
"C:\Program Files\Java\jdk1.8.0_101\bin\java" 
......
[27/08/17 10:50:58:058 CST] main  INFO config.AbstractConfig:  [DUBBO] Refer dubbo service api.PermissionService from url zookeeper://localhost:2181/com.alibaba.dubbo.registry.RegistryService?anyhost=true&application=demotest-consumer&check=false&connected=true&dubbo=2.4.10&inside.invoker.count=1&inside.invokers=dubbo%3A%2F%2F192.168.1.101%3A20880%2Fapi.PermissionService%3Fanyhost%3Dtrue%26application%3Ddemotest-provider%26dubbo%3D2.4.10%26interface%3Dapi.PermissionService%26methods%3DgetPermissions%26organization%3Ddubbox%26owner%3Dprogrammer%26pid%3D7436%26side%3Dprovider%26timestamp%3D1503802117211&interface=api.PermissionService&methods=getPermissions&organization=dubbox&owner=programmer&pid=8096&side=consumer&timestamp=1503802256832, dubbo version: 2.4.10, current host: 192.168.1.101
[Permission_0, Permission_1, Permission_2]
[27/08/17 10:50:58:058 CST] DubboShutdownHook  INFO config.AbstractConfig:  [DUBBO] Run shutdown hook now., dubbo version: 2.4.10, current host: 192.168.1.101
[27/08/17 10:50:58:058 CST] DubboShutdownHook  INFO support.AbstractRegistryFactory:  [DUBBO] Close all registries [zookeeper://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=demotest-consumer&dubbo=2.4.10&interface=com.alibaba.dubbo.registry.RegistryService&organization=dubbox&owner=programmer&pid=8096&timestamp=1503802256900], dubbo version: 2.4.10, current host: 192.168.1.101
[27/08/17 10:50:58:058 CST] DubboShutdownHook  INFO zookeeper.ZookeeperRegistry:  [DUBBO] Destroy registry:zookeeper://localhost:2181/com.alibaba.dubbo.registry.RegistryService?application=demotest-consumer&dubbo=2.4.10&interface=com.alibaba.dubbo.registry.RegistryService&organization=dubbox&owner=programmer&pid=8096&timestamp=1503802256900, dubbo version: 2.4.10, current host: 192.168.1.101
......
 
问题来了,在消费完provider端服务后自动关停消费者端服务!
折腾了一番,替换dubbo版本号(2.8.4)后,正常运行了!
 
......
[27/08/17 10:37:10:010 CST] main  INFO config.AbstractConfig:  [DUBBO] Refer dubbo service api.PermissionService from url zookeeper://localhost:2181/com.alibaba.dubbo.registry.RegistryService?anyhost=true&application=demotest-consumer&check=false&dubbo=2.8.4&generic=false&interface=api.PermissionService&methods=getPermissions&organization=dubbox&owner=programmer&pid=11580&side=consumer&timestamp=1503801428993, dubbo version: 2.8.4, current host: 192.168.1.101
[Permission_0, Permission_1, Permission_2]
 
1、为什么要替换原文示例项目pom.xml指定的dubbo版本号?
其实不止是替换掉了dubbo版本号,示例项目中pom.xml中的dubbo框架依赖本身框架里的spring,里面的spring依赖关系混乱,在替换的时候同时把dubbo的版本号由2.8.4替换成了2.4.10,正是由于低版本的框架bug导致问题的产生,改回2.8.4版本后完美运行!完整pom.xml:
<properties>
    <org.springframework.version>4.0.3.RELEASE</org.springframework.version>
    <alibaba.dubbo.version>2.8.4</alibaba.dubbo.version>
    <zkclient.version>0.1</zkclient.version>
    <log4j.version>1.2.17</log4j.version>
</properties>
<dependencies>
    <dependency>
        <groupId>dubbotest</groupId>
        <artifactId>api</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
    <!-- spring -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${org.springframework.version}</version>
    </dependency>
    <!-- alibaba dubbo -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>dubbo</artifactId>
        <version>${alibaba.dubbo.version}</version>
        <exclusions>
            <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>com.github.sgroschupf</groupId>
        <artifactId>zkclient</artifactId>
        <version>${zkclient.version}</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.version}</version>
    </dependency>
</dependencies>
 
 
 
分享到:
评论

相关推荐

    dubbo应用启动与停止脚本

    在分布式服务框架中,Dubbo是一个非常重要的...总结,理解并熟练使用Dubbo应用的启动与停止脚本是运维工作中的基本技能,有助于提高服务的稳定性和运维效率。同时,结合有效的监控和管理策略,可以确保应用的高效运行。

    Spring Boot集成dubbo+zookeeper

    在IT行业中,Spring Boot是一个备受推崇的框架,它简化了基于Spring的应用开发,而Dubbo则是一个高性能、轻量级的Java服务治理框架。Zookeeper是Apache的一个分布式协调服务,常用于分布式应用中的配置管理、命名...

    Dubbo服务提供者几种启动方式

    在本文中,我们将深入探讨Dubbo服务提供者常见的启动方法,并结合源码分析其工作原理。 首先,Dubbo服务提供者的基础是Spring框架,因此最常见的方式是通过Spring容器来启动。这需要一个`pom.xml`文件来管理项目...

    行业分类-设备装置-基于dubbo平台的服务自动启停方法、服务器及存储介质.zip

    总结来说,基于Dubbo平台的服务自动启停方法是通过服务注册与发现机制实现的,这涉及到服务的启动、健康检查和停止。服务器的选择和配置对服务性能至关重要,而存储介质则保障了服务元数据的安全和高效访问。通过...

    dubbo服务调用

    服务熔断是借鉴了电路保护器的设计理念,当服务调用连续多次失败时,系统会自动进入熔断状态,停止对服务的调用,快速返回错误结果,以减少系统的连锁反应。在熔断期间,系统可以尝试恢复服务,或者切换到备用方案...

    scala编写的dubbo自动化部署工具

    Scala编写的Dubbo自动化部署工具是一款高效且便捷的软件,旨在简化Dubbo服务的部署流程。这个工具利用了Scala的强大功能和灵活性,结合了Dubbo的微服务框架,为开发人员提供了一种自动化的方式来管理他们的服务部署...

    Dubbo应用启动解析.doc

    启动脚本是Dubbo应用部署中的重要组成部分,它能够自动化完成应用的启动过程。 #### 二、Dubbo应用部署结构 Dubbo应用的部署通常采用配置分离的方式,即通过Maven打包工具结合assemble插件生成一个包含所有必要...

    Dubbo视频教程--基础篇--第02节--使用Dubbo对传统工程进行服务化改造.rar

    6. **服务治理**:Dubbo提供服务的生命周期管理,包括服务的启动、停止、上下线等操作,以及服务版本控制、灰度发布等功能,便于进行持续集成和交付。 在实际操作中,我们需要按照以下步骤进行服务化改造: 1. **...

    Apache Dubbo:Dubbo服务治理:负载均衡与容错机制

    当某个服务调用失败率达到一定阈值时,Dubbo可以自动执行降级操作,即停止对该服务的调用,并返回默认值或错误信息,以防止故障扩散。 ##### 4.3 熔断机制 熔断机制类似于电路中的保险丝,当服务调用失败率超过...

    Dubbo生产者示例发布包(2.5.4开发版)

    4. **运行脚本**:可能包含启动和停止服务的Shell脚本(如`start.sh`和`stop.sh`),方便在Linux环境下操作,以及批处理脚本(如`start.bat`和`stop.bat`)适应Windows环境。 5. **示例测试**:可能包含单元测试或...

    Dubbo基础培训

    - **高性能和透明化的RPC远程服务调用方案**:Dubbo通过提供高性能的RPC(Remote Procedure Call)机制,使得服务调用像调用本地方法一样简单,极大地降低了分布式系统的开发难度。 - **SOA服务治理方案**:Dubbo...

    服务治理中间件 dubbo原理解析

    Listener主要用于监听服务的生命周期事件,例如服务启动、停止、异常等。Filter则用于在服务调用前后执行自定义逻辑,实现对调用链的控制和修改。这些机制增强了Dubbo的可扩展性和灵活性。 ### 注册中心 注册中心...

    dubbo源码实例

    3. Spring整合:Dubbo与Spring框架深度集成,可以通过Spring配置文件或注解来管理服务提供者,使得服务的启动、停止、销毁等生命周期管理更加便捷。 三、服务消费者(Consumer) 1. 引用服务:在服务消费者端,...

    Dubbo(四)------Dubbo入门示例(基于属性配置)

    Dubbo的服务生命周期包括启动、运行、停止和销毁四个阶段。 接着,让我们来看一下如何进行基于属性配置的Dubbo服务发布。在服务提供者端,我们需要在Spring配置文件中定义服务接口、实现类以及服务暴露的相关属性。...

    dubbo 模板项目

    开发者可能需要了解如何在Windows上配置Java环境,以及如何使用命令行工具启动和停止Dubbo服务。同时,由于项目提供了模板示例,因此可能包含了测试用例或者样例代码,帮助开发者快速理解和验证Dubbo和Zookeeper的...

    dubbo_user_book

    - **服务容器**:用于装载服务的容器,提供服务的启动、管理等功能。 ##### 14. ReferenceConfig缓存与分布式事务 - **ReferenceConfig缓存**:缓存已经创建过的远程服务代理对象,以减少重复创建的开销。 - **...

    dubbo-admin-2.8.4.war和dubbo-monitor-2.8.4.war

    用户可以通过它查看服务提供者和消费者的状态,进行服务配置,如启动、停止服务,查看服务元数据等。此外,它还支持操作日志记录,帮助开发者跟踪和诊断问题。2.8.4版本的Dubbo-Admin已经相对成熟,包含了很多实用...

    dubbo-dubbo-3.2.6.zip

    2. **新API支持**:引入了新的服务治理API,使得开发者能更方便地进行服务的生命周期管理,如服务的启动、停止、禁用等操作。 3. **增强的扩展性**:3.2.6版本增强了对SPI(Service Provider Interface)的支持,...

    incubator-dubbo-ops-master-.zip

    7. **scripts**:可能包含启动、停止、部署脚本,方便用户操作。 8. **docs**或**doc**:项目文档,可能包括用户手册、API参考等。 9. **tests**:测试代码,用于验证功能的正确性。 Dubbo-ops的主要功能可能包括:...

    深入理解Spring与Dubbo整合原理与源码分析:从启动类配置到注解解析.rar

    Spring的生命周期管理则确保了Dubbo组件在合适的时间被创建、初始化、启动和停止。 在服务治理方面,Dubbo提供了丰富的特性,如负载均衡、熔断降级、超时控制、健康检查等,这些都是通过Dubbo的Filter机制实现的。...

Global site tag (gtag.js) - Google Analytics