Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成. 主要核心部件: Remoting: 网络通信框架,实现了 sync-over-async 和 request-response 消息机制. RPC: (Remote Procedure Call Protocol远程过程调用协议),一个远程过程调用的抽象,支持负载均衡.容灾和集群功能 Registry: 服务目录框架用于服务的注册和服务事件发布和…
Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和  Spring 框架无缝集成. 主要核心部件: Remoting:  网络通信框架,实现了 sync-over-async 和 request-response 消息机制. RPC:   (Remote Procedure Call Protocol远程过程调用协议), 一个远程过程调用的抽象,支持负载均衡.容灾和集群功能 Registry:  服务目录框架用于服务的注册和…
说起soa远程调用基础组件,最著名的莫过于淘宝的dubbo了,目前很多的大型互联网公司都有一套自己的远程服务调用分布式框架,或者是使用开源的(例如dubbo),或者是自己基于某种协议(例如hessian,http等)进行开发,总体来说,使用远程服务调用框架最大的好处莫过于以下三点: 1.透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入.      2.软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点.3. 服务自动注册与发现,不再…
一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天,按中国辞旧迎新的传统,也作为我2014年第一篇博客,我想开篇前要总结下2013年的技术学习.今年我当爸爸了,当爸爸的人是没啥时间研究什么技术和写博客的,所以2013年上半年我的文章很少很少,直到老婆5月回家待产才有重新拿起书,提起笔写技术博客.今年老婆要回上海了,估计2014年的博客数量又会少点,…
在深入学习zookeeper我想先给大家介绍一个和zookeeper相关的应用实例,我把这个实例命名为远程调用服务.通过对这种应用实例的描述,我们会对zookeeper应用场景会有深入的了解. 远程调用是系统与系统之间的通信机制,它的另一种理解就是进程间的通信.做分布式系统的开发,远程调用技术是其核心技术.远程调用技术可以将一组计算机系统形成一个网络系统,对外提供整体服务,那么这一群的计算机系统就构成了一个更大型,性能更高的计算机系统. 我在前面的博客里介绍了一种分布式网站的架构设计,其中就有一…
AIDL:android interface define language(接口定义语言) 作用:方便远程调用其他服务中的方法 注意:安卓四大组件都要在清单文件注册 aidl创建图: AIDL的全称是什么?如何工作?能处理哪些类型的数据?AIDL全称Android Interface Definition Language(AndRoid接口描述语言)是一种接口描述语言; 编译器可以通过aidl文件生成一段代码,通过预先定义的接口达到两个进程内部通信进程跨界对象访问的目的.AIDL的IPC的机…
spring boot / cloud (八) 使用RestTemplate来构建远程调用服务 前言 上周因家里突发急事,请假一周,故博客没有正常更新 RestTemplate介绍: RestTemplate是spring框架中自带的rest客户端工具类,具有丰富的API,并且在spring cloud中,标记@LoadBalanced注解,可以实现客户端负载均衡的rest调用. 思路 RestTemplate虽然提供了丰富的API,但是这些API过于底层,如果不稍加控制,让开发人员随意使用,那…
介绍 远程调用web服务,不需要自己编写具体代码,只需要调用作者给出的接口即可. 我们可以调用互联网上查询天气信息Web服务,然后将它嵌入到我们的程序(C/S或B/S程序)当中来,当用户从我们的网点看到天气信息时,他会认为我们为他提供了很多的信息服务,但其实我们什么也没有做,只是简单调用了一下服务器上的一段代码而已. 规则 基于http 协议 传输的内容为xml格式 SOAP作为一个基于XML语言的协议用于在网上传输数据. SOAP = 在HTTP的基础上+XML数据. WSDL – WebSe…
公司项目进行微服务改造,由之前的dubbo改用SpringCloud,微服务之间通过FeignClient进行调用,今天在测试的时候,eureka注册中心有相应的服务,但feignclient就是无法调通,一直报404错误,排查过程如下: 一.问题: 服务提供方定义的接口如下: /** * 黑白名单查询接口 * * @author LiJunJun * @since 2018/10/18 */ @Component(value = "blackAndWhiteListFeignClient&qu…
一:Feign简介 Feign 是一种声明式.模板化的 HTTP 客户端,在 Spring Cloud 中使用 Feign,可以做到使用 HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个 HTTP 请求. Feign 的灵感来源于 Retrofit.JAXRS-2.0 和 WebSocket,它使得 Java HTTP 客户端编写更方便,旨在通过最少的资源和代码来实现和 HTTP API 的连接. 二:Feign使用步骤 在客户端集成Feig…
公司内部提供的服务 一家对外提供服务的公司,例如百度,腾讯,阿里,京东,58 同城等,公司内部有多个事业群,事业部门,每个事业部门内部又有若干个子部门,子部门里面有多个不同的小组负责各自的业务.提供对外的服务. 公司内部,外部提供的服务不仅多,而且细分,还有交叉的情况.前面的例子是访问互联网上的服务,使用的是 http 请求网络资源.相对来说访问服务方式单一,处理服务的效率相对较低.公司内部服务之间可以使用多种不同的方式访问服务. 使用单一应用访问天气服务 图一: 图二: A.新建 web 项目…
作者: 白文志 (来自开源社区) 服务提供者暴露一个服务的详细过程 上图是服务提供者暴露服务的主过程:首先ServiceConfig类拿到对外提供服务的实际类ref(如:HelloWorldImpl),然后通过ProxyFactory类的getInvoker方法使用ref生成一个AbstractProxyInvoker实例,到这一步就完成具体服务到Invoker的转化. 接下来就是Invoker转换到Exporter的过程. Dubbo处理服务暴露的关键就在Invoker转换到Exporter的…
Android Service是分为两种: 本地服务(Local Service): 同一个apk内被调用 远程服务(Remote Service):被另一个apk调用 远程服务需要借助AIDL来完成. AIDL 是什么 AIDL (Android Interface Definition Language) 是一种IDL 语言,用于生成可以在Android设备上两个进程之间进行进程间通信(interprocess communication, IPC)的代码.如果在一个进程中(例如Activi…
一.问题回顾 如果application.properties文件中配置了 #项目路径 server.servlet.context-path=/pear-cache-service 则feignclient调用404 二.原因分析当项目中配置了相当于配置了server.servlet.context-path,服务的根路径,若正常的rest请求的话,请求的url就是http://192.168.4.82:2222/pear-cache-service/v1/xxx/xxx 再来看我们配的fei…
记得服务暴露的时候createServer()里 server = Exchangers.bind(url, requestHandler); requestHandler在DubboProtocol里的实现如下: private ExchangeHandler requestHandler = new ExchangeHandlerAdapter() { @Override public Object reply(ExchangeChannel channel, Object message)…
GET public static string GetJsonStr(string webApi)        {            string serviceAddress = webApi;            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceAddress);            request.Method = "GET";            request.C…
架构师之路:从无到有搭建中小型互联网公司后台服务架构与运维架构 http://www.roncoo.com/course/view/ae1dbb70496349d3a8899b6c68f7d10b 概述 dubbo支持多种远程调用方式,例如dubbo RPC(二进制序列化 + tcp协议).http invoker(二进制序列化 + http协议,至少在开源版本没发现对文本序列化的支持).hessian(二进制序列化 + http协议).WebServices (文本序列化 + http协议)等…
目录 概述 REST的优点 应用场景 快速入门 标准Java REST API:JAX-RS简介 REST服务提供端详解 HTTP POST/GET的实现 Annotation放在接口类还是实现类 JSON.XML等多数据格式的支持 中文字符支持 XML数据格式的额外要求 定制序列化 配置REST Server的实现 获取上下文(Context)信息 配置端口号和Context Path 配置线程数和IO线程数 配置长连接 配置最大的HTTP连接数 配置每个消费端的超时时间和HTTP连接数 GZ…
分布式微服务现在成为了很多公司架构首先项,据我了解,很多java公司架构都是 Maven+Dubbo+Zookeeper基础上扩展的. Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色. 关于更多Dubbo…
转载自http://shiyanjun.cn/archives/349.html Dubbo基于Hessian实现了自己Hessian协议,可以直接通过配置的Dubbo内置的其他协议,在服务消费方进行远程调用,也就是说,服务调用方需要使用Java语言来基于Dubbo调用提供方服务,限制了服务调用方.同时,使用Dubbo的Hessian协议实现提供方服务,而调用方可以使用标准的Hessian接口来调用,原生的Hessian协议已经支持多语言客户端调用,支持语言如下所示: Java:http://h…
Dubbo基于Hessian实现了自己Hessian协议,可以直接通过配置的Dubbo内置的其他协议,在服务消费方进行远程调用,也就是说,服务调用方需要使用Java语言来基于Dubbo调用提供方服务,限制了服务调用方.同时,使用Dubbo的Hessian协议实现提供方服务,而调用方可以使用标准的Hessian接口来调用,原生的Hessian协议已经支持多语言客户端调用,支持语言如下所示: Java:http://hessian.caucho.com/#Java Flash/Flex:http:/…
http访问到服务器要经过的内容:Nginx —Tomcat –db,nginx就是一个负载均衡左右.又一次面试问到了我nginx的反向代理.现在想了想面试官要问的应该是 域名的反向代理,就是使用一个域名去指定某个端口 至于负载均衡就是 可以吧请过过来的 http分不到不同的tomcat上减缓tomcat压力了,然后再说Tomcat 一般开发的服务都是聚合服务,项目很大.项目分模块开发.基本都是这样子 比如说.用户模块.单独拿出来做一个服务.放到一个tomcat下.然后商品模块.订单模块.支付模…
一.远程调用概述 1.远程调用的定义 在一个程序中就像调用本地中的方法一样调用另外一个远程程序中的方法,但是整个过程对本地完全透明,这就是远程调用.spring已经能够非常成熟的完成该项功能了. 2.spring远程调用的原理 客户端调用本地接口中的一个方法调用的时候将会被客户端代理拦截,并向远程服务器发起一个servlet请求(服务器中的web.xml文件中专门配置了该Servlet),服务器接受请求,并根据spring配置文件和请求的url找到对应的“导出器”,导出器将pojo转换成控制器c…
1.Spring中除了提供HTTP调用器方式的远程调用,还对第三方的远程调用实现提供了支持,其中提供了对Hessian的支持. Hessian是由Caocho公司发布的一个轻量级的二进制协议远程调用实现方案,Hessian也是基于HTTP协议的,其工作原理如下: (1).客户端: a.发送远程调用请求: 客户端程序—>发送远程调用请求—>Hessian客户端拦截器—>封装远程调用请求—>Hessian代理—>通过HTTP协议发送远程请求代理到服务端. b.接收远程调用响应:…
http://www.csdn.net/article/2014-01-02/2817944-zookeeper 在Hadoop的学习过程中,Zookeeper是让很多初学者困惑的技术,远程调用服务是一个很适合zookeeper应用的场景,这里从自己设计的远程调用服务架构谈起,详细介绍了Zookeeper这一应用场景. Zookeeper技术详解 在远程服务里Zookeeper使用在远程调用管理组件里,而服务调用者则是Zookeeper的客户端,远程调用管理组件也是远程调用服务的核心所在,如果远…
1.Spring中,HTTPInvoker(HTTP调用器)是通过基于HTTP协议的分布式远程调用解决方案,和java RMI一样,HTTP调用器也需要使用java的对象序列化机制完成客户端和服务器端的通信.HTTP调用器的远程调用工作原理如下: (1).客户端: a.向服务器发送远程调用请求: 远程调用信息——>封装为远程调用对象——>序列化写入到远程调用HTTP请求中——>向服务器端发送. b.接收服务器端返回的远程调用结果: 服务器端返回的远程调用结果HTTP响应——>反序列…
[一]spring的远程调用提供的基础类 (1)org.springframework.remoting.support.RemotingSupport ===>spring提供实现的远程调用客户端实现的基础类 ===>例子:org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean org.springframework.remoting.caucho.HessianProxyFactoryBean (2)org.…
Service依照其启动的方式,可分为两种: 1.Started Started的Service.通过在Application里用startService(Intent intent)方法来启动.这样的类型的Service一经启动.会在后面无休止地执行,即使启动它的Activity被Destroy掉.要停止此类型的Service,可在Service中调用stopSelf()或在Application中调用stopService(Intent intent),要不然就仅仅能等Android系统在系…
1.项目模块介绍 2. 父项目 主要依赖 spring-cloud 的 版本控制 <properties> <!-- springCloud 版本 --> <scd.version>Dalston.SR4</scd.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.spring…
当当网近日开源了Dubbox项目,可为Dubbo服务框架提供多项扩展功能,包括REST风格远程调用.Kryo/FST序列化等等. 当当网架构部和技术委员会架构师沈理向InfoQ中文站介绍了Dubbox项目,开发背景和主要特点描述如下: Dubbo是一个被国内很多互联网公司广泛使用的开源分布式服务框架,即使从国际视野来看应该也是一个非常全面的SOA基础框架.作为一个重要的技术研究课题,在当当网我们根据自身的需求,为Dubbo实现了一些新的功能,并将其命名为Dubbox(即Dubbo eXtensi…