一.高并发的解决

  1.高并发:很多人同时访问。

  2.高并发产生的性能瓶颈:

    tomcat支持的controller,解决办法:多个tomcat共同支撑。(tomcat集群)

    只有一个service被调用,解决办法:多个service共同支撑。

    只有一个数据库被访问,解决办法:多个数据库共同支撑。

二.dubbo用来解决业务层的瓶颈问题(由一变多,解决负载均衡)

  1.官网:dubbo.io

  2.引出dubbo

    随着网络科技的发展,架构程序也由单一应用架构(1-10人)→ 垂直应用架构 (10-1000人)→ 分布式服务架构(1000-10000人)

    在分布式架构中采用的原理是,将业务层单独提炼出来,以远程业务的方式提供。以http或https的方式进行调用,一般使用XML的形式进行交互(XML就是一种序列化工具,与远程的业务端,采用XML的方式进行传递)。由于是远程的,服务器可以多个。可此阶段有明显的缺点:无法保证服务器之间的访问次数是平均的,明显分配不均。

    而dubbo就解决了分布不均的问题,并且可以远程调用。由此引出了我们此时正处于的阶段→流动计算架构。对访问次数进行计算,做成平均分配访问---也就是负载均衡。

  3.

Container:即dubbo容器,dubbo容器是spring的子容器。

Provider:服务提供者,用于发布服务,以及提供服务。

Consumer:服务消费者,即服务调用者。

Registry:注册中心,主要用于存储服务提供者的服务地址。

Monitor:监控中心,主要用于记录服务调用的次数。

三.zookeeper(注册中心)

  1.Zookeeper是hadoop系列中的一个组件,用于协调服务。在此,充当dubbo的注册中心

  2.zookeeper的安装     

  • 2.1单机安装           

    2.1.1  步骤 :解压、添加zoo.cfg文件、启动

    2.1.2  步骤 :解压、添加zoo.cfg文件、启动

    ll:表示显示当前目录下的文档详细信息(包括权限、所属用户和组、大小、时间、名称等)

    mkdir:表示创建目录

    tar zxvf:表示解压

    - C 表示移动到哪个目录

    

  2.1.3  步骤 :添加zoo.cfg文件  

    在zookeeper/conf/zoo_sample.cfg文件,将此文件复制或重命名为zoo.cfg即可

    cd:表示切换到那个目录下

    ls :表示只显示当前目录下的文档名。

    cp :表示复制

    

2.1.4  步骤 :启动

    启动脚本zookeeper/bin/zkServer.sh

  pwd:表示显示当前路径

  ps -ef | grep zookeeperps:将某个进程显示出来

  -A  显示所有程序。
  -e  此参数的效果和指定"A"参数相同。
  -f  显示UID,PPIP,C与STIME栏位。

  grep命令是查找
  中间的|是管道命令 是指ps命令与grep同时执行
  这条命令的意思是显示有关Apachejetspeed有关的进程

  status :表示显示状态

  jps: 表示查看java当前进程

    

  • 2.2集群安装 

    2.2.1 步骤

    创建zkCluster目录,用于安装zookeeper集群

    创建数据文件data目录

    在data目录中,创建myid文件,指定集群服务编号

    修改zoo.cfg文件,配置集群

    复制配置成功的文件,共计三分

    启动

    

Dubbo浅谈的更多相关文章

  1. 浅谈微服务架构与服务治理的Eureka和Dubbo

    前言 本来计划周五+周末三天自驾游,谁知人算不如天算,周六恰逢台风来袭,湖州附近的景点全部关停,不得已只能周五玩完之后,于周六踩着台风的边缘逃回上海.周末过得如此艰难,这次就聊点务虚的话题,一是浅谈微 ...

  2. 浅谈WebService的版本兼容性设计

    在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所 ...

  3. 【架构】浅谈web网站架构演变过程

    浅谈web网站架构演变过程   前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变.   该系统具备的功能:   用户模块:用户注册和管理 商品模块:商品展示和管 ...

  4. 微服务浅谈&服务治理的演变过程

    这两天对互联网的架构演变进行了简单了解,并对微服务的出现很感兴趣,所以对相关知识进行了简单的整理与总结. 本篇文章先简单介绍了互联网架构的演变,进而介绍了服务化,最后介绍了微服务及最新的服务网格(Se ...

  5. 浅谈服务治理、微服务与Service Mesh(三) Service Mesh与Serverless

    作为本系列文章的第三篇(前两篇<浅谈服务治理.微服务与Service Mesh(一)Dubbo的前世今生>,<浅谈服务治理.微服务与Service Mesh(二) Spring Cl ...

  6. 浅谈 Fragment 生命周期

    版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...

  7. 浅谈 LayoutInflater

    浅谈 LayoutInflater 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/View 文中如有纰漏,欢迎大家留言指出. 在 Android 的 ...

  8. 浅谈Java的throw与throws

    转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...

  9. 浅谈SQL注入风险 - 一个Login拿下Server

    前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...

随机推荐

  1. python-思路整理-虚拟环境

    虚拟环境: 如需多个版本的django或其他框架开发代码时,就可以用虚拟环境 pip3 install virtualenv # 创建虚拟环境 virtualenv virtualenv env1 # ...

  2. mysql处理以逗号隔开的字段内容

    有一个字段保存了CheckBox内容,比如职业目标选择对于数据库字段otWorkgoal,保存了1,2,3,4内容 现在需要使用纯mysql语句,将字段otWorkgoal根据内容,进行翻译成中文的内 ...

  3. sqlite3 删除数据

    cx = sqlite3.connect("c:/数据库地址") # 打开数据库cu = cx.cursor()# delete the rowcu.execute("d ...

  4. oracle中rownum和row_number()

    row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内 ...

  5. 快速学习HTML

    1.先写基本的框架标签 2.HTML基本标签 段落标签 <p></p> 空格标签   标题标签 <h1></h1>……<h6></h6 ...

  6. python目录和文件操作

    一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法. 要操作目录,必须引入os模块 import os1.得到当前工作目录,即当前Python脚本工作的目录路径: os ...

  7. zzw原创_oracle回收站相关操作知识

    1.查询回收站状态语句 select * from user_recyclebin order by droptime desc   2.还原回收站 FLASHBACK TABLE  << ...

  8. Mysql SQL优化系列之——执行计划连接方式浅释

    关系库SQL调优中,虽然思路都是一样的,具体方法和步骤也是大同小异,但细节却不容忽视,尤其是执行计划的具体细节的解读中,各关系库确实有区别,特别是mysql数据库,与其他关系库的差别更大些,下面,我们 ...

  9. burpsuite只拦截特定网站数据包教程

    一.背景说明 在配置burpsuite代理截包时经常会遇到这样的情况: 浏览器经常自己发一些包(收集用户信息),干挠渗透测试人员对目标网站的检测: 如果是代理手机,那就是很多APP都时不时发一些包,干 ...

  10. Struts 2 初步入门(三)

    接Struts 2初步入门(二) 若想用多个通配符设定访问: <struts> <package name="default" namespace="/ ...