我们刚刚使用Main.main(args); 来启动dubbo服务,到底是如何实现的呢?

正常情况下,我们会认为服务的发布,需要tomcat、或者jetty这类的容器支持,但是只用Dubbo以后,我们并不需要这样重的服务器去支持,同时也会增加复杂性,和浪费资源。Dubbo提供了几种容器让我们去启动和发布服务

容器类型

Spring Container

自动加载 META-INF/spring 目录下的所有 Spring 配置。

logback Container

自动装配logback日志

Log4j Container

自动配置 log4j 的配置

Dubbo提供了一个Main.main快速启动相应的容器,默认情况下,只会启动spring容器

原理分析

默认情况下,spring容器,本质上,就是加在spring ioc容器,然后启动一个netty服务实现服务的发布,所以并没有特别多的黑科技,下面是spring容器启动的代码

public void start() { String configPath = ConfigUtils.getProperty("dubbo.spring.config"); if (StringUtils.isEmpty(configPath)) { configPath = "classpath*:META-INF/spring/*.xml"; } context = new ClassPathXmlApplicationContext(configPath.split("[,\\s]+"), false); context.refresh(); context.start();
}

关于DubboMain启动的真相相关推荐

  1. S3C6410开发全纪录(一)《还原SD卡启动的真相》

    前章我们也大致分析了SD卡的启动过程,在具体进行问题的定位及解决的过程中,发现还是有很多不明确的地方,网上的文章也多是人云亦云让我们来一步一步搞清楚S3C6410 SD卡启动的步骤及过程(我这里的开发 ...

  2. 打破技术型思维:产品经理的门槛在门里面

    2018 年 3 月,我离开了待了 4 年的"某飞",来到北京,入职神策.我的岗位是 iOS 技术顾问,日常工作是直面客户,解决客户在集成 SDK 和使用神策分析中遇到的各种问题( ...

  3. dell设置从ssd启动_为什么懂电脑的人都说SSD不要分区?原来真相是这样!

    最近韩博士打开电脑时发现开机速度真是越来越慢,从一开始的十秒左右到现在居然要一分多钟才能进入桌面!果然是老了.花费一天的时间终于将电脑清理个干净,原以为能够缓解开机慢的情况,结果还是一样,等到地老天荒 ...

  4. 读书笔记之计算机操作系统的启动——《操作系统真相还原》

    首先,致敬作者-郑刚!一个偶然机会看到了真本书,然后就学着别人的刻苦,利用了地铁上的时间看了本书的试读版.不得不说,作者的功力很深厚,通俗易懂,讲解的十分详细,纵使之前学习过操作系统,但是看了此书之后 ...

  5. AI一分钟 | 柯洁战胜AI“求报道”,期待正式与围棋AI下让子棋;小米MIUI 10全面启动,主打人工智能人机交互

    一分钟AI 柯洁战胜AI求报道 称与zero下差距不会超过3子 小米MIUI 10全面启动 主打人工智能人机交互 AI医药研发公司晶泰科技完成1500万美元B轮融资,红杉领投,谷歌跟投,腾讯追加投资 ...

  6. 操作系统学习:启动进入实模式

    本文参考书籍 操作系统真相还原 Linux内核完全剖析:基于0.12内核 x86汇编语言 从实模式到保护模式 ps:基于x86硬件的pc系统 实模式相关介绍 实模式在上文已经做了简要的介绍,实模式的寄 ...

  7. TCP核心概念-慢启动,ssthresh,拥塞避免,公平性的真实含义

    前言 本文主要阐述TCP拥塞控制中ssthresh的来历以及为什么拥塞避免探测到丢包的时候,ssthresh会被设置为当前窗口的一半. 进入证实内容之前,不得不再次吐槽!目前在网上搜的,任何资料上看的 ...

  8. Vue项目启动webpack报错Module build failed: Error: No PostCSS Config found in......

    自己写的公司项目,今天需要提交到公司版本库,可是在本地启动正常的项目,拷贝到git文件目录下突然报错Module build failed: Error: No PostCSS Config foun ...

  9. linux终端关闭时为什么会导致在其上启动的进程退出?

    现象 经常在linux下开发的人应该都有这样的经验,就是在终端上启动的程序,在关闭终端时,这个程序的进程也被一起关闭了.看下面这个程序,为了使进程永远运行,在输出helloworld后,循环调用sle ...

最新文章

  1. Vue:Vue和ECharts,在Vue上进行可视化处理,在Vue上画图
  2. laravel后台扩展包
  3. 如何创建php文件,PHP如何生成.php程序文件
  4. 华为的涉外知识产权工程师_华为法务社招 | 岗位:高级知识产权工程师
  5. ebook_7种开放式eBook格式指南
  6. python函数返回多个值_python函数返回多个值的示例方法
  7. 连续与离散变量的函数分布计算
  8. dev grdicontrol 根据条件改变行颜色,字体颜色等
  9. java web邮件收发组件
  10. SSH和SSM的区别
  11. tensorflow目标检测API实现血细胞图像识别和计数
  12. 三款适合HDMI信号分配的分配器芯片
  13. 手机无法连接电脑热点解决方案
  14. 产品之路第四年的再思考
  15. Linux文件内容查阅 - cat, tac, nl, more, less, head, tail, od
  16. 飞桨day-04 NLP实践作业
  17. Python实战技巧系列
  18. Linux命令之echo命令
  19. html文件用服务器打开很慢,网页打开太慢?快试试这6招!
  20. 人体姿态估计-Human Pose Estimation (2021)

热门文章

  1. UOJ #579. 树上的颜色
  2. 安卓MediaPlayer框架之Binder机制
  3. 程序员修炼之道:从小工到专家读后感02
  4. OpenCV实现张正友相机标定源代码
  5. 2018-08-21文件字节输出流OutputStream+文件字节输入流InputStream+字符输出流FileReader+字符输出流FileWriter...
  6. BZOJ 1562 变换序列
  7. 网络1711c语言第0次作业总结
  8. tiny6410 pppd
  9. Developer Express 中Gridcontrol获取选中行单元格的值
  10. 【JVM性能调优】jstack和线程dump分析