1、使用Servlet容器运行(Tomcat、Jetty等)----不可取 

缺点:增加复杂性(端口、管理) 浪费资源(内存)

假设1个服务模块时,需要1台tomcat,消耗3个端口,和200MB左右内存

假设10个服务模块时,需要10台tomcat,消耗30个端口,和2000MB左右内存

假设100个服务模块时,需要100台tomcat,消耗300个端口,和20000MB左右内存

.......大型的分布式项目将不可想象!!!!

 2、自建Main方法类来运行(Spring容器) ----不建议(本地调试可用) 
 缺点:Dobbo本身提供的高级特性没用上

自已编写启动类可能会有缺陷。

比如关闭dubbo的时候,控制台直接点击关闭,如果此时dubbo有服务正在调用,就会导致失败。

代码:

package dubbo.test;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;/*** * @描述: 启动Dubbo服务用的MainClass.*/
public class DubboProvider {private static final Log log = LogFactory.getLog(DubboProvider.class);public static void main(String[] args) {try {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring/spring-context.xml");context.start();} catch (Exception e) {log.error("== DubboProvider context start error:",e);}synchronized (DubboProvider.class) {while (true) {try {DubboProvider.class.wait();} catch (InterruptedException e) {log.error("== synchronized error:",e);}}}}}

 3、使用Dubbo框架提供的Main方法类来运行(Spring容器)----建议使用 
 优点:框架本身提供(com.alibaba.dubbo.container.Main)

可实现优雅关机(ShutdownHook ) ,即解决第2点关闭dubbo问题。

参见:

dubbo-user-book.pdf  第110~111页

下载地址:

https://www.gitbook.com/@dubbo

dubbo服务的运行方式相关推荐

  1. 使用Maven构建Dubbo服务的可运行jar包

    本文为<基于Dubbo的分布式系统架构视频教程>的课程系列文档,更多课程信息,请关注:http://www.roncoo.com Dubbo视频教程--基础篇--第07节--使用Maven ...

  2. Dubbo之——将Dubbo服务打包成Jar包

    服务器:192.168.1.121(mydubbo-server) 一.Dubbo服务的运行方式 1.使用Servlet容器运行(Tomcat.Jetty等)--不可取 缺点:增加复杂性(端口.管理) ...

  3. 平滑迁移 Dubbo 服务的思考

    前言 近日,有报道称在 HashCorp 的商业软件试用协议上发现,旗下所有商业产品禁止在中国境内使用.部署.安装,这其中就包含了 Terraform, Consul, Vagrant 等众多知名软件 ...

  4. 每日一技|巧用 Telnet 调试 Dubbo 服务

    来自:程序通事 0x00. 前言 想象这样一个场景,线上某个服务突发异常,导致上游服务调用异常,数据处于中间状态.服务恢复之后,我们需要修复这笔数据至正常状态,怎么办? 如果仅是简单的服务,涉及少量数 ...

  5. dubbo服务发布一之服务暴露

    整体流程以调试 om.alibaba.dubbo.demo.provider.DemoProvider来演示dubbo服务的发布流程. 1.启动Spring容器 参照dubbo容器的启动, https ...

  6. dubbo服务调试管理实用命令

    ​公司如果分项目组开发的,各个项目组调用各项目组的接口,有时候需要在联调环境调试对方的接口,可以直接telnet到dubbo的服务通过命令查看已经布的接口和方法,并能直接invoke具体的方法,我们可 ...

  7. 实现DUBBO服务环境隔离

    2019独角兽企业重金招聘Python工程师标准>>> 实现DUBBO服务环境隔离 博客分类: java 开源框架 中间件 dubbo 实现DUBBO服务环境隔离 欢迎加入DUBBO ...

  8. php dubbo 接口测试工具,dubbo服务自动化测试搭建

    java实现dubbo的消费者服务编写:ruby实现消费者服务的接口测试:通过消费者间接测试dubbo服务接口的逻辑 内容包括:dubbo服务本地调用环境搭建,dubbo服务启动,消费者部署,脚本编写 ...

  9. dubbo服务使用spring-data-mongodb进行时间查询的bug记录

    一.项目情况:spring-boot+mongodb+dubbo. 二.问题:调用dubbo服务并使用spring-data-mongodb的gte,lte时间段比较查询, @Reference(re ...

最新文章

  1. 千万级智能推荐系统架构演进!
  2. 易宝典文章——如何在Exchange Server 2010 SP1下将用户邮箱导出到PST中
  3. dell 服务器 加ssd硬盘,DELL服务器加SSD硬盘.doc
  4. STM32 基础系列教程 32 – Ethnet+Lwip
  5. 正则表达式收藏(四)之MySQL的正则
  6. Windows7优化开机、关机速度的方法
  7. java 8 删选集合 和取集合中的字段重组成集合的使用
  8. 深度学习与神经网络概述
  9. SpringBoot四大核心之actuator——程序监控器
  10. 星际2新智能体开源:单机并行能力强,适应环境广,个人可训练
  11. 「总结」 MLEAutoMaton的各种板子总结
  12. 如何选择适合自己的 Linux 发行版
  13. 微信小程序底部导航栏小效果
  14. RPGMakerMV的插件学习
  15. 最优模型选择的准则:AIC、BIC准则
  16. 制作一款app系统软件大概需要多少钱
  17. 【AI系列】1关于人工智能发展历史、资料推荐、技术体系的整理
  18. iOS6和iOS7代码的适配(4)——tableView
  19. 判断一句话是否中文或者英文
  20. R语言学习笔记——向量

热门文章

  1. 11纯代码 oc xcode_iOS代码染色原理及技术实践
  2. mysql数据库开发笔记_MySQL数据库生成数据库说明文档
  3. php异步处理任务工具,PHP实现异步任务分发处理利器-Gearman
  4. HashMap 源码阅读
  5. 你的main函数规范吗?
  6. linux安装交叉编译环境
  7. 关于ubuntu自定义service服务时找不到/usr/lib/systemd/system目录的问题
  8. vs使用未初始化的内存怎么解决_遇到C语言内存错误怎么办?一定要找准这六个原因...
  9. python split函数 空格_python上手--10行代码读懂红楼梦
  10. c++生成光栅条纹程序_共享屋:一文让你认识光栅尺和编码器