http访问到服务器要经过的内容:Nginx —Tomcat –db,nginx就是一个负载均衡左右、又一次面试问到了我nginx的反向代理、现在想了想面试官要问的应该是 域名的反向代理,就是使用一个域名去指定某个端口

  至于负载均衡就是 可以吧请过过来的 http分不到不同的tomcat上减缓tomcat压力了,然后再说Tomcat 一般开发的服务都是聚合服务,项目很大、项目分模块开发、基本都是这样子

  比如说、用户模块、单独拿出来做一个服务、放到一个tomcat下、然后商品模块、订单模块、支付模块、等等、这样分开部署、第一能减少tomcat压力、第二:用户模块可能用的比较多、一个tomcat不够 、我可以再加一个、简单方便、而不需要连带着其他模块一起、

  再到发展后期:一个模块也很庞大了、比如说订单模块,就有了分布式服务、把service层分离、使用dubbo远程调用,这时候就看出dubbo的作用了、书上说调用远程服务就像调用本地服务一样、开发者不需要关注service层逻辑实现了、直接给你个文档告诉你我这个service是干什么用的、然后找一些外包人员、初级人员、专门开发controller、那玩意不用动脑子、那么问题来了 dubbo是怎么做到的呢? resource文件夹下创建一个spring-dubbo.xml ,在spirng.xml中加入项目启动加载这个dubbo文件的code   

  然后再说下dubbo的配置 ,dubbo有一个provider 和consumer两种文件,一般提供服务方问件是spirng-dubbo-provider.xml

  provider是配置服务提供方的就是写service逻辑服务上的、 
配置的是

  <dubbo id="demoService" bean="com.csdn.demo.service.DemoService" ...>

  …代表还有一些其他配置 
  这样这个tomcat启动的时候 就会加载这个dubbo文件 dubbo就会加载这个service到dubbo中,然后呢在写controller的服务中、同样需要加入spring-dubbo-consumer.xml这个配置文件

内容也是这个文件

  <dubbo id="demoService" bean="com.csdn.demo.service.DemoService" ...>

  在这文件里我们指明了调用dubbo服务的哪个服务

  在消费者这个服务中、我们只需要写一个service 映射到这个bean就行了 ,然后就可以直接调用里面的方法、就像调用本地服务一样、调用远程服务、

  然后说一些zookeeper在这其中的作用 ,zookeeper呢一般放在dubbo配置文件中、用以表明dubbo的服务端口 ,利用了zookeeper的分布式、一个挂掉、另一个取代主节点作用、保证服务的稳定性、相关的还有其他的、hadoop中也用到了zookeeper分布式、技术么都是相结合使用的、哪个稳定我们用哪个  

  一般我们都会部署三个zookeeper服务节点 ,一个宕机还有两个提供服务  

  分布式现如今的发展,下一个节点是spingSource提出的 springcloud,springcloud是基于springboot的 ,相比较dubbo的有点呢 就是 开发简洁 支持restful开发 ,另外springcloud的更新也要比dubbo更新快的多 ,而现如今国内还是使用dubbo的比较多、有中文文档、技术比较成熟了 ,国外使用springcloud比较多 ,springcloud整合了大量的第三方组件、但是优点在于springboot的自动化配置 ,dubbo提供的rpc调用,springcloud支持restful调用:

两种的区别呢?

  服务提供方与调用方接口依赖方式太强:我们为每个微服务定义了各自的service抽象接口,并通过持续集成发布到私有仓库中,调用方应用对微服务提供的抽象接口存在强依赖关系,因此不论开发、测试、集成环境都需要严格的管理版本依赖,才不会出现服务方与调用方的不一致导致应用无法编译成功等一系列问题,以及这也会直接影响本地开发的环境要求,往往一个依赖很多服务的上层应用,每天都要更新很多代码并install之后才能进行后续的开发。若没有严格的版本管理制度或开发一些自动化工具,这样的依赖关系会成为开发团队的一大噩梦。而REST接口相比RPC更为轻量化,服务提供方和调用方的依赖只是依靠一纸契约,不存在代码级别的强依赖,当然REST接口也有痛点,因为接口定义过轻,很容易导致定义文档与实际实现不一致导致服务集成时的问题,但是该问题很好解决,只需要通过每个服务整合swagger,让每个服务的代码与文档一体化,就能解决。所以在分布式环境下,REST方式的服务依赖要比RPC方式的依赖更为灵活。 服务对平台敏感,难以简单复用:通常我们在提供对外服务时,都会以REST的方式提供出去,这样可以实现跨平台的特点,任何一个语言的调用方都可以根据接口定义来实现。那么在Dubbo中我们要提供REST接口时,不得不实现一层代理,用来将RPC接口转换成REST接口进行对外发布。若我们每个服务本身就以REST接口方式存在,当要对外提供服务时,主要在API网关中配置映射关系和权限控制就可实现服务的复用了。 相信这些痛点也是为什么当当网在dubbox(基于Dubbo的开源扩展)中增加了对REST支持的原因之一。

Dubbo与微服务的更多相关文章

  1. 传统保险企业基于 Dubbo 的微服务实践

    本文整理自中国人寿保险(海外)股份有限公司深圳中心技术总监家黄晓彬在 Dubbo 社区开发者日深圳站的现场分享. 中国人寿保险(海外)股份有限公司负责香港.澳门.新加坡和印尼的业务开发,和国内业务不同 ...

  2. 关于dubbo+zookeeper微服务的一些认识记录

    借鉴架构示意图: 实例介绍: 公司某项目架构 服务器A:nginx 服务器BC:tomcat1.tomcat2 服务器D:Dubbo+zookeeper 服务器EF:db1+zookeeper.db2 ...

  3. springboot+dubbo+zookeeper微服务实践demo

    微服务化越来越火,实际上是应互联网时代而生的,微服务化带来的不仅是性能上的提升,更带来了研发组织的更加便利,协作更加轻松,团队效能更高. 当然不能为了技术而技术,我们需要切合实际的对业务进行划分,降低 ...

  4. ZooKeeper+Dubbo+SpringBoot 微服务Demo搭建

    1. 首先创建springBoot项目,springBoot是一堆组件的集合,在pom文件中对需要的组件进行配置.生成如下目录结构 创建test项目,同步在test创建dubbo-api,dubbo- ...

  5. 集成 dubbo 微服务

    微服务架构近年来非常的火,阿里 的dubbo 是其中的一种解决方案. dubbo 的微服务主要分为以下几部分: 1.注册中心 2.服务提供者 3.消费者 4.监控平台 1.一般流程服务提供者向注册中心 ...

  6. Dubbo学习系列之六(微服务架构实战)

    看了最近文章的反馈,似乎波澜不惊的样子,应该是看官觉得都是小菜,那我就直上硬菜,人狠话不多,开始!准备:Idea201902/JDK11/ZK3.5.5/Gradle5.4.1/RabbitMQ3.7 ...

  7. Dubbo 如何成为连接异构微服务体系的最佳服务开发框架

    从编程开发的角度来说,Apache Dubbo (以下简称 Dubbo)首先是一款 RPC 服务框架,它最大的优势在于提供了面向接口代理的服务编程模型,对开发者屏蔽了底层的远程通信细节.同时 Dubb ...

  8. Dubbo Ecosystem - 从微服务框架到微服务生态

    从微服务框架到微服务生态,这是微服务发展的必然趋势,也是Dubbo社区满足开发者更高效的构建微服务体系期望的使命和担当. 近期,Apache Dubbo PPMC 望陶(社区昵称:ralf0131)做 ...

  9. 微服务架构的服务与发现-Spring Cloud

    1 为什么需要服务发现 简单来说,服务化的核心就是将传统的一站式应用根据业务拆分成一个一个的服务,而微服务在这个基础上要更彻底地去耦合(不再共享DB.KV,去掉重量级ESB),并且强调DevOps和快 ...

随机推荐

  1. 图像jpeg压缩

    图像分割 8X8 颜色空间转换RGB->YCbCr 3个8X8的矩阵 离散余弦变换:(Discrete cosine transform),简称DCT. DCT转换后的数组中第一个是一个直线数据 ...

  2. uva 1478 - Delta Wave(递推+大数+卡特兰数+组合数学)

    option=com_onlinejudge&Itemid=8&category=471&page=show_problem&problem=4224" st ...

  3. iOS nsstring 截取字符前后字符串

    // Str = @"PEK_LHR" NSRange range = [trafficeStr rangeOfString:@"_" options:NSBa ...

  4. java的奇技淫巧--意外行为与特性(译文)

    Java是一种非常成熟的编程语言 - 事实上,它已经走过21年了,如果它是一个人,它可以在美国随便混!随着年龄的增长,智慧也在增长,而至少有时候,有些东西会变得很怪异.在本文中,我将介绍Java语言的 ...

  5. 爬虫实战【11】Python获取豆瓣热门电影信息

    之前我们从猫眼获取过电影信息,而且利用分析ajax技术,获取过今日头条的街拍图片. 今天我们在豆瓣上获取一些热门电影的信息. 页面分析 首先,我们先来看一下豆瓣里面选电影的页面,我们默认选择热门电影, ...

  6. 微软Build 2017开发者大会午夜趴

    时间:2017年5月10号半夜 地点:微软中关村会议室 一年一度的Build大会,微软今年特地组织了一波粉丝到“现场”远程观摩keynote直播,同时在新浪直播间里也有相应的专家进行同步翻译和讲(tu ...

  7. Hessian接口测试

  8. 巨蟒python全栈开发数据库攻略6:索引2&重要内容汇总

    1.索引的添加和删除 2.正确命中索引举例,explain优化神奇的简单使用 3.联合索引 4.简述慢日志记录 5.用户创建和权限分配 6.mysqldump逻辑备份,浅谈主从复制和读写分离 7.浅谈 ...

  9. Duilib 入门级教程 推荐

    http://www.cnblogs.com/Alberl/category/520438.html 作者写的不错,图文并茂,适合刚入门.

  10. mongoose连接数据库的两种形式

    不废话,直接 ---------------------- .如果你的应用程序只使用一个数据库, 应该使用 mongoose.connect. 如果您需要创建额外的连接,使用 mongoose.cre ...