服务调用(一)之本地调用(Injvm)
本文基于 Dubbo 2.6.1 版本,望知悉。 1. 概述 从这篇文章开始,我们开始分享服务调用的实现。在前面,艿艿已经写了服务: 本地暴露、远程暴露 本地引用、远程引用 那么在服务调用,必然也是分: 本地调用 远程调用 本文分享本地调用,在 dubbo-rpc-injvm 模块实现。 相比远程调用,实现上会简单很多:因为调用的服务,就在本地进程内,且...
本文基于 Dubbo 2.6.1 版本,望知悉。 1. 概述 从这篇文章开始,我们开始分享服务调用的实现。在前面,艿艿已经写了服务: 本地暴露、远程暴露 本地引用、远程引用 那么在服务调用,必然也是分: 本地调用 远程调用 本文分享本地调用,在 dubbo-rpc-injvm 模块实现。 相比远程调用,实现上会简单很多:因为调用的服务,就在本地进程内,且...
本文基于 Dubbo 2.6.1 版本,望知悉。 1. 概述 本文接 《精尽 Dubbo 源码分析 —— 动态代理(二)之 JDK》 一文,分享使用 Dubbo 本地存根( Stub )的特性。 当然,从标题我们就可以看出,实现的原理是基于动态代理的机制。 在 《Dubbo 用户指南 —— 本地存根》 中,已经非常详尽的分享了本地存根的概念和使用,本文就不重复介绍啦。 文档有一点点小小...
一、Storm集成HDFS 1.1 项目结构 本用例源码下载地址:storm-hdfs-integration 1.2 项目主要依赖 项目主要依赖如下,有两个地方需要注意: 这里由于我服务器上安装的是 CDH 版本的 Hadoop,在导入依赖时引入的也是 CDH 版本的依赖,需要使用 标签指定 CDH 的仓库地址; hadoop-common 、 hadoop-cli...
本文基于 Dubbo 2.6.1 版本,望知悉。 1. 概述 本文接 《精尽 Dubbo 源码分析 —— 动态代理(一)之 Javassist》 一文,分享使用 JDK 生成动态代理的代码实现。 如果 JDK Proxy 不熟悉的胖友,可以看下 《 Java JDK 动态代理(AOP)使用及实现原理分析》 学习下。 学无止境呀。 另外,如果使用 JDK 生成代理,配置方式如下: `...
本文基于 Dubbo 2.6.1 版本,望知悉。 1. 概述 本文分享 Dubbo 动态代理的实现。 在 《Dubbo 用户指南 —— schema 配置参考手册》 中,我们可以看到 和 标签中,可以通过 “proxy” 属性,可以配置动态代理的生成方式: 生成动态代理方式,可选:jdk / javassist 从说明中,我们可以看到,Dubbo 实现了两种方式生成代理: ...
一、简介 下图为 Strom 的运行流程图,在开发 Storm 流处理程序时,我们需要采用内置或自定义实现 spout(数据源) 和 bolt(处理单元),并通过 TopologyBuilder 将它们之间进行关联,形成 Topology。 二、IComponent接口 IComponent 接口定义了 Topology 中所有组件 (spout/bolt) 的公共方法,自定义的 ...
Dubbo的可扩展机制SPI源码解析 Dubbo SPI 架构图 Demo ExtensionLoaderextensionLoader=ExtensionLoader.getExtensionLoader(Protocol.class); Protocolhttp=extensionLoader.getExtension(“dubbo”); System.out.printl...
一、Storm核心概念 1.1 Topologies(拓扑) 一个完整的 Storm 流处理程序被称为 Storm topology(拓扑)。它是一个是由 Spouts 和 Bolts 通过 Stream 连接起来的有向无环图,Storm 会保持每个提交到集群的 topology 持续地运行,从而处理源源不断的数据流,直到你将其主动杀死 (kill) 为止。 1.2 Streams...
Dubbo简介 什么是RPC 在分布式计算,远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一个地址空间(通常为一个开放网络的一台计算机)的子程序,而程序员就像调用本地程序一样,无需额外地为这个交互作用编程(无需关注细节)。RPC是一种服务器-客户端(Client/Server)模式,经典实现是一...
一、简介 在将 Storm Topology 提交到服务器集群运行时,需要先将项目进行打包。本文主要对比分析各种打包方式,并将打包过程中需要注意的事项进行说明。主要打包方式有以下三种: 第一种:不加任何插件,直接使用 mvn package 打包; 第二种:使用 maven-assembly-plugin 插件进行打包; 第三种:使用 maven-shade-plugin ...