系统间通信技术
文章平均质量分 96
这个文章系列专门整理总结了目前系统间通信的主要原理、手段和实现。我们将讲解典型的信息格式、讲解传统的RMI调用并延伸出来重点讲解RPC调用和使用案例;最后我们还会讲到SOA架构的实现,包括ESB实现和服务注册/治理的实现,同样包括原理、实现和使用案例。
说好不能打脸
我没想过赢,我只是不想输
展开
-
架构设计:系统间通信(45)——阶段性问题记录
到此为止 《架构设计:系统间通信》专题就暂时告一段落了。这边文章笔者用于暂时记录这个专题中还需要补充的内容,并在后续的整理中足一补上:原创 2016-08-11 20:31:54 · 9253 阅读 · 34 评论 -
架构设计:系统间通信(44)——自己动手设计ESB(5)
这是对本专题从第19篇文章到第39篇文章中所介绍的知识点的最好的总结。我们自己动手设计ESB中间件,不是为了让它商用,也不是为了让它可以比拟市面上某款ESB中间件,甚至不是为了把ESB中的技术难点的解决全部方案化。我们的目的是检验整个专题中所介绍的知识点是否能在读者自己消化后进行综合应用,是否能做到技术知识的活学活用、按需选型。原创 2016-08-11 20:02:18 · 6578 阅读 · 4 评论 -
架构设计:系统间通信(43)——自己动手设计ESB(4)
这是对本专题从第19篇文章到第39篇文章中所介绍的知识点的最好的总结。我们自己动手设计ESB中间件,不是为了让它商用,也不是为了让它可以比拟市面上某款ESB中间件,甚至不是为了把ESB中的技术难点的解决全部方案化。我们的目的是检验整个专题中所介绍的知识点是否能在读者自己消化后进行综合应用,是否能做到技术知识的活学活用、按需选型。原创 2016-08-07 08:21:33 · 6716 阅读 · 3 评论 -
架构设计:系统间通信(42)——自己动手设计ESB(3)
这是对本专题从第19篇文章到第39篇文章中所介绍的知识点的最好的总结。我们自己动手设计ESB中间件,不是为了让它商用,也不是为了让它可以比拟市面上某款ESB中间件,甚至不是为了把ESB中的技术难点的解决全部方案化。我们的目的是检验整个专题中所介绍的知识点是否能在读者自己消化后进行综合应用,是否能做到技术知识的活学活用、按需选型。原创 2016-07-28 15:44:48 · 8088 阅读 · 7 评论 -
架构设计:系统间通信(41)——自己动手设计ESB(2)
这是对本专题从第19篇文章到第39篇文章中所介绍的知识点的最好的总结。我们自己动手设计ESB中间件,不是为了让它商用,也不是为了让它可以比拟市面上某款ESB中间件,甚至不是为了把ESB中的技术难点的解决全部方案化。我们的目的是检验整个专题中所介绍的知识点是否能在读者自己消化后进行综合应用,是否能做到技术知识的活学活用、按需选型。原创 2016-07-26 20:55:53 · 9261 阅读 · 13 评论 -
架构设计:系统间通信(40)——自己动手设计ESB(1)
这是对本专题从第19篇文章到第39篇文章中所介绍的知识点的最好的总结。我们自己动手设计ESB中间件,不是为了让它商用,也不是为了让它可以比拟市面上某款ESB中间件,甚至不是为了把ESB中的技术难点的解决全部方案化。我们的目的是检验整个专题中所介绍的知识点是否能在读者自己消化后进行综合应用,是否能做到技术知识的活学活用、按需选型。原创 2016-07-21 12:37:40 · 17071 阅读 · 19 评论 -
架构设计:系统间通信(39)——Apache Camel快速入门(下2)
那么这里我们为什么又要花两篇文章的篇幅来介绍Apache Camel呢?因为后续文章中,在我们进行一款简单的ESB中间件设计时,我们将会依靠Apache Camel提供的协议转换、消息路由等核心能力。那么,就让我们开始吧!原创 2016-07-12 15:27:09 · 11122 阅读 · 7 评论 -
架构设计:系统间通信(38)——Apache Camel快速入门(下1)
那么这里我们为什么又要花两篇文章的篇幅来介绍Apache Camel呢?因为后续文章中,在我们进行一款简单的ESB中间件设计时,我们将会依靠Apache Camel提供的协议转换、消息路由等核心能力。那么,就让我们开始吧!原创 2016-07-04 08:33:22 · 17525 阅读 · 7 评论 -
架构设计:系统间通信(37)——Apache Camel快速入门(中)
那么这里我们为什么又要花两篇文章的篇幅来介绍Apache Camel呢?因为后续文章中,在我们进行一款简单的ESB中间件设计时,我们将会依靠Apache Camel提供的协议转换、消息路由等核心能力。那么,就让我们开始吧!原创 2016-06-27 15:45:55 · 19929 阅读 · 12 评论 -
架构设计:系统间通信(36)——Apache Camel快速入门(上)
那么这里我们为什么又要花两篇文章的篇幅来介绍Apache Camel呢?因为后续文章中,在我们进行一款简单的ESB中间件设计时,我们将会依靠Apache Camel提供的协议转换、消息路由等核心能力。那么,就让我们开始吧!原创 2016-06-21 11:04:27 · 68246 阅读 · 33 评论 -
架构设计:系统间通信(35)——被神化的ESB(下)
从本篇文章开始,我们将花一到两篇的篇幅介绍ESB(企业服务总线)技术的基本概念,为读者们理清多个和ESB技术有关名词。我们还将在其中为读者阐述什么情况下应该使用ESB技术。接下来,为了加深读者对ESB技术的直观理解,我们将利用Apache Camel一起搭建一个ESB技术的服务实现,虽然这个示例不能把目前主流的ESB服务实现中所有功能模块都保罗进来,但至少可以让读者看到ESB技术核心服务完整的工作方式。原创 2016-06-13 10:16:31 · 28602 阅读 · 24 评论 -
架构设计:系统间通信(34)——被神化的ESB(上)
从本篇文章开始,我们将花一到两篇的篇幅介绍ESB(企业服务总线)技术的基本概念,为读者们理清多个和ESB技术有关名词。我们还将在其中为读者阐述什么情况下应该使用ESB技术。接下来,为了加深读者对ESB技术的直观理解,我们将利用Apache Camel一起搭建一个ESB技术的服务实现,虽然这个示例不能把目前主流的ESB服务实现中所有功能模块都保罗进来,但至少可以让读者看到ESB技术核心服务完整的工作方式。原创 2016-06-07 11:20:15 · 61428 阅读 · 5 评论 -
架构设计:系统间通信(33)——其他消息中间件及场景应用(下3)
我们将通过包括本文章在内的2-3篇文章的篇幅,利用已经学习过的技术知识向大家介绍事件/日志收集系统的半侵入方案和非侵入式方案。当然中间还会穿插一些新技术的介绍,比如Apache Flume。原创 2016-05-31 14:49:37 · 18475 阅读 · 12 评论 -
架构设计:系统间通信(32)——其他消息中间件及场景应用(下2)
我们将通过包括本文章在内的2-3篇文章的篇幅,利用已经学习过的技术知识向大家介绍事件/日志收集系统的半侵入方案和非侵入式方案。当然中间还会穿插一些新技术的介绍,比如Apache Flume。原创 2016-05-24 17:37:08 · 20830 阅读 · 5 评论 -
架构设计:系统间通信(31)——其他消息中间件及场景应用(下1)
我们将通过包括本文章在内的2-3篇文章的篇幅,利用已经学习过的技术知识向大家介绍事件/日志收集系统的半侵入方案和非侵入式方案。当然中间还会穿插一些新技术的介绍,比如Apache Flume。原创 2016-05-19 13:45:40 · 25074 阅读 · 3 评论 -
架构设计:系统间通信(30)——Kafka及场景应用(中3)
在本月初的写作计划中,我本来只打算粗略介绍一下Kafka(同样是因为进度原因)。但是,最近有很多朋友要求我详细讲讲Kafka的设计和使用,另外两年前我在研究Kafka准备将其应用到生产环境时,由于没有仔细理解Kafka的设计结构所导致的问题最后也还没有进行交代。所以我决定即使耽误一些时间,也要将Kafka的原理和使用场景给读者详细讨论讨论。这样,也算是对两年来自己学习和使用Kafka的一个总结。原创 2016-05-08 14:16:12 · 12607 阅读 · 7 评论 -
架构设计:系统间通信(29)——Kafka及场景应用(中2)
在本月初的写作计划中,我本来只打算粗略介绍一下Kafka(同样是因为进度原因)。但是,最近有很多朋友要求我详细讲讲Kafka的设计和使用,另外两年前我在研究Kafka准备将其应用到生产环境时,由于没有仔细理解Kafka的设计结构所导致的问题最后也还没有进行交代。所以我决定即使耽误一些时间,也要将Kafka的原理和使用场景给读者详细讨论讨论。这样,也算是对两年来自己学习和使用Kafka的一个总结。原创 2016-05-06 12:17:15 · 19468 阅读 · 8 评论 -
架构设计:系统间通信(28)——Kafka及场景应用(中1)
在本月初的写作计划中,我本来只打算粗略介绍一下Kafka(同样是因为进度原因)。但是,最近有很多朋友要求我详细讲讲Kafka的设计和使用,另外两年前我在研究Kafka准备将其应用到生产环境时,由于没有仔细理解Kafka的设计结构所导致的问题最后也还没有进行交代。所以我决定即使耽误一些时间,也要将Kafka的原理和使用场景给读者详细讨论讨论。这样,也算是对两年来自己学习和使用Kafka的一个总结。原创 2016-05-02 20:52:58 · 22443 阅读 · 7 评论 -
架构设计:系统间通信(27)——其他消息中间件及场景应用(上)
目前业界有很多消息中间件可供大家选择,主要分为两类:需要付费的商业软件和开源共享的非商业软件。对于商业软件您和您的团队可以选择IBM WebSphere集成的MQ功能,也可以选择Oracle WebLogic集成的MQ功能。本文首先介绍除Apache ActiveMQ以外的两款开源共享的消息中间件产品,然后列举三个实际的业务常见,为读者介绍如何在这些实际业务中使用消息中间件解决问题。原创 2016-04-28 15:12:34 · 30959 阅读 · 8 评论 -
架构设计:系统间通信(26)——ActiveMQ集群方案(下)
通过之前的文章,我们讨论了ActiveMQ的基本使用,包括单个ActiveMQ服务节点的性能特征,关键调整参数;我们还介绍了单个ActiveMQ节点上三种不同的持久化存储方案,并讨论了这三种不同的持久化存储方案的配置和性能特点。但是这还远远不够,因为在生产环境中为了保证让我们设计的消息服务方案能够持续工作,我们还需要为消息中间件服务搭建集群环境,从而在保证消息中间件服务可靠性和处理性能。原创 2016-04-23 17:33:41 · 21772 阅读 · 15 评论 -
架构设计:系统间通信(25)——ActiveMQ集群方案(上)
通过之前的文章,我们讨论了ActiveMQ的基本使用,包括单个ActiveMQ服务节点的性能特征,关键调整参数;我们还介绍了单个ActiveMQ节点上三种不同的持久化存储方案,并讨论了这三种不同的持久化存储方案的配置和性能特点。但是这还远远不够,因为在生产环境中为了保证让我们设计的消息服务方案能够持续工作,我们还需要为消息中间件服务搭建集群环境,从而在保证消息中间件服务可靠性和处理性能。原创 2016-04-17 17:22:59 · 31259 阅读 · 8 评论 -
架构设计:系统间通信(24)——提高ActiveMQ工作性能(下)
根据这个系列文章所陈述的中心思想,系统的性能层次包括:代码级性能、规则性能、存储性能、网络性能,以及多节点协同方法(集群方案),所以我们优化ActiveMQ的中心思路也是这样的:首先优化ActiveMQ单个节点的性能,然后在配置ActiveMQ的集群。下面我们就按照这个思路,一步步介绍和ActiveMQ性能有关的那些事。原创 2016-04-10 12:40:29 · 17000 阅读 · 20 评论 -
架构设计:系统间通信(23)——提高ActiveMQ工作性能(中)
根据这个系列文章所陈述的中心思想,系统的性能层次包括:代码级性能、规则性能、存储性能、网络性能,以及多节点协同方法(集群方案),所以我们优化ActiveMQ的中心思路也是这样的:首先优化ActiveMQ单个节点的性能,然后在配置ActiveMQ的集群。下面我们就按照这个思路,一步步介绍和ActiveMQ性能有关的那些事。原创 2016-04-04 10:44:19 · 14355 阅读 · 11 评论 -
架构设计:系统间通信(22)——提高ActiveMQ工作性能(上)
根据这个系列文章所陈述的中心思想,系统的性能层次包括:代码级性能、规则性能、存储性能、网络性能,以及多节点协同方法(集群方案),所以我们优化ActiveMQ的中心思路也是这样的:首先优化ActiveMQ单个节点的性能,然后在配置ActiveMQ的集群。下面我们就按照这个思路,一步步介绍和ActiveMQ性能有关的那些事。原创 2016-03-27 13:50:39 · 22563 阅读 · 18 评论 -
架构设计:系统间通信(21)——ActiveMQ的安装与使用
之前我们通过两篇文章([架构设计:系统间通信(19)——MQ:消息协议(上)](http://blog.csdn.net/yinwenjie/article/details/50698695)、[架构设计:系统间通信(20)——MQ:消息协议(下)](http://blog.csdn.net/yinwenjie/article/details/50698695))从理论层面上为大家介绍了消息协议的基本定义,并花了较大原创 2016-03-22 12:35:00 · 14027 阅读 · 16 评论 -
架构设计:系统间通信(20)——MQ:消息协议(下)
从本文开始,我们介绍另一类型的系统间通讯及输:MQ消息队列。首先我们将讨论几种常用消息队列协议的基本原理和工作方式,包括MQTT、XMPP、Stomp、AMQP、OpenWire等。然后在这个基础上介绍两款MQ产品:ActiveMQ和RabbitMQ,它们是现在业务系统中应用广泛的消息队列软件。包括他们的安装、运行、支持协议、集群化和调用方式。原创 2016-03-14 16:21:05 · 16073 阅读 · 15 评论 -
架构设计:系统间通信(19)——MQ:消息协议(上)
从本文开始,我们介绍另一类型的系统间通讯及输:MQ消息队列。首先我们将讨论几种常用消息队列协议的基本原理和工作方式,包括MQTT、XMPP、Stomp、AMQP、OpenWire等。然后在这个基础上介绍两款MQ产品:ActiveMQ和RabbitMQ,它们是现在业务系统中应用广泛的消息队列软件。包括他们的安装、运行、支持协议、集群化和调用方式。原创 2016-03-07 15:39:34 · 31594 阅读 · 13 评论 -
架构设计:系统间通信(18)——服务治理与Dubbo 下篇(继续分析)
上篇文章中(《架构设计:系统间通信(15)——服务治理与Dubbo 上篇》),我们以示例的方式讲解了阿里DUBBO服务治理框架基本使用。从这节开始我们将对DUBBO的主要模块的设计原理进行讲解,从而帮助读者理解DUBBO是如何工作的。(由于这个章节的内容比较多,包括了知识准备、DUBBO框架概述、DUBBO各模块分析,所以我将把内容切割成多篇文章)原创 2015-12-30 22:41:03 · 11749 阅读 · 13 评论 -
架构设计:系统间通信(17)——服务治理与Dubbo 中篇(分析)
上篇文章中(《架构设计:系统间通信(15)——服务治理与Dubbo 上篇》),我们以示例的方式讲解了阿里DUBBO服务治理框架基本使用。从这节开始我们将对DUBBO的主要模块的设计原理进行讲解,从而帮助读者理解DUBBO是如何工作的。(由于这个章节的内容比较多,包括了知识准备、DUBBO框架概述、DUBBO各模块分析,所以我将把内容切割成多篇文章)原创 2015-12-19 10:23:00 · 30676 阅读 · 6 评论 -
架构设计:系统间通信(16)——服务治理与Dubbo 中篇(预热)
上篇文章中(《架构设计:系统间通信(15)——服务治理与Dubbo 上篇》),我们以示例的方式讲解了阿里DUBBO服务治理框架基本使用。从这节开始我们将对DUBBO的主要模块的设计原理进行讲解,从而帮助读者理解DUBBO是如何工作的。(由于这个章节的内容比较多,包括了知识准备、DUBBO框架概述、DUBBO各模块分析,所以我将把内容切割成多篇文章)原创 2015-12-09 11:03:29 · 12718 阅读 · 5 评论 -
架构设计:系统间通信(15)——服务治理与Dubbo 上篇
在之前的文章中,我们基于服务治理的基本原理,自己实现了一个基于zookeeper + thrift的服务治理框架。但实际上前文中我们自行设计的服务治理框架除了演示基本原理外,并没有多大的实际使用价值,因为还有很多硬性需求是没有实现的。从这篇文章开始,我们详细介绍一款能够应用到生产环境的服务治理框架:由阿里巴巴开发团开源贡献的DUBBO服务治理框架。希望能够帮助各位读者优化自己的生产环境架构方案。原创 2015-12-01 17:29:29 · 24255 阅读 · 13 评论 -
架构设计:系统间通信(14)——RPC实例Apache Thrift 下篇(2)
为了更深入理解服务治理框架的作用、工作原理,下面我们就以Apache Thrift为服务治理框架基础技术,来实现一个简单的服务治理框架。为了保证快速实现,我们使用zookeeper作为服务管理组件的基础技术,使用Apache Thrift作为服务提供者和服务使用者之间约定好的RPC调用方式。原创 2015-11-22 11:39:56 · 9118 阅读 · 19 评论 -
架构设计:系统间通信(13)——RPC实例Apache Thrift 下篇(1)
为了更深入理解服务治理框架的作用、工作原理,下面我们就以Apache Thrift为服务治理框架基础技术,来实现一个简单的服务治理框架。为了保证快速实现,我们使用zookeeper作为服务管理组件的基础技术,使用Apache Thrift作为服务提供者和服务使用者之间约定好的RPC调用方式。原创 2015-11-19 16:58:55 · 13555 阅读 · 5 评论 -
架构设计:系统间通信(12)——RPC实例Apache Thrift 中篇
通过上一篇文章《架构设计:系统间通信(10)——RPC的基本概念》的介绍,相信读者已经理解了基本的RPC概念。为了加深这个理解,后面几篇文章我将详细讲解一款典型的RPC规范的实现Apache Thrift。Apache Thrift的介绍一共分为三篇文章,上篇讲解Apache Thrift的基本使用;中篇讲解Apache Thrift的工作原理(主要围绕Apache Thrift使用的消息格式封装、支持的网络IO模型原创 2015-11-12 19:31:18 · 8902 阅读 · 0 评论 -
架构设计:系统间通信(11)——RPC实例Apache Thrift 上篇
通过上一篇文章《架构设计:系统间通信(10)——RPC的基本概念》的介绍,相信读者已经理解了基本的RPC概念。为了加深这个理解,后面几篇文章我将详细讲解一款典型的RPC规范的实现Apache Thrift。Apache Thrift的介绍一共分为三篇文章,上篇讲解Apache Thrift的基本使用;中篇讲解Apache Thrift的工作原理(主要围绕Apache Thrift使用的消息格式封装、支持的网络IO模型原创 2015-11-06 17:24:21 · 16087 阅读 · 11 评论 -
架构设计:系统间通信(10)——RPC的基本概念
经过了详细的信息格式、网络IO模型的讲解,并且通过JAVA RMI的讲解进行了预热。从这篇文章开始我们将进入这个系列博文的另一个重点知识体系的讲解:RPC。在后续的几篇文章中,我们首先讲解RPC的基本概念,一个具体的RPC实现会有哪些基本要素构成,然后我们详细介绍一款典型的RPC框架:Apache Thrift。接下来我们聊聊服务治理和DUBBO服务框架。最后总结一下如何在实际工作中选择合适的RPC框架。原创 2015-10-30 17:21:21 · 25511 阅读 · 11 评论 -
架构设计:系统间通信(9)——通信管理与RMI 下篇
在概述了数据描述格式的基本知识、IO通信模型的基本知识后。我们终于可以进入这个系列博文的重点:系统间通信管理。在这个章节我将通过对RMI的详细介绍,引出一个重要的系统间通信的管理规范RPC,并且继续讨论一些RPC的实现;再通过分析PRC的技术特点,引出另一种系统间通信的管理规范ESB,并介绍ESB的一些具体实现。最后我们介绍SOA:面向服务的软件架构。原创 2015-10-24 11:28:14 · 9028 阅读 · 6 评论 -
架构设计:系统间通信(8)——通信管理与RMI 上篇
在概述了数据描述格式的基本知识、IO通信模型的基本知识后。我们终于可以进入这个系列博文的重点:系统间通信管理。在这个章节我将通过对RMI的详细介绍,引出一个重要的系统间通信的管理规范RPC,并且继续讨论一些RPC的实现;再通过分析PRC的技术特点,引出另一种系统间通信的管理规范ESB,并介绍ESB的一些具体实现。最后我们介绍SOA:面向服务的软件架构。原创 2015-10-22 20:52:19 · 14860 阅读 · 19 评论 -
架构设计:系统间通信(7)——IO通信模型和Netty 下篇
下面的两篇文章我们将会在您已经理解原生的JAVA NIO框架的基础上,向您介绍Netty的原理和使用。讲解Netty并不是我们这个系列“系统间通信”的内容重点。目的是通过讲解IO通信模型、JAVA对各种通信模型的支持、上层的Netty/MINA封装,可以让大家深刻理解“系统间通信”中一个重要要素——信息如何传递。原创 2015-10-12 10:42:45 · 11962 阅读 · 8 评论 -
架构设计:系统间通信(6)——IO通信模型和Netty 上篇
下面的两篇文章我们将会在您已经理解原生的JAVA NIO框架的基础上,向您介绍Netty的原理和使用。讲解Netty并不是我们这个系列“系统间通信”的内容重点。目的是通过讲解IO通信模型、JAVA对各种通信模型的支持、上层的Netty/MINA封装,可以让大家深刻理解“系统间通信”中一个重要要素——信息如何传递。原创 2015-10-05 22:32:54 · 23088 阅读 · 13 评论