自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JAVA入门中

继续前行

  • 博客(213)
  • 资源 (8)
  • 收藏
  • 关注

原创 架构设计:系统间通信(25)——ActiveMQ集群方案(上)

通过之前的文章,我们讨论了ActiveMQ的基本使用,包括单个ActiveMQ服务节点的性能特征,关键调整参数;我们还介绍了单个ActiveMQ节点上三种不同的持久化存储方案,并讨论了这三种不同的持久化存储方案的配置和性能特点。但是这还远远不够,因为在生产环境中为了保证让我们设计的消息服务方案能够持续工作,我们还需要为消息中间件服务搭建集群环境,从而在保证消息中间件服务可靠性和处理性能。

2016-04-17 17:22:59 31253 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 14354 11

原创 架构设计:系统间通信(22)——提高ActiveMQ工作性能(上)

根据这个系列文章所陈述的中心思想,系统的性能层次包括:代码级性能、规则性能、存储性能、网络性能,以及多节点协同方法(集群方案),所以我们优化ActiveMQ的中心思路也是这样的:首先优化ActiveMQ单个节点的性能,然后在配置ActiveMQ的集群。下面我们就按照这个思路,一步步介绍和ActiveMQ性能有关的那些事。

2016-03-27 13:50:39 22561 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 14023 16

原创 架构设计:系统间通信(20)——MQ:消息协议(下)

从本文开始,我们介绍另一类型的系统间通讯及输:MQ消息队列。首先我们将讨论几种常用消息队列协议的基本原理和工作方式,包括MQTT、XMPP、Stomp、AMQP、OpenWire等。然后在这个基础上介绍两款MQ产品:ActiveMQ和RabbitMQ,它们是现在业务系统中应用广泛的消息队列软件。包括他们的安装、运行、支持协议、集群化和调用方式。

2016-03-14 16:21:05 16072 15

原创 架构设计:系统间通信(19)——MQ:消息协议(上)

从本文开始,我们介绍另一类型的系统间通讯及输:MQ消息队列。首先我们将讨论几种常用消息队列协议的基本原理和工作方式,包括MQTT、XMPP、Stomp、AMQP、OpenWire等。然后在这个基础上介绍两款MQ产品:ActiveMQ和RabbitMQ,它们是现在业务系统中应用广泛的消息队列软件。包括他们的安装、运行、支持协议、集群化和调用方式。

2016-03-07 15:39:34 31593 13

原创 线程基础:JDK1.5+(11)——原子操作包

在JDK1.5+的版本中,Doug Lea和他的团队还为我们提供了一套用于保证线程安全的原子操作。我们都知道在多线程环境下,对于更新对象中的某个属性、更新基本类型数据、更新数组(集合)都可能产生脏数据问题。为了避免多线程环境下的脏数据问题,JDK1.5的版本中为我们提供了java.util.concurrent.atomic原子操作包。

2016-02-28 11:31:32 6087 5

原创 线程基础:JDK1.5+(10)——线程新特性(下)

JDK1.5中一个重要特性就是util.concurrent包和其子包(当让JDK1.5中的特性还包括了很多,例如泛型、解包/封包等,但这些不属于我们这个专题讨论的范围)。在这个系列的专题中,我们已经对util.concurrent包中的一些主要功能做了介绍,例如:BlockingQueue、ThreadPoolExecutor、Executors等。这篇文章中,我们对这个包中其他中要的线程特性进行介绍。

2016-02-17 16:31:22 5042 7

原创 线程基础:JDK1.5+(9)——线程新特性(中)

JDK1.5中一个重要特性就是util.concurrent包和其子包(当让JDK1.5中的特性还包括了很多,例如泛型、解包/封包等,但这些不属于我们这个专题讨论的范围)。在这个系列的专题中,我们已经对util.concurrent包中的一些主要功能做了介绍,例如:BlockingQueue、ThreadPoolExecutor、Executors等。这篇文章中,我们对这个包中其他中要的线程特性进行介绍

2016-02-14 22:05:52 6541 21

原创 线程基础:线程池(6)——基本使用(中)

从本文开始,我将用两篇文章的篇幅,为各位读者呈现JAVA中原生的线程池技术。第一篇文章,我将讲解JAVA原生线程池的基本使用,并由此延伸出JAVA中和线程管理相关的类结构体系,然后我们详细描述JAVA原生线程池的结构和工作方式;第二篇文章,我们将继续深入,讲解JAVA原生线程池的高级特性,包括Thread工厂、队列、拒绝原则、钩子和相关工具类。

2016-02-13 18:44:44 8701 19

原创 线程基础:JDK1.5+(8)——线程新特性(上)

JDK1.5中一个重要特性就是util.concurrent包和其子包(当让JDK1.5中的特性还包括了很多,例如泛型、解包/封包等,但这些不属于我们这个专题讨论的范围)。在这个系列的专题中,我们已经对util.concurrent包中的一些主要功能做了介绍,例如:BlockingQueue、ThreadPoolExecutor、Executors等。这篇文章中,我们对这个包中其他中要的线程特性进行介绍。

2016-02-13 18:34:58 8534 14

原创 线程基础:线程池(7)——基本使用(下)

从本文开始,我将用两篇文章的篇幅,为各位读者呈现JAVA中原生的线程池技术。第一篇文章,我将讲解JAVA原生线程池的基本使用,并由此延伸出JAVA中和线程管理相关的类结构体系,然后我们详细描述JAVA原生线程池的结构和工作方式;第二篇文章,我们将继续深入,讲解JAVA原生线程池的高级特性,包括Thread工厂、队列、拒绝原则、钩子和相关工具类。

2016-01-29 17:29:00 8310 10

原创 线程基础:线程池(5)——基本使用(上)

从本文开始,我将用两篇文章的篇幅,为各位读者呈现JAVA中原生的线程池技术。第一篇文章,我将讲解JAVA原生线程池的基本使用,并由此延伸出JAVA中和线程管理相关的类结构体系,然后我们详细描述JAVA原生线程池的结构和工作方式;第二篇文章,我们将继续深入,讲解JAVA原生线程池的高级特性,包括Thread工厂、队列、拒绝原则、钩子和相关工具类。

2016-01-23 10:02:49 17672 19

原创 线程基础:线程(4)——JAVA中的基本线程操作(下)

从这篇文章开始。我们介绍线程的工作原理。

2016-01-14 12:47:12 8563 17

原创 线程基础:线程(3)——JAVA中的基本线程操作(中)

从这篇文章开始。我们介绍线程的工作原理。

2016-01-11 20:51:19 12256 32

原创 线程基础:线程(2)——JAVA中的基本线程操作(上)

从这篇文章开始。我们介绍线程的工作原理。

2016-01-05 17:35:10 10759 13

原创 架构设计:系统间通信(18)——服务治理与Dubbo 下篇(继续分析)

上篇文章中(《架构设计:系统间通信(15)——服务治理与Dubbo 上篇》),我们以示例的方式讲解了阿里DUBBO服务治理框架基本使用。从这节开始我们将对DUBBO的主要模块的设计原理进行讲解,从而帮助读者理解DUBBO是如何工作的。(由于这个章节的内容比较多,包括了知识准备、DUBBO框架概述、DUBBO各模块分析,所以我将把内容切割成多篇文章)

2015-12-30 22:41:03 11748 13

原创 线程基础:线程(1)——操作系统和线程原理

本人不才,应读者要求新开专栏,与各位读者分享自己对JAVA线程技术的理解和使用经验。这个专栏将分成两个部分:线程基础知识和锁知识。专栏的难度应该是我所开专栏中难度最低的一个,着重于线程基础知识的讲解,更适合JAVA初学者阅读,目的是希望能够帮助大家提高codeing水平和程序质量。如果您是经验老道的高手也欢迎和本人讨论相关问题,对本人文章的论点进行勘误,您的支持是我写作的关键动力。

2015-12-21 17:41:18 17848 8

原创 架构设计:系统间通信(17)——服务治理与Dubbo 中篇(分析)

上篇文章中(《架构设计:系统间通信(15)——服务治理与Dubbo 上篇》),我们以示例的方式讲解了阿里DUBBO服务治理框架基本使用。从这节开始我们将对DUBBO的主要模块的设计原理进行讲解,从而帮助读者理解DUBBO是如何工作的。(由于这个章节的内容比较多,包括了知识准备、DUBBO框架概述、DUBBO各模块分析,所以我将把内容切割成多篇文章)

2015-12-19 10:23:00 30675 6

原创 架构设计:负载均衡层设计方案(4)——LVS原理

之前我们花了两篇文章的篇幅,详细讲解了Nginx的原理、安装和特性组件。后面有时间我们还会重新回到Nginx的讲解上。从本篇文章开始,我们将开始介绍LVS技术,包括基本概念、简单使用和进阶使用。本篇文章先讨论一下LVS的工作原理。

2015-12-19 08:59:22 19934 21

原创 架构设计:系统间通信(16)——服务治理与Dubbo 中篇(预热)

上篇文章中(《架构设计:系统间通信(15)——服务治理与Dubbo 上篇》),我们以示例的方式讲解了阿里DUBBO服务治理框架基本使用。从这节开始我们将对DUBBO的主要模块的设计原理进行讲解,从而帮助读者理解DUBBO是如何工作的。(由于这个章节的内容比较多,包括了知识准备、DUBBO框架概述、DUBBO各模块分析,所以我将把内容切割成多篇文章)

2015-12-09 11:03:29 12717 5

原创 架构设计:系统间通信(15)——服务治理与Dubbo 上篇

在之前的文章中,我们基于服务治理的基本原理,自己实现了一个基于zookeeper + thrift的服务治理框架。但实际上前文中我们自行设计的服务治理框架除了演示基本原理外,并没有多大的实际使用价值,因为还有很多硬性需求是没有实现的。从这篇文章开始,我们详细介绍一款能够应用到生产环境的服务治理框架:由阿里巴巴开发团开源贡献的DUBBO服务治理框架。希望能够帮助各位读者优化自己的生产环境架构方案。

2015-12-01 17:29:29 24254 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 8901

原创 架构设计:系统间通信(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 16084 11

原创 架构设计:系统间通信(10)——RPC的基本概念

经过了详细的信息格式、网络IO模型的讲解,并且通过JAVA RMI的讲解进行了预热。从这篇文章开始我们将进入这个系列博文的另一个重点知识体系的讲解:RPC。在后续的几篇文章中,我们首先讲解RPC的基本概念,一个具体的RPC实现会有哪些基本要素构成,然后我们详细介绍一款典型的RPC框架:Apache Thrift。接下来我们聊聊服务治理和DUBBO服务框架。最后总结一下如何在实际工作中选择合适的RPC框架。

2015-10-30 17:21:21 25509 11

原创 架构设计:系统间通信(9)——通信管理与RMI 下篇

在概述了数据描述格式的基本知识、IO通信模型的基本知识后。我们终于可以进入这个系列博文的重点:系统间通信管理。在这个章节我将通过对RMI的详细介绍,引出一个重要的系统间通信的管理规范RPC,并且继续讨论一些RPC的实现;再通过分析PRC的技术特点,引出另一种系统间通信的管理规范ESB,并介绍ESB的一些具体实现。最后我们介绍SOA:面向服务的软件架构。

2015-10-24 11:28:14 9026 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 11959 8

原创 架构设计:系统间通信(6)——IO通信模型和Netty 上篇

下面的两篇文章我们将会在您已经理解原生的JAVA NIO框架的基础上,向您介绍Netty的原理和使用。讲解Netty并不是我们这个系列“系统间通信”的内容重点。目的是通过讲解IO通信模型、JAVA对各种通信模型的支持、上层的Netty/MINA封装,可以让大家深刻理解“系统间通信”中一个重要要素——信息如何传递。

2015-10-05 22:32:54 23087 13

原创 架构设计:系统间通信(5)——IO通信模型和JAVA实践 下篇

系统间通信本来是一个很大的概念,我们首先重通信模型开始讲解。在理解了四种通信模型的工作特点和区别后,对于我们后文介绍搭建在其上的各种通信框架,集成思想都是有益的。 目前常用的IO通信模型包括四种(这里说的都是网络IO):阻塞式同步IO、非阻塞式同步IO、多路复用IO、和真正的异步IO。这些IO模式都是要靠操作系统进行支持,应用程序只是提供相应的实现,对操作系统进行调用。

2015-09-30 09:35:24 14308 26

原创 架构设计:系统间通信(4)——IO通信模型和JAVA实践 中篇

系统间通信本来是一个很大的概念,我们首先重通信模型开始讲解。在理解了四种通信模型的工作特点和区别后,对于我们后文介绍搭建在其上的各种通信框架,集成思想都是有益的。目前常用的IO通信模型包括四种(这里说的都是网络IO):阻塞式同步IO、非阻塞式同步IO、多路复用IO、和真正的异步IO。这些IO模式都是要靠操作系统进行支持,应用程序只是提供相应的实现,对操作系统进行调用。

2015-09-24 11:25:17 21625 42

原创 架构设计:系统间通信(3)——IO通信模型和JAVA实践 上篇

系统间通信本来是一个很大的概念,我们首先重通信模型开始讲解。在理解了四种通信模型的工作特点和区别后,对于我们后文介绍搭建在其上的各种通信框架,集成思想都是有益的。目前常用的IO通信模型包括四种(这里说的都是网络IO):阻塞式同步IO、非阻塞式同步IO、多路复用IO、和真正的异步IO。这些IO模式都是要靠操作系统进行支持,应用程序只是提供相应的实现,对操作系统进行调用。

2015-09-19 08:53:47 24502 30

原创 架构设计:系统间通信(1)——概述从“聊天”开始上篇

这个文章系列专门整理总结了目前系统间通信的主要原理、手段和实现。我们将讲解典型的信息格式、讲解JAVA RMI调用并延伸出来重点讲解RPC调用和使用案例;最后我们还会讲到SOA架构的实现,包括ESB实现和服务注册/治理的实现,同样包括原理、实现和使用案例。系统间通信是架构师需要掌握的又一个关键技术领域。

2015-09-19 08:47:10 47681 79

原创 架构设计:系统间通信(2)——概述从“聊天”开始下篇

这个文章系列专门整理总结了目前系统间通信的主要原理、手段和实现。我们将讲解典型的信息格式、讲解JAVA RMI调用并延伸出来重点讲解RPC调用和使用案例;最后我们还会讲到SOA架构的实现,包括ESB实现和服务注册/治理的实现,同样包括原理、实现和使用案例。系统间通信是架构师需要掌握的又一个关键技术领域。

2015-09-15 17:19:39 17031 25

原创 架构设计:负载均衡层设计方案(9)——负载均衡层总结下篇

很明显通过前面的八篇文章的介绍,并不能覆盖负载均衡层的所有技术,但是可以作为一个引子,告诉各位读者一个学习和使用负载均衡技术的思路。虽然后面我们将转向“业务层”和“业务通信”层的介绍,但是对负载均衡层的介绍也不会停止。在后续的时间我们将穿插进行负载均衡层的新文章的发布,包括Nginx技术的再介绍、HaProxy、LVS新的使用场景等等。接上篇:架构设计:负载均衡层设计方案(8)——负载均衡层总结上篇

2015-09-02 16:45:40 10806 19

原创 架构设计:负载均衡层设计方案(7)——LVS + Keepalived + Nginx安装及配置

上篇文章《架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层》我们讲解了Nginx的故障切换,并且承诺各位读者会尽快讲解 LVS + Keepalived + Nginx的安装和配置。在中间由于工作的原因,我又插写了三篇关于zookeeper的原理使用的文章。今天这边文章我们回归主题,为各位读者讲解LVS + Keepalived + Nginx的安装及配置。

2015-08-30 09:36:07 16819 11

原创 架构设计:负载均衡层设计方案(1)——负载场景和解决方式

在上一篇《标准Web系统的架构分层》文章中,我们概述了WEB系统架构中的分层架设体系,介绍了包括负载均衡层、业务层、业务通信层、数据存储层的作用和存在意义。从本片文章开始,我们将首先详细讲解负载均衡层的架构原理和选型场景。

2015-08-30 09:33:48 41550 39

基于业务抽象设计思想完成的Flink流式处理示例

该实例主要配合 《软件设计不是CRUD(21):在流式数据处理系统中进行业务抽象落地——需求分析》 《软件设计不是CRUD(22):在流式数据处理系统中进行业务抽象落地——设计思考》 《软件设计不是CRUD(23):在流式数据处理系统中进行业务抽象落地——详细编码》 这三篇文章进行代码落地的详细讲解。 其中的示例主要内容是多种测速雷达的数据收集和数据清洗、数据落库工作。 注意,其中的kafka、flink集群都需要读者自行进行安装,然后可用本源代码进行打包运行。

2024-06-18

使用业务抽象思想设计的具有低耦合性的组织机构模块(示例)

对应业务抽象专栏低6、7、8三篇文章 其中有两个目录 simple-org:存放示例组织机构模块的完整代码 simple-for-org-boot:存放应用程序启动脚手架(使用spring-boot)

2023-12-11

命令模式实现事务补偿2

这个是最新的版本,之前那个上传的资源不完善,请不要下载。这是一个使用命令模式自行实现的事务补偿机制,用于跨平台多原子服务协调调用异常时的逆向操作。

2017-02-08

命令模式实现事务补偿

这是一个使用命令模式自行实现的事务补偿机制,用于跨平台多原子服务协调调用异常时的逆向操作。

2017-02-03

图片服务系统工程代码

这个图片服务系统工程代码配合我的博文http://blog.csdn.net/yinwenjie/article/details/54016015进行下载阅读。

2017-01-18

自己设计ESB组件的主要代码

这个资源是我的专题“系统间通信”中第41篇到44篇文章的主要代码。其中包含了ESB-Client的主要代码和ESB-Broker的主要代码。详细的资源说明可以查看我的博客:http://blog.csdn.net/yinwenjie/article/details/52141093

2016-08-11

OASIS Advanced Message Queueing Protocol (AMQP) Version 1.0

ISO/IEC组织定义的AMQP协议的标准规范。目前版本号为version 1.0

2016-03-14

zookeeper + thrift实现的RPC 服务治理框架演示

服务治理框架,一般存在与RPC的上一层,用来在大量RPC服务至上,协调客户端和服务器的调用工作。这个示例工程和我的博客《架构设计:系统间通信(13)——RPC实例Apache Thrift 下篇》(http://blog.csdn.net/yinwenjie/article/details/49869535)相对应。相关的设计和代码说明,请参见我的博客。另外,工程已经测试过了,可以直接下载导入eclipse运行,您需要maven的支持。

2015-11-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除