dubbo源码开篇之庐山面目

之前一直在CSDN写博客,有时候会看到简书有很多优质的博文,于是就想换个平台。为什么换呢?其实,我觉得就人性而言,在一个熟悉环境我们总是很懒散,随意,所以博客的质量会大大折扣(其实本来就很水)。为了不想那么随意的写这部分内容就想换个平台来写,于是就想起来了简书,这个程序员分享的另一个天地,还有一个原因就是觉得简书特别干净,页面看起来很清爽,没有广告,耳目清新的感觉,翻看csdn充满了浓浓的铜臭味,企业就是这样,他们也许发展也要理解嘛。

其实,对于开篇写什么还是犹豫了很久,是写java基础,还是写ssm框架,想着把csdn中写过的在复制一份在精益求精一下,后来想一想还是算了,毕竟写过的又在上面修改作为第一篇诚意不足。 于是就想把之前一直没写,又想写的dubbo技术作为开篇内容。

对于dubbo,自己也了解了漫长的一段时间,零零总总,前前后后也大致了解了它的一个运行原理和内部的一个基本结构,其实用dubbo来开篇还是有难度的,毕竟我其实并不是很精通dubbo,然而有压力才能有动力嘛,所以就想着重新梳理一下,开篇先简单介绍关于dubbo的3点知识,后续再一系列的从每一个模块进行详细的记录。

接下来,还是经典的2W1H的模式去展开:

WHAT

官方的定义:dubbo是一个高性能、重量轻、基于java的RPC框架。Dubbo提供了三个关键功能,包括基于接口的远程调用、容错和负载均衡以及自动服务注册和发现。

个人理解:dubbo就是通过网络建立双向连接,通过网络流传递数据,进行远程调用其他服务器上的方法,在通过网络流传递到调用方,这个期间有对象的序列化,编解码,网络协议,注册中心,监控中心等。

WHEN

在没有微服务概念之前,基本上我们的项目都是基于ALL-IN-ONE架构,所有的代码都在一个项目里面,但随着互联网的快速发展,ALL-IN-ONE架构无法承受得起大的并发量,就出现了前后端分离,这样减轻了服务器的一小部分压力,但是作用微乎其微,互联网用户的激增,业务逻辑的复杂化,迫使我们需要另一种架构,微服务化。什么是微服务呢?个人理解:微代表轻量级,易于扩展和开发,发布。服务代表模块化,把一个大的项目拆分成几个小项目。微服务又可以理解为分布式架构,基于RPC的远程调用。对于应用的场景:首先分布式架构比ALL-IN-ONE搭建繁琐,对于小型项目用ALL-IN-ONE简单,快速,并发小还是有优势的,对于大型的项目,基本上我们都是分布式架构设计。

HOW

首先,应该看一下dubbo的一张经典图片



这张图很大程度上展示了dubbo的运行原理,有生产端,消费端,监控中心,容器,注册中心。一个简单的例子:

DemoServiceImpl.java :

package com.alibaba.dubbo.demo.provider;

import com.alibaba.dubbo.demo.DemoService;

public classDemoServiceImplimplementsDemoService{

    publicStringsayHello(String name){

        return "Hello " + name;

    }

}

配置公开服务:



加载配置,启动容器:

import org.springframework.context.support.ClassPathXmlApplicationContext;

public classProvider{

    publicstaticvoidmain(String[] args)throwsException{

        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"http://10.20.160.198/wiki/display/dubbo/provider.xml"});

        context.start();

        System.in.read(); // Press any key to exit    }

}

配置消费服务:



消费者调用生产者服务:

import org.springframework.context.support.ClassPathXmlApplicationContext;import com.alibaba.dubbo.demo.DemoService;

public classConsumer{

    publicstaticvoidmain(String[] args)throwsException{

        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"http://10.20.160.198/wiki/display/dubbo/consumer.xml"});

        context.start();

        DemoService demoService = (DemoService)context.getBean("demoService"); //Obtaining a remote service proxy        String hello = demoService.sayHello("world"); // Executing remote methods        System.out.println( hello ); // Display the call result    }

}

基本一个简单的远程调用就实现了。接下来通过资料了解一下dubbo的特性。

dubbo没有出现以前,远程调用基本基于rmi,hessian等工具,我了解过java的rmi协议:服务类需要实现接口,基本也是暴露一个服务端ip和端口,客服端连接,进行网络通讯,传递参数和结果内容。详细的步骤可以查询百度。

总结:这样的开篇总让人觉得不是很精致,没有技术的严谨性,凡是慢慢来,开篇的定位就是简单的引入dubbo,接下来慢慢的深入进去。

万事开头难,其实过程更艰难,我也不知道自己能坚持写到哪里?或许开始即结束,或许开始即新生。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352