
架构设计
文章平均质量分 72
吉庆
以温柔的眼睛看世界,世界一派花团锦簇.
展开
-
Dubbo之旅--内部逻辑
在没有开始用代码来解释之前,用图最能够表达一些关系,关于Dubbo的内部逻辑调用关系,借用官方的图示来说明一下,如下图 通过上图中的一个个方框我们称之为节点,总共有5个节点,这五个节点可以看成五个角色,每个角色都有一定的功能.每个角色的意思如下:Provider: 暴露服务的服务提供方。在实际项目中一般称这个角色为提供者.它主要是向注册中心原创 2015-01-29 23:24:51 · 3563 阅读 · 4 评论 -
Dubbo之旅--集群容错和负载均衡
当我们的系统中用到Dubbo的集群环境,因为各种原因在集群调用失败时,Dubbo提供了多种容错方案,缺省为failover重试。 Dubbo的集群容错在这里想说说他是因为我们实际的项目中出现了此类的问题,因为依赖的第三方项目出现异常,导致dubbo调用超时,此时使用的是默认的集群容错方式,而配置的reties='3',这样前段系统连续掉用了三次服务,结果可想而知.原创 2015-06-30 22:53:50 · 31386 阅读 · 9 评论 -
我和敏捷开发的故事--结对搭建开发框架
在整个团队经过三面墙的快速对整个项目的三个方面进行整理了解之后,接下来便开始了开发的流程. 因为项目是新开始的,没有一个现有的开发框架或平台,所以初始阶段搭建框架的工作显得十分迫切.如果没有一个基本的开发框架的话,其他的开发人员也是没有进行相关的开发. 因为基本的项目架构的内容已经设计完成,接下来需要根据架构来搭建相关的开发框架,所设计到的技术都原创 2015-08-30 14:14:07 · 3403 阅读 · 1 评论 -
跑批利器--批处理应用程序
目前笔者正在进行直销银行互联网核心的设计和研发,在银行相关系统中有一块内容比较关键,那就是跑批.因此接触到了SpringBatch的相关内容,作为学习和记录,有必要将SpringBatch的相关技术点和实际项目中遇到的问题记录下来,同时也跟各位来进行分享和学习. 首先先了解一下什么是批处理应用程序.当然,根据名字我们基本上能够知道它是要干什么的了,就是对程序进原创 2015-10-31 17:12:14 · 8853 阅读 · 1 评论 -
跑批利器--SpringBatch
在上篇文章中我们知道批处理应用程序的要求,当然,具体实现的方式有很多,小到脚本和自己写个批量,大到专业的批量处理系统.那么如何选择一个合适的一个呢?SpringBatch可以作为众多选择中一个不错的选择. 根据相关资料介绍,我们可以对SpringBatch进行一个整体了解. Spring Batch是一个轻量级的、完善的批处理框架,旨在帮助企业建立健原创 2015-10-31 17:16:29 · 6839 阅读 · 0 评论 -
跑批利器--示例
接下来我们将通过简单的一个在线商店的应用示例来展示如何使用SpringBatch.通过这个示例我们可以进一步去理解SpringBatch批量处理程序它是如何实现高效的读写数据,何时去使用内部组件,如何实现你自己的组件,以及如何配置一个批量任务在Spring容器中. 这里我们简单描述一下业务需求.一个公司A想要扩展它的业务.主业是通过网络来销售货物.为了扩展他们选择建立一个专门的在原创 2015-12-29 21:23:19 · 4998 阅读 · 0 评论 -
跑批利器--读取文件
在上篇文章中已经对示例的基本业务和流程进行了解,同时也知道了SpringBatch的三个接口ItemReader,ItemProcessor,ItemWriter.接下来我们主要是通过示例来具体处理一个文本文件,将里面的数据和内容通过SpringBatch的加工处理来存到新的数据库中. SpringBatch提供专门的类去读取文本文件:FlatFileItemReader.要用这个类原创 2015-12-29 21:25:08 · 5710 阅读 · 3 评论 -
跑批利器--SpringBatch框架
Spring Batch的框架包括启动批处理作业的组件和存储Job执行产生的元数据。如果你作为一个批处理应用程序的开发人员,你暂时没有必要跟这些组件打交道,因为它们主要为我们提供组件支持的角色,但是您需要配置这个基础框架在你的批处理应用程序中。 启动Jobs并存储Job元数据. Spring Batch框架本身还是比较复杂的,但是我们开始接触它的时候主要是原创 2015-11-30 21:56:37 · 6465 阅读 · 0 评论 -
跑批利器--往数据库里配置SpringBatch
JobLauncher接口接受两个参数:Job和JobParameters.那么谁来调用这个Job Launcher呢?当然,我们首先可以通过java程序来通过JobLauncher来启动,也可以通过定时任务例如Quartz scheduler来启动. JobRepository JobRepository保持着所有Job执行的相关元数据,JobR原创 2015-11-30 22:01:20 · 6543 阅读 · 0 评论 -
Spring Batch--jobs
在之前的文章我们已经对Spring Batch有了一个初步的了解,跑批利器框架SpringBatch的大体介绍已经结束,接下来我们将深入Spring Batch的一些内部高级配置主题,能够让我们更高效的去利用这个跑批利器. 引用 Spring Batch XML命名空间 http://www.springframework.org/schema/beans"原创 2016-01-29 13:15:46 · 4109 阅读 · 0 评论 -
Dubbo之旅--结果缓存
在上篇文章中我们队Dubbo的扩展进行了一些基本了解.这些扩展能够很好的帮助我们在实际的项目中发挥作用,接下来对于dubbo的一些高级特征,针对特殊情况而进行的处理进行进一步的介绍,这里我们要说的是结果缓存. 为什么要用到结果缓存,主要是用于加速热门数据的访问速度,Dubbo提供声明式缓存,以减少用户加缓存的工作量。 下面我们将原创 2015-06-29 22:44:23 · 11346 阅读 · 4 评论 -
Dubbo之旅--扩展协议
在实际工作中运用dubbo的时候,以上系列的文章基本上能够满足项目的基本需求,当然,对于一些特殊的需求Dubbo可以对其进行扩展,Dubbo拥有者丰富的扩展内容,这次主要将会带领大家去感受一下Dubbo的协议扩展和注册中心扩展. 首先要说的是协议扩展. 为什么要扩展协议呢?什么样的需求需要我们去扩展它? (1) 不同服原创 2015-05-30 23:06:10 · 9269 阅读 · 2 评论 -
Dubbo之旅--注册中心
在介绍Dubbo的内部逻辑的时候提到很多次注册中心的概念.实现注册中心的有很多,主要是以下四个注册中心分别是: Multicast注册中心Zookeeper注册中心Redis注册中心Simple注册中心 这里将对注册中心的一个实现Zookeeper跟大家分享,因为Zookeeper是应用比较多,也是我们项目中实际用到的注册中心.原创 2015-01-30 22:12:07 · 3843 阅读 · 2 评论 -
Dubbo之旅--需求
在上篇文章中,我们主要了解了Dubbo的架构路线,并对它有了一个比较简单点的印象和了解,而关于Dubbo基本需求是接下来要介绍的内容. 在大规模服务化之前,应用可能只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用,通过F5等硬件进行负载均衡。 关于F5硬件可以参考F5 Networks原创 2014-12-30 23:53:01 · 3332 阅读 · 7 评论 -
Dubbo之旅--架构路线
从自己开始接触Dubbo到现在也有段时间了,在这段时间里,随着项目的不断进行,在项目中也遇到了各种各样的问题,而这些问题和相应的解决方案逐渐加深的对Dubbo有了认识和了解. 先说说什么是Dubbo? 官方的说法是:Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团原创 2014-12-30 22:34:38 · 4734 阅读 · 7 评论 -
Dubbo之旅--注册中心(2)
本篇文章的主要目的是的介绍Zookeeper在window环境下的安装。在Window的环境下安装还是比较简单的。 首先下载一个zookeeper,我下载的版本是zookeeper-3.3.5,解压安装包,解压后的zookeeper安装包放置的路径如下图 2.:进入D:\Environment\zookeeper-3.3.5\conf,将zoo_sample.cf原创 2015-02-28 00:32:34 · 4228 阅读 · 3 评论 -
Dubbo之旅--管理控制台
到现在为止我们的Dubbo之旅让我们对Dubbo跟注册中心有了初步的认识,接下来要分享的是Dubbo的管理控制台,在实际的项目中非常的有用,尤其是在dubbo服务提供数量逐渐加大的情况下,通过Dubbo管理控制台能够很好的被我们所用,从而让我们更好的使用Dubbo提供的服务. 首先需要准备Dubbo-Admin管理控制台程序,本人是通过项目的形式将控制台导入Eclipse中原创 2015-02-28 23:26:08 · 13462 阅读 · 8 评论 -
Dubbo之旅--Provider示例
在本篇文章中我们将通过集体的示例来对Dubbo的提供和消费进行代码层面的认识.这里所介绍的是基本的提供者和消费者通过Spring容器来进行相关的提供和消费的服务.首先看整个示例的项目结构如下: 我们通过Maven的方式来进行示例,其中dubbo-demo-api为提供者所定义的接口,项目结构如下: 此项目里的内容很简单,为服务的一个接口DemoSer原创 2015-03-31 00:14:13 · 23770 阅读 · 4 评论 -
Dubbo之旅--Consumer示例
我们已经对提供者示例进行了详细的阐述,接下来的消费者相对而言比较简单. 1配置相关pom.xml信息,跟提供者类似,需要相关环境的java包应用. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd原创 2015-03-31 00:17:33 · 17105 阅读 · 6 评论 -
Dubbo之旅--启动解析
通过之前系列文章我们已经对Dubbo已经有了一个整体的印象,接下来我们从其他角度来进一步了解它.Dubbo通过Spring的加载而启动,本文分析了通过注解方式加载的过程. 1.Schema扩展 通过注解加载dubbo,需要在spring的配置文件中添加: dubbo:annotation是dubbo基于spring的schema扩展。d原创 2015-04-29 21:17:58 · 12336 阅读 · 3 评论 -
Dubbo之旅--问题汇总
在工作和学习的过程中,具体运用Dubbo的时候遇到了很多的问题,这些问题一方面让自己进一步了解所谓的dubbo,另一方面通过对它们的总结和分析能够在工作中加倍的提高效率,接下来将会对遇到的和别人总结的一些常见的问题进行汇总. 1.增加提供服务版本号和消费服务版本号. 这个具体来说不算是一个问题,而是一种问题的解决方案,在我们的实际工作中会面临各种环境资源短缺的原创 2015-04-30 21:20:05 · 25897 阅读 · 1 评论 -
Dubbo之旅--扩展注册中心
在上篇文章中我们介绍了关于协议的扩展,并了解扩展它所需要的需求.本篇主要是对注册中心的扩展进行着重的探索. 同样的问题,为什么我们需要去扩展注册中心的?主要有以下三个需求. (1) 多注册中心注册 需求:xx银行有些服务来不及在上海部署,只在北京部署,而上海的其它应用需要引用此服务,就可以将服务同时注册到两个注册中心。 consumer.xml原创 2015-05-30 23:08:07 · 10604 阅读 · 3 评论 -
Spring Batch--steps
在上篇文章中我们对job的配置进行了解,接下来的是组成job的关键元素:steps.在这里你可以再翻到上篇文章的实体图中去回顾一下他们的关系. 一个step代表着一个job的运行顺序和具体操作,例如我们在进行一个导入产品列表的job中,应该先压缩数据文件,然后再解压数据文件,随后再去读取文件.这个过程就需要到Steps来进行控制.如下图:原创 2016-01-29 13:18:33 · 2745 阅读 · 0 评论