dubbo服务的运行方式
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服务的运行方式相关推荐
- 使用Maven构建Dubbo服务的可运行jar包
本文为<基于Dubbo的分布式系统架构视频教程>的课程系列文档,更多课程信息,请关注:http://www.roncoo.com Dubbo视频教程--基础篇--第07节--使用Maven ...
- Dubbo之——将Dubbo服务打包成Jar包
服务器:192.168.1.121(mydubbo-server) 一.Dubbo服务的运行方式 1.使用Servlet容器运行(Tomcat.Jetty等)--不可取 缺点:增加复杂性(端口.管理) ...
- 平滑迁移 Dubbo 服务的思考
前言 近日,有报道称在 HashCorp 的商业软件试用协议上发现,旗下所有商业产品禁止在中国境内使用.部署.安装,这其中就包含了 Terraform, Consul, Vagrant 等众多知名软件 ...
- 每日一技|巧用 Telnet 调试 Dubbo 服务
来自:程序通事 0x00. 前言 想象这样一个场景,线上某个服务突发异常,导致上游服务调用异常,数据处于中间状态.服务恢复之后,我们需要修复这笔数据至正常状态,怎么办? 如果仅是简单的服务,涉及少量数 ...
- dubbo服务发布一之服务暴露
整体流程以调试 om.alibaba.dubbo.demo.provider.DemoProvider来演示dubbo服务的发布流程. 1.启动Spring容器 参照dubbo容器的启动, https ...
- dubbo服务调试管理实用命令
公司如果分项目组开发的,各个项目组调用各项目组的接口,有时候需要在联调环境调试对方的接口,可以直接telnet到dubbo的服务通过命令查看已经布的接口和方法,并能直接invoke具体的方法,我们可 ...
- 实现DUBBO服务环境隔离
2019独角兽企业重金招聘Python工程师标准>>> 实现DUBBO服务环境隔离 博客分类: java 开源框架 中间件 dubbo 实现DUBBO服务环境隔离 欢迎加入DUBBO ...
- php dubbo 接口测试工具,dubbo服务自动化测试搭建
java实现dubbo的消费者服务编写:ruby实现消费者服务的接口测试:通过消费者间接测试dubbo服务接口的逻辑 内容包括:dubbo服务本地调用环境搭建,dubbo服务启动,消费者部署,脚本编写 ...
- dubbo服务使用spring-data-mongodb进行时间查询的bug记录
一.项目情况:spring-boot+mongodb+dubbo. 二.问题:调用dubbo服务并使用spring-data-mongodb的gte,lte时间段比较查询, @Reference(re ...
最新文章
- 千万级智能推荐系统架构演进!
- 易宝典文章——如何在Exchange Server 2010 SP1下将用户邮箱导出到PST中
- dell 服务器 加ssd硬盘,DELL服务器加SSD硬盘.doc
- STM32 基础系列教程 32 – Ethnet+Lwip
- 正则表达式收藏(四)之MySQL的正则
- Windows7优化开机、关机速度的方法
- java 8 删选集合 和取集合中的字段重组成集合的使用
- 深度学习与神经网络概述
- SpringBoot四大核心之actuator——程序监控器
- 星际2新智能体开源:单机并行能力强,适应环境广,个人可训练
- 「总结」 MLEAutoMaton的各种板子总结
- 如何选择适合自己的 Linux 发行版
- 微信小程序底部导航栏小效果
- RPGMakerMV的插件学习
- 最优模型选择的准则:AIC、BIC准则
- 制作一款app系统软件大概需要多少钱
- 【AI系列】1关于人工智能发展历史、资料推荐、技术体系的整理
- iOS6和iOS7代码的适配(4)——tableView
- 判断一句话是否中文或者英文
- R语言学习笔记——向量
热门文章
- 11纯代码 oc xcode_iOS代码染色原理及技术实践
- mysql数据库开发笔记_MySQL数据库生成数据库说明文档
- php异步处理任务工具,PHP实现异步任务分发处理利器-Gearman
- HashMap 源码阅读
- 你的main函数规范吗?
- linux安装交叉编译环境
- 关于ubuntu自定义service服务时找不到/usr/lib/systemd/system目录的问题
- vs使用未初始化的内存怎么解决_遇到C语言内存错误怎么办?一定要找准这六个原因...
- python split函数 空格_python上手--10行代码读懂红楼梦
- c++生成光栅条纹程序_共享屋:一文让你认识光栅尺和编码器