dubbo学习记录(-):初识dubbo+dubbo-admin安装

一、学习背景

        首先来说下为什么要学dubbo,这个还真得从系统架构的演变(以前的踩过的坑)说起。

        起初,系统的建设都是从单一架构开始。什么是单一架构呢?简单来说,就是一个系统囊括了所有业务。举个栗子:一个商城系统,构建一个mall项目,这个项目实现了用户管理、商品管理、订单管理、支付、物流、售后等等所有的功能,一键启动(当然,会涉及到一些第三方工具,什么DB、队列、缓存、搜索引擎等等)。这样一个商城就启动了,用户可以使用商城客户端所有功能,同时商城运营可以使用后端功能,甚至系统维护人员也是使用同样一个系统。从一个软件的完整度上来说,该软件实现了所有的业务功能性需求,业务逻辑是通的。一个系统承载了所有的业务需求,这就是单一架构。

        接着上面的商城例子我们接着说。话说,一个软件实现了所有的业务逻辑需求,跑起来是没问题,前提是用户量不大,商品数据不多,超小规模的小作坊式应用没问题。但是,作为一个面向普通客户的系统,当然不能是小作坊式的运作,保不齐哪天用户爆发了,那作为系统的开发者和运维者,岂不是时时刻刻都担心系统挂掉?解决方案?有!我加机器呗,多搞几台机器,再部署几份软件,然后用Nginx负载出去,不就缓和了吗?当然这也确实是个临时填坑的办法。不过治标不治本,多台单一架构系统组成的负载集群,数据的一致性是很难维护的,同时,系统中的某些模块是不需要过多暴露的,比如后端功能,而且,商品的检索承载量与订单模块的承载量可能不是同一个级别,同时不同模块对数据的要求可能也不一样。从软件维护的角度上看,复杂度不小,不同模块之间没有明确的资源划分。看似起效,实则不可取。

        如何从这一团乱麻中理清头绪?答案,分而治之。不同的模块拆分成不同的应用,该负责商品管理的管商品,该负责订单的管订单,这样就清晰多了,同时,针对不同模块负载情况进行集群部署,充分利用了系统资源。但是,这样的拆分,带来的一个非常头痛的问题,系统之间的通信。解决方案有很多,最次点的,直接Controller做接口,先不说这种方式优不优雅或者性能问题,假设实现了各个应用之间的通信,随着功能的扩增,可能有几个、十几个、几十个、上千个应用的拆分,那么如此杂乱的通信,维护起来也是够让人喝一壶的,这就涉及到服务治理的问题了。系统之间通信+服务治理。dubbo是一个答案。当然,dubbo不是唯一的方案,后续博主也会写一些其他的方案学习的博文。那么,找到了答案,我们就开始吧。

二、先看疗效,dubbo-admin安装

        为什么说先要讲一下这个dubbo-admin的搭建呢。这个这个,工欲善其事,必先利其器(起个大范儿~)。好吧,之后我们在学的过程中可能需要用到这个玩意儿,而且貌似目前github上的代码也不是完全没坑。

    1、源码下载

                直接上dubbo.io,然后进入github,或者可以点击下载zip

                f666c3cedfb7c3188d71c8006cd59c05bf9.jpg

                解压zip,然后看到这些个目录

                afb30db23c6a8219406d79a83bdc5871fd0.jpg

                WTF,说好的dubbo-admin文件夹呢,移除了?别急,看代码修改记录,进入这里,Ctrl+F搜索dubbo-admin,点击红框中的链接

                3afdbee87d89c77cc49f5ffa9986050e0dc.jpg

                发现一个大大的标题Changes of dubbo project structure. #1209,dubbo项目结构变更,看细节,发现这个 ,不说了,直接上地址吧,在这里,下载解压

                6d6e9f06cb41b67562e0132e58942b0fef0.jpg

                解压后得到这些

                55c9c9e923171170449fe66d09e86ac468f.jpg

    2、打包

                Win+R ->  cmd,进入dubbo-admin目录,然后执行mvn clean install -Dmaven.test.skip=true

                打包好了之后,进入dubbo-admin>target

                9a0aeaabc73c814a57fbc2fbc4687d7d7cd.jpg

            然后往tomcat一丢,startup.sh 搞定?起得来就有鬼了。安装zookeeper,配置好dubbo.properties,具体怎么配,看你怎么装的了

dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest

            干掉tomcat重新启动,这里注意博主的版本以及下载时间,博主下的这个版本提示缺少依赖,后续会不会修改不知道,博主这里提示缺少cglib包,可以简单粗暴的下载cglib-nodep-2.2.jar,然后直接往项目的WEB-INF/lib里面一丢,再跑。需要注意的是,这玩意儿本来就有些歌年头了,cglib-nodep的版本别选太高,不然会有惊喜。或者这样,修改dubbo-admin下面的pom,添加依赖

<dependency>
    <groupId>cglib</groupId>
    <artifactId>cglib-nodep</artifactId>
    <version>2.2</version>
</dependency>

            然后再次打包。

    3、访问

             访问路径http://localhost:8080/dubbo-admin-2.0.0,用户名密码配置文件里面有,root/root  或者guest/guest,打完收工看图

            哈哈,虚拟机关掉了,懒得起,没图。你们所见即所得   

转载于:https://my.oschina.net/u/1866975/blog/1829606

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值