1.Dubbo介绍 Dubbo,一个是一款高性能Java RPC框架.私以为有中文官方文档,就不再重复介绍了 2.RPC扩展-本地存根stub RPC扩展功能:提前效验参数,缓存调用结果,日志记录等等,可以使用AOP织入这些扩展功能,但Dubbo提供了更灵活简单的实现-本地存根stub. 3.本地Mock-本地伪装mock RPC在服务异常时,请求返回mock的(假)数据,而不是简单的抛出异常,达到服务降级和本地mock的效果.只有在服务抛出异常时才会调用. 4.调用流程 服务消费者发起调用 如…
真正的大师永远怀着一颗学徒的心 哈喽!大家好,我是小奇,一位程序员界的学徒 小奇打算以轻松幽默的对话方式来分享一些技术,如果你觉得通过小奇的文章学到了东西,那就给小奇一个赞吧 前言 书接上回,昨天打了一天游戏,我是一顿操作猛如虎.一看战绩0-5,最后网管看不下去把电闸拉了,说我影响网吧的整体胜率,无奈我在一群小学生的哀求下离开了网吧(小学生:大哥我求你了,你快走吧,我们还想玩呢). 昨天回到家没事就继续投简历呗,也别挑什么公司了,就是海投,海投知道什么意思吗,就是你的简历像投在大海上一样杳无音信…
dubbo的本地存根的原理是:远程服务后,客户端通常只剩下接口,而实现全在服务器端,但提供方有些时候想在客户端也执行部分逻辑,那么就在服务消费者这一端提供了一个Stub类,然后当消费者调用provider方提供的dubbo服务时,客户端生成 Proxy 实例,这个Proxy实例就是我们正常调用dubbo远程服务要生成的代理实例,然后消费者这方会把 Proxy 通过构造函数传给 消费者方的Stub ,然后把 Stub 暴露给用户,Stub 可以决定要不要去调 Proxy.会通过代理类去完成这个调用…
在远程调用服务提供者的实现之前,如果需要做一些参数验证.缓存.判断.小功能等等,满足要求再调用服务提供者的远程服务,则我们可以通过编写一个本地存根来实现这种功能. (1).在公共项目中或服务消费者项目中编写一个远程接口的本地存根实现. package cn.coreqi.service.stub; import cn.coreqi.entities.User; import cn.coreqi.service.UserService; import java.util.List; public…
本地存根 远程服务后,客户端通常只剩下接口,而实现全在服务器端,但提供方有些时候想在客户端也执行部分逻辑,比如:做 ThreadLocal 缓存,提前验证参数,调用失败后伪造容错数据等等,此时就需要在 API 中带上 Stub,客户端生成 Proxy 实例,会把 Proxy 通过构造函数传给 Stub ,然后把 Stub 暴露给用户,Stub 可以决定要不要去调 Proxy. 在 spring 配置文件中按以下方式配置: <dubbo:service interface="com.foo.…
一.dubbo服务化架构包含的内容 对于传统工程而言,分层的依据是按照包来区分.由于在相同的工程中,所以服务的提供和调用可以方便的实现. 但是对于分布式架构而言,服务的提供者负责服务具体的实现和接口规范,服务的消费者只关心接口规范即可.但是 无论是服务的提供者还是服务的消费者都会涉及到诸如公共工具类.接口.DO.VO.等公共代码,因此一个简单的 dubbo服务架构模式如下: 服务提供者:提供服务接口的实现,发布服务地址,提供服务 服务消费者:获取服务地址,使用服务接口调用服务,处理服务调用结果…
Dubbo学习资料 阿里巴巴分布式服务框架 Dubbo 团队成员梁飞专访 RPC介绍 什么是RPC? RPC(Remote Procedure Call)远程过程调用.见名知意 - 从远程主机调用一个过程/函数. RPC的目标是:使得本程序调用其它远程主机上的函数,好像调用本程序内的函数一样简单,并且屏蔽编程语言的差异性. 要实现上述目标首先是设计一种通讯协议,称之为:RPC协议(Protocol) RPC协议不是一个具体的协议,而是一个类型名,代表一类协议,这类协议叫做RPC协议: RPC协议…
转自:http://blog.csdn.net/congcong68/article/details/41113239 互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使前端应用能更快速和稳定的响应. 第一:介绍Dubbo背景 大规模服务化之前,应用可能只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用…
转载 http://blog.csdn.net/songjinbin/article/details/49498431 一.配置dubbo多协议模式 1.默认协议 Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况.Dubbo缺省协议不适合传送大数据量的服务,比如传文件,传视频等,除非请求量很低. <dubbo:protocol name="dubbo"port="20880"/&…
Dubbo源码下载与编译 本文来讲下如何在Dubbo源码编译后,得到用于搭建管理控制台的war包和监控平台的jar包. 首先需要到Github上下载Dubbo的源码,解压后如下: 在dubbo-2.5.x目录执行 mvn clean package -Dmaven.test.skip=true 会生成如下结果: [INFO] ------------------------------------------------------------------------ [INFO] Reacto…
Demo结构介绍 Demo使用Maven聚合功能,里面有三个模块,目录如下: 其中Consumer模块为服务消费者,里面TestConsumer和consumer.xml组成了基于Spring配置方式的服务调用,TestConsumerApi是基于Dubbo API方式的服务调用,TestConsumerApiGeneric是泛化方式的服务调用,TestConsumerAsync是异步调用的方式. 其中Provider模块为服务提供者,里面TestProvider和provider.xml组成了…
1. 扩展   Soap是webService协议.是http+xml. Rest ful是http+json.相对于soap来说rest ful就是轻量的,因为==.   Rpc与soa区别? Rpc是远程调用技术 Soa是面向服务架构   微服务是什么? 就是将一个很大的工程,拆分成n多个小的模块,模块之间通讯使用rpc远程调用技术,模块是独立运行的.微服务是现在的主流.    Dubbo是一个rpc远程调用框架.也是一个分布式服务治理框架.   2. Dubbo概述 1.1. Dubbo的…
1.dubbo 有一个 dubbo.properties 作为默认配置 默认配置可以在不添加新的配置的前提下使用dubbo dubbo.properties 的内容(来自 https://github.com/alibaba/dubbo) 2.dubbo 学习参考链接 ·dubbo-admin管理控制台的安装和使用:http://www.cnblogs.com/aqsunkai/p/6690607.html ·dubbo官网,下载和配置说明:http://dubbo.io/ ·dubbo结合Sp…
一.Dubbo框架的产生背景        大规模服务化之前,应用只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用,通过F5等硬件进行负载均衡. (1) 当服务越来越多,服务的URL配置管理变得非常困难,F5硬件负载均衡器的单点压力也越来越大:此时需要一个服务注册中心,动态的注册和发现服务,使服务的位置透明.并通过在消费方,获取服务提供方地址列表,从而实现软负载均衡和Failover,来降低对F5硬件负载均衡器的依赖,也能减少部分成本. (2) 当…
一.URL简介 URL也就是Uniform Resource Locator,中文叫统一资源定位符.Dubbo中无论是服务消费方,或者服务提供方,或者注册中心.都是通过URL进行定位资源的.所以今天来聊聊Dubbo中的统一URL资源模型是怎么样的. 二.Dubbo中的URL 标准的URL格式如下: protocol://username:password@host:port/path?key=value&key=value 在Dubbo中URL也是主要由上面的参数组成. public URL(S…
dubbo的配置其实就是建立在spring的命名空间的配置机制之上的.在dubbo的jar包的META-INF目录下会有spring.handlers这个文件,用来配置spring的命名空间和解析类的对应关系.打开spring.handlers文件,可知dubbo的命名空间配置的处理类为com.alibaba.dubbo.config.spring.schema.DubboNamespaceHandler,代码: public void init() { registerBeanDefiniti…
将本地jar包安装到本地仓库中,记得参数上有双引号 mvn install:install-file -Dfile="jar全路径" -DgroupId="groupId名称" -DartifactId="artifactId名称" -Dversion="版本号" -Dpackaging=jar…
maven 把本地jar包打进本地仓库 1.本地有自己写的项目jar包,但是需要用maven依赖对其进行引用: 2.某个jar包在远程仓库没有,导致pom.xml报错,此时可以从网上单独下载此jar包,然后打入本地仓库,即可使用. Maven 安装 JAR 包的命令是: mvn install:install-file -Dfile=jar包的位置 -DgroupId=上面的groupId -DartifactId=上面的artifactId -Dversion=上面的version -Dpac…
在Dubbo整体架构分析中介绍了Dubbo中除了Service和Config层为API外,其他各层均为SPI,为SPI意味着下面各层都是组件化可以被替换的,也就是扩展性比较强,这也是Dubbo比较好的一点. JDK中标准SPI原理 Dubbo增强的SPI功能是从JDK标准SPI演化而来的,所以有必要先讲讲标准SPI的原理. JDK中的SPI(Service Provider Interface)是面向接口编程的,服务规则提供者会在JRE的核心API里面提供服务访问接口,而具体实现则由其他开发商提…
Dubbo的分层架构 本文将简单介绍Dubbo的分层架构设计,如下图是Dubbo官方的整体架构图: Dubbo官方提供的该架构图很复杂,一开始我们没必要深入细节,下面我们简单介绍下其中的主要模块. 其中Service和Config层为API,对于服务提供方来说,使用ServiceConfig API来代表一个要发布的服务配置对象,对于服务消费方来说,ReferenceConfig代表了一个要消费的服务的配置对象.可以直接初始化配置类,也可以通过Spring解析配置自动生成配置类. 其他各层均为S…
maven 项目 本地jar包 安装到本地仓库中去: 首先进入到该文件所在文件夹内 若不在直接绝对路径就可以.注意命令中的空格 mvn install:install-file  -Dfile=文件名称(如:md5.jar) -DgroupId=com.capinfo.crypt -DartifactId=md5 -Dversion=1.0 -Dpackaging=jar -DgeneratePom=true -DcreateChecksum=true…
这篇文章主要介绍了html5本地存储的localstorage .本地数据库.sessionStorage简单使用示例,需要的朋友可以参考下 html5的一个非常cool的功能,就是web storage,类似于之前的cookie,不过与之不同的是,web storage 拥有本地5兆的容量可以存储,而cookie却只有4K,这是完全不能比的优势.webstrange又分为:localstorage,sessionstorage和本地数据库. 接下来我就来一一介绍: 1.localstorage…
推荐下载App,如果本地安装则直接打开本地App(Android/IOS) - 纵观现在每家移动网站,打开首页的时候,都有各种各样的形式来提示你下载自身的移动App(Android/IOS),这是做移动客户端产品的一个很好地引流的手段.当然各家引流下载的交互和视觉各不相同,有的是完全“强奸”用户,有的是完全取悦用户.但是最终的形式就是你点击一个按钮之后,可以去下载对应的App(Android直接下载对应的Apk文件,IOS会跳转到App store的对应地址). 之前开发这个需求的时候,就是很简…
虚拟化(一):虚拟化及vmware产品介绍 虚拟化(二):虚拟化及vmware workstation产品使用 虚拟化(三):vsphere套件的安装注意及使用 虚拟化(四):vsphere高可用功能前提-共享存储搭建 虚拟化(五):vsphere高可用群集与容错 vmware桌面虚拟化产品包括3种,即vmware horizon view.horizon mirage.horizon workspace. vmware view客户端通过使用微软的RDP协议或vmware 专有的PCoIP协议…
1.将本地jar包放入本地仓库.只需执行如下命令即可: mvn install:install-file -Dfile=D:/demo/fiber.jar -DgroupId=com.sure -DartifactId=fiber -Dversion=1.0 -Dpackaging=jar 打开本地maven仓库所在目录即可看到被添加的本地jar包. 2.将本地jar包放入远程私服仓库 A.先到maven的安装目录的conf目录下面的setting.xml查看下私服的地址.如下图是我的的sett…
dubbo是一个分布式服务框架,提供一个SOA的解决方案.简单的说,dubbo就像在生产者和消费者中间架起了一座桥梁,使之能透明交互.本文旨在搭建一个可供使用和测试的dubbo环境,使用了spring框架.maven.zookeeper和dubbo服务. 1.准备 zookeeper:直接去官方网站下载即可(以下是:zookeeper-3.4.6),下载后解压,不需要改任何配置即可使用,或者改配置(..\zookeeper-3.4.6\conf\zoo.cfg)如下: dubbo:直接去阿里巴巴…
从零开始搭建springboot-dubbo的例子 Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案 一. Dubbo的简单介绍 1. 网站架构的发展历程 网站架构随着业务的发展,逻辑越来越复杂,数据量越来越大,交互越来越多....... 单一应用架构(OORM) 当网站流量很小时,将所有的功能部署到一起,以减少部署节点和成本.此时,只需要使用简化增删改查的工作量,采用数据访问框架(ORM). 垂直应用架构 (MVC) 当访问量逐…
文章目录 Dubbo服务启动依赖检查 Dubbo负载均衡策略 Dubbo线程模型(结合Linux线程数限制配置的实战分享) 实战经验分享( ** 属用性能调优**): Dubbo服务启动依赖检查 Dubbo 官方文档: 用户指南 >> 示例 >> 启动时检查 举个…
文章目录 dubbo服务集群 Dubbo服务集群部署 Dubbo服务集群容错配置--集群容错模式 1.Failover Cluster 失败自动切换,当出现失败,重试其它服务器.`(缺省) 通常用于读操作,但重试会带来更长延迟. 可通过retries="2"来设置重试次数(不含第一次).默认是retries="2" 2.Failfast Cluster 3.Failsafe Cluster 4.Failback Cluster 5.Forking Cluster D…
Local-Pref(本地优先属性)路由本地优先术: ①:抓取感兴趣流量——前缀与访问——prefix and access ②:创建路由地图——router-map ③:第一法则——permit 10 ④:第一法则中,匹配(感兴趣)流量.——match ⑤:第一法则中,设置本地优先术——local-preference int ⑥:进入第二法则——permit 20 ⑦:第二法则中,进入 BGP 进程 ⑧:第二法则中,邻居 启用路由地图——router-map local-preference…