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. 【Python】GUI 练习1--利率计算器

    import sys from PyQt4.QtCore import * from PyQt4.QtGui import * class Form(QDialog): def __init__(se ...

  2. Unittest框架概念

    1.测试脚手架(test fixture): 测试准备前要做的工作和测试执行完后要做的工作(包括setUp()和tearDown()) 2.测试用例(test case): 最小的测试单元 3.测试套 ...

  3. AWS系列-根设备类型

    1.AWS根设备类型分为两类 实例存储(本地存储) EBS存储(网络存储) 2.实例存储 系统和磁盘在同一主机上 3.EBS存储 Elastic Block Storage EBS可能与云主机不在一台 ...

  4. Mysql数据库存储是乱码问题(或者在查询时无法加载数据)

    在连接数据库时添加一行代码即可解决:?useUnicode=true&characterEncoding=utf8 截图如下:

  5. 标C编程笔记day05 函数声明、文件读写、联合类型、枚举类型

    函数声明:     1.隐式声明:在没有声明的情况下,系统可依据參数类型推断去调用函数(有可能出错)     2.显式声明:声明在被调用之前.如:double add(double,double);  ...

  6. Linux各文件颜色的含义

    Linux系统中文件有多种颜色,不同颜色文件代表不同类型的文件,具体如下: 蓝色:目录 绿色:可执行文件 红色:压缩文件 浅蓝色:链接文件 白色:普通文件 黄色:设备文件

  7. 【Python之路】第十四篇--jQuery

    jquery简介 1.jquery是什么       ☛ 参考用法 jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team. jQuery ...

  8. 【Python之路】第二十三篇--Django【进阶篇】

    文件配置 1.模版Templates文件配置: TEMPLATE_DIRS = ( os.path.join(BASE_DIR,'templates'), ) 2.静态文件static配置: STAT ...

  9. 实践中需要了解的cpu特性

    目录 分段机制 特权级检查 GDT和LDT 堆栈切换 分页机制 中断 分段机制 实模式中cs是一个实实在在的段首地址,ip为cs所指向段的偏移,所以cs<<4+ip是当前cpu执行的指令. ...

  10. jenkins 升级

    升级Jenkins Jenkins的开发迭代非常快,每周发布一个开发版本,长期支持版每半年更新一次(ps:大版本更新).如此频繁的更新,怎么升级呢? war:下载新版的war文件,替换旧版本war文件 ...