Dubbo与微服务
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与微服务的更多相关文章
- 传统保险企业基于 Dubbo 的微服务实践
本文整理自中国人寿保险(海外)股份有限公司深圳中心技术总监家黄晓彬在 Dubbo 社区开发者日深圳站的现场分享. 中国人寿保险(海外)股份有限公司负责香港.澳门.新加坡和印尼的业务开发,和国内业务不同 ...
- 关于dubbo+zookeeper微服务的一些认识记录
借鉴架构示意图: 实例介绍: 公司某项目架构 服务器A:nginx 服务器BC:tomcat1.tomcat2 服务器D:Dubbo+zookeeper 服务器EF:db1+zookeeper.db2 ...
- springboot+dubbo+zookeeper微服务实践demo
微服务化越来越火,实际上是应互联网时代而生的,微服务化带来的不仅是性能上的提升,更带来了研发组织的更加便利,协作更加轻松,团队效能更高. 当然不能为了技术而技术,我们需要切合实际的对业务进行划分,降低 ...
- ZooKeeper+Dubbo+SpringBoot 微服务Demo搭建
1. 首先创建springBoot项目,springBoot是一堆组件的集合,在pom文件中对需要的组件进行配置.生成如下目录结构 创建test项目,同步在test创建dubbo-api,dubbo- ...
- 集成 dubbo 微服务
微服务架构近年来非常的火,阿里 的dubbo 是其中的一种解决方案. dubbo 的微服务主要分为以下几部分: 1.注册中心 2.服务提供者 3.消费者 4.监控平台 1.一般流程服务提供者向注册中心 ...
- Dubbo学习系列之六(微服务架构实战)
看了最近文章的反馈,似乎波澜不惊的样子,应该是看官觉得都是小菜,那我就直上硬菜,人狠话不多,开始!准备:Idea201902/JDK11/ZK3.5.5/Gradle5.4.1/RabbitMQ3.7 ...
- Dubbo 如何成为连接异构微服务体系的最佳服务开发框架
从编程开发的角度来说,Apache Dubbo (以下简称 Dubbo)首先是一款 RPC 服务框架,它最大的优势在于提供了面向接口代理的服务编程模型,对开发者屏蔽了底层的远程通信细节.同时 Dubb ...
- Dubbo Ecosystem - 从微服务框架到微服务生态
从微服务框架到微服务生态,这是微服务发展的必然趋势,也是Dubbo社区满足开发者更高效的构建微服务体系期望的使命和担当. 近期,Apache Dubbo PPMC 望陶(社区昵称:ralf0131)做 ...
- 微服务架构的服务与发现-Spring Cloud
1 为什么需要服务发现 简单来说,服务化的核心就是将传统的一站式应用根据业务拆分成一个一个的服务,而微服务在这个基础上要更彻底地去耦合(不再共享DB.KV,去掉重量级ESB),并且强调DevOps和快 ...
随机推荐
- linux和android端的pthread学习
本文起初主要想写个演示样例实測下pthread_mutex_lock和pthread_mutex_trylock差别.在linux机器上非常快就over了,可是想了一下.pthread是unix系的, ...
- kafka 安装步骤
kafka安装文档 1.解压缩(官网下载:http://kafka.apache.org/downloads.html) tar -xzf kafka_2.10-0.8.2.0.tgz cd kafk ...
- RAC集群节点故障模拟测试
RAC节点故障模拟测试 重启单个RAC 节点模拟测试模拟操作步骤使用shutdown –Fr的方式重启节点,查看系统反应和数据库重新启动的时间.预期测试结果重启单个节点,vip将会切换到另外一个节点. ...
- (1)、hive框架搭建和架构简介
一.简介 Hive是基于hadoop的一个数据仓库工具,有助于查询和管理分布式存储系统中的数据集,非常适合数据仓库的统计分析 Hive 不适合用于连机事物处理.也不提供实时查询,比较适合在大量不可变数 ...
- npm安装express 公司上网设置代理
异常: 0 info it worked if it ends with ok1 verbose cli [ 'C:\\Program Files (x86)\\nodejs\\\\node.exe' ...
- GitHub上整理的一些工具【转】
技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 infoq:企业级应用,关注软件开发领域 ...
- 【BZOJ4382】[POI2015]Podział naszyjnika 堆+并查集+树状数组
[BZOJ4382][POI2015]Podział naszyjnika Description 长度为n的一串项链,每颗珠子是k种颜色之一. 第i颗与第i-1,i+1颗珠子相邻,第n颗与第1颗也相 ...
- python框架Scrapy中crawlSpider的使用
一.创建Scrapy工程 #scrapy startproject 工程名 scrapy startproject demo3 二.进入工程目录,根据爬虫模板生成爬虫文件 #scrapy genspi ...
- 巨蟒python全栈开发-第20天 核能来袭-约束 异常处理 MD5 日志处理
一.今日主要内容 1.类的约束(对下面人的代码进行限制;项目经理的必备技能,要想走的长远) (1)写一个父类,父类中的某个方法要抛出一个异常 NotImplementedError(重点) (2)抽象 ...
- bash短路径显示
修改.bashrc文件vim 打开.bashrc文件,找到如下这行,有两个,都修改一下: PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' 将上面 ...