自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (10)
  • 问答 (1)
  • 收藏
  • 关注

转载 系统架构系列(二):系统架构的目的、难点和方法

引言在本系列的第一篇文章中已经给出系统架构的公式定义:系统架构 = 要素 + 连接 + 解决特定的问题,本篇文章重点讨论应对系统架构的方法。如今,系统架构在业内还没有定型的固定方法,一般会讲:需求分析、系统分析与设计、UML、领域建模、设计模式、软件工程等,笔者不打算这样讲,这样下来会有厚厚一本书,希望从简洁、可落地实践的角度去阐述系统架构,后面的文章再给出每种架构具体可实践操作的方法。一、系统架构的本质目的我们已经知道系统架构是什么,有必要讲一下系统架构的目的,即为什么要进行系统架构。对于

2015-09-28 20:59:30 4390

原创 tomcat9.0源码分析之UpgradeProcessorInternal

UpgradeProcessorInternal的继承关系UpgradeProcessorBase#isUpgrade()方法总是返回true @Override public final boolean isUpgrade() { return true; }UpgradeProcessorInternal处理NioSocketWrapper...

2015-09-28 20:55:14 2583 1

转载 Spark任务提交后,一直处于Accept状态,无法正常运行

问题背景与现象Spark任务提交后,任务一直处于Accept状态,无法正常运行。Driver端提示executor memory超限。原因分析FusionInsight集群中,Spark任务运行在Yarn的资源管理框架下,由Yarn来负责资源的调度管理,Yarn在接收Spark任务后,任务会先处于Accept状态,待为该任务分配到资源之后,人后然后才会进入Running状态执行如果Yarn上没有足够资源,则任务将一直处于Accept状态。可通过如下方式查看Yarn上资源。查看当前yarn是否

2015-09-28 19:34:07 9162

转载 四色建模法进行领域建模(风控系统为例)-通过时标、参与方、角色、描述进行领域模型抽象

数据架构重要的输出是数据 - 实体关系图,简称 ER 图。ER 图中包含了实体(数据对象)、关系和属性 3 种基本成分。ER 图可以用来建立数据模型。如何准确的建立产品的数据模型,需要分解出业务需要什么样的数据。数据域的分解过程是站在业务架构的基础上,对业务域进行模型分析的过程。说起业务建模,大家很快会想到领域模型这个概念。这里的思路是通过领域建模来逐步提取系统的数据架构图。说到领域模型,这里采用四色原型法进行业务模型的抽象。在进行四色模型分析前,我们先了解下四色模型的一些基本概念。四色模型,顾名思

2015-09-28 19:12:16 4981 1

转载 AutoLoadCache – 再谈缓存的穿透、数据一致性和最终一致性问题

缓存是用于解决高并发场景下系统的性能及稳定性问题的银弹。本文主要是讨论我们经常使用的分布式缓存 Redis 在开发过程中的相关思考。1. 如何将业务逻辑与缓存之间进行解耦?大部分情况,大家都是把缓存操作和业务逻辑之间的代码交织在一起的,比如(代码一):从上面的代码可以看出以下几个问题:缓存操作非常繁琐,产生非常多的重复代码; 缓存操作与业务逻辑耦合度非常高,不利于后期的维护; 当业务数据为 null 时,无法确定是否已经缓存,会造成缓存无法命中; 开发阶段,为了排查问题,经常需

2015-09-24 00:34:53 11989

转载 系统架构系列(一):系统架构概念、分类和特性

一、推导系统架构的公式1.1 系统架构概念拆分在学习一门技术的时候,一定要知道是什么、为什么、怎么做。系统架构这个概念本身就非常大,而且有各种各样的定义,初学者会遇到这样的困境:到底什么是系统架构?不管什么样的定义,笔者相信知识只有内化成为自己的才最重要,否则我们只是不断地输入而没有消化。先不看之前的定义是什么,从 " 系统架构 " 这四个字开始推导其公式。" 系统架构 " 可以拆分成两部分:“系统 " 和 " 架构”。“系统 " 在百科中的定义是" 系统就是若干相互联系、相互作用、相互依赖的要

2015-09-23 11:21:12 2619

转载 领域驱动设计(以美团的抽奖系统为例)——领域划分、限界上下文划分和上下文映射

至少30年以前,一些软件设计人员就已经意识到领域建模和设计的重要性,并形成一种思潮,Eric Evans将其定义为领域驱动设计(Domain-Driven Design,简称DDD)。在互联网开发“小步快跑,迭代试错”的大环境下,DDD似乎是一种比较“古老而缓慢”的思想。然而,由于互联网公司也逐渐深入实体经济,业务日益复杂,我们在开发中也越来越多地遇到传统行业软件开发中所面临的问题。本文就先来讲一下这些问题,然后再尝试在实践中用DDD的思想来解决这些问题。过度耦合业务初期,我们的功能大都非常简单,普

2015-09-22 00:44:15 1507

转载 1亿数据帖子中心的分库分表架构设计

帖子中心,是互联网业务中,一类典型的“1对多”业务,即:一个用户能发布多个帖子,一个帖子只有一个发布者。随着数据量的逐步增大,并发量的逐步增大,帖子中心这种“1对多”业务,架构应该如何设计,有哪些因素需要考虑,是本文将要系统性讨论的问题。什么是x对x?所谓的“1对1”,“1对多”,“多对多”,来自数据库设计中的“实体-关系”ER模型,用来描述实体之间的映射关系。什么是“1对1”业务?用户中心,一个用户只有一个登录名,一个登录名只对应一个用户,这是典型的1对1业务。什么是“1对多”业务

2015-09-22 00:31:14 524

转载 业务架构与产品架构设计实践

系统架构的分解,先从业务域进行分解。狭义的业务域具有商业的概念,从这个概念来看,有的系统没有业务域,当如果宽泛一点来看,业务域就是问题域,问题域总是存在的。业务域的分解,首先是从系统需求入手,在需求初期可能你就得到的只是一句比较模糊的需求描述,这些需求可能来自于老板、运营或者用户(比如下图的场景)。直接把这句话作为核心产品功能是不恰当的,合理的做法是先把这个产品的所有问题域列清楚。列出问题域问题域,是指自己的产品能够解决的所有问题的空间集合。从核心需求出发,将所有当前需要解决、未来可能需要解

2015-09-22 00:21:47 2328

转载 1亿数据订单中心的分库分表架构设计

订单中心,是互联网业务中,一个典型的“多key”业务,即:用户ID,商家ID,订单ID等多个key上都有业务查询需求。随着数据量的逐步增大,并发量的逐步增大,订单中心这种“多key”业务,架构应该如何设计,有哪些因素需要考虑,是本文将要系统性讨论的问题。什么是“多key”类业务?所谓的“多key”,是指一条元数据中,有多个属性上存在前台在线查询需求。订单中心是什么业务,有什么典型业务需求?订单中心是一个非常常见的“多key”业务,主要提供订单的查询与修改的服务,其核心元数据为:Or.

2015-09-21 23:47:43 559

转载 领域建模分析方法

领域模型之间的联系,我们要怎么理解呢?以上面这位某人A为例,本次我们所要提取的特征,是父亲。父亲与母亲,丈夫与配偶,关系是1对1的。也就是一夫一妻制。父亲与孩子,关系是1对N的,一位父亲,可以有一个孩子,也可以有多个孩子。母亲与孩子的关系,也是1对N的。所以这一家三口之间的联系,可以简单用这张图来表示:当然领域模型的图形化还有很多种方式,例如UML类图、状态图、时序图等,这边就不一一介绍。1.2 为什么要学习领域模型“基础设施决定上层建筑” —— 马克思。老祖宗教导我..

2015-09-21 22:53:51 1745

转载 交易系统的领域驱动设计

背景交易系统作为电商平台架构的核心系统之一,它为解决什么问题呢?我认为它应最大化满足买卖双方的价值交换,在交易前、后提供完备的服务。交易前:客户购买下单,支付金额,电商网站确认支付后,进行配送发货。交易后:在退换周期内,客户申请退换,电商进行退换处理,并返还客户金额;同时对交易金额进行结算。完整交易需要图中多个核心流程来支撑,其本身的业务链条比较长;它会引入订单、支付单、配送单、售后服务单等多个领域概念;产生营销活动抵扣、支付方式、退换货策略等不同的业务规则;使系统具有较高的复杂性。对于交

2015-09-21 22:20:49 1015

转载 1亿数据用户中心的分库分表架构设计

这里是以下面的symbol和label的形式出现。label是可以修改的,即是用户自定义用于方便阅读的由于是用class的属性值进行符号的分类,所以这里的value值,是class的属性值之一

2015-09-20 20:50:17 1118

转载 领域驱动设计和实践

领域驱动设计不是把业务逻辑放在 BS(BusinessService)中,而是由具备属性、行为和状态的领域对象处理。例如 Order 类,如果是贫血的 POJO,那它内部只有与数据表字段对应的属性以及 getter 和 setter 方法,而在领域驱动设计中,则是一个相对独立的、能够处理自身关联业务的领域对象

2015-09-19 16:37:09 1858

转载 什么是产品化

当我们在谈产品化时,我们想的是同一个概念吗?为了更好地理解这个问题,首先要解释“系统、产品、商品”的定义。我不太想用百科上的通用定义,如:商品是用于交换的劳动产品,这对我们今天的话题没有指导意义,我尝试用更贴近我们日常工作上下文的方式来给出定义。 系统的定义:各种离散功能组成的功能集合体。 产品的定义:有使用价值且封装良好的可复用功能集合体。 商品的定义:以交易为目的的,有使用价值且封装良好的可复用功能集合体。 举个例子:我用各种零件制作了一个计时系统,具有..

2015-09-17 23:39:51 5766

原创 hdfs3.2源码分析之DFSOutputStream

DFSOutputStream概述DFSOutputStream从字节流中创建文件。client端写入的数据首先由这个这个流缓存。data数据首先分割成packets,每个packet都是64k的大小。每个packet由chunk组成,每个chunk都是512的字节大小,并且都附带一个checksum。当client端填充完currentPacket后,会把它放入DataStrea...

2015-09-16 23:42:46 1312

转载 Elasticsearch调优实践

背景Elasticsearch(ES)作为NOSQL+搜索引擎的有机结合体,不仅有近实时的查询能力,还具有强大的聚合分析能力。因此在全文检索、日志分析、监控系统、数据分析等领域ES均有广泛应用。而完整的Elastic Stack体系(Elasticsearch、Logstash、Kibana、Beats),更是提供了数据采集、清洗、存储、可视化的整套解决方案。本文基于ES 5.6.4,从...

2015-09-01 16:05:44 914

ios的网络图片下载类库

ios的网络图片下载类库

2016-03-31

viewpager的下横线指示器

viewpager的下横线指示器,使用translateAnimation位移动画实现被选中页卡的下横线的移动

2015-07-30

viewpager实现页面导航之三

新特点是使用translateAnimation位移动画实现被选中的点的移动。而不是用以往的方法实现点的切换。之所以说是点的移动而不是点的切换是因为,运行代码滑动页面时真的可以看到像在Flash中绿点的移动效果。以往的方法只是一个点换成灰色图片,另一个换成绿色图片,没有移动。

2015-07-22

viewpager实现页面导航

viewpager实现页面导航,代码耦合性低。比如不在initiateItem()中设计并返回页卡布局文件对象。姑且可以看看了解

2015-07-21

viewpager与预编译的点布局实现页面导航效果

该源代码简洁的实现了在页面滑动时点的变化,而且包容点的布局是经过重写的布局,单独作为一个文件,不在MainActivity.java中,耦合低

2015-07-20

进销存管理系统之二

这是由明日科技公司开发的进销存管理系统,跟上一例代码有些相似之处

2015-07-17

进销存管理系统

这是个教你怎么连接sqlserver2008的代码,只要查看dao.java即可

2015-07-17

java+Mysql学生数据库管理系统

该源代码里会教你怎么自定义类将在数据库查询到的结果集以表格的形式展示在界面上;怎么自定义图形面板添加背景图片

2015-07-11

MyListView

listview的BaseAdapter用法的android源代码,还用了convert与viewholder的回收机制

2015-07-10

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

TA关注的人

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