自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 资源 (1)
  • 收藏
  • 关注

原创 开发8年总结下

开发一转眼8年,好久没写过了,发觉自己积累的东西还有不少,续上前几年的空白吧,感觉自从有了孩子之后,积累学习就少了,最近感觉到了瓶颈,孩子正好也大了些,又把看书的习惯捡起来,感觉很好

2017-10-25 13:29:14 223

转载 动态规划算法

动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。在面试笔试中动态规划也是经常作为考题出现,其中较为简单的DP题目我们应该有百分之百的把握顺利解决才可以。动态规划定义动态规划实际上是一类题目的总称,并不是指某个固定的算法。动态规划的意义就是通过采用递推(或者分而治之)的策略,通过解决大问题的子问题从而解决整体的...

2018-03-14 11:21:45 341

转载 java语法糖

Java中的语法糖语法糖(Syntactic Sugar),也称糖衣语法,指在计算机语言中添加的某种语法,这种语法对语言本身功能来说没有什么影响,只是为了方便程序员的开发,提高开发效率。说白了,语法糖就是对现有语法的一个封装。Java作为一种与平台无关的高级语言,当然也含有语法糖,这些语法糖并不被虚拟机所支持,在编译成字节码阶段就自动转换成简单常用语法。一般来说Java中的语法糖主要有以下几种: ...

2018-03-14 10:53:59 626

原创 新年寄语

新的一年,年后项目上线完毕,有空闲时间写点东西,希望新的一年继续努力,提高自己,能更进一层!

2018-03-14 10:43:21 245

转载 【双11“超级工程”】阿里:从文件分发说到镜像传输 — 蜻蜓,双11背后PB级文件分发重器

本文摘要 2017天猫双11, 交易峰值32.5万/秒,支付峰值25.6万/秒,数据库处理峰值4200万次/秒,成交额1682亿数字的背后是50+神秘技术!其中,阿里集团基础设施蜻蜓,在双11期间,对上万台服务器同时下发5GB的数据文件,让大规模文件分发靠蜻蜓系统完美渡过。 蜻蜓,通过解决大规模文件下载以及跨网络隔离等场景下各种难题,大幅提高数据预热、大规模容器镜像分发等业务能力。

2017-11-14 13:22:38 2549

转载 京麦消息中心业务模型分析(京东)

京麦消息中心是京麦平台核心业务之一,负责向京麦平台商家用户提供消息推送,ISV消息订阅,以及消息追踪,消息监控,消息统计等功能。京麦消息中心(以下简称MC)经过4个618的洗礼,技术及业务模型日趋成熟和稳定,本文将为您揭开京麦消息中心业务模型及涉及到的技术点内幕。首先简单聊下整体架构,整个消息中心承载业务系统消息,资讯类消息,其他类消息。业务系统消息首先经Anycall系统

2017-11-14 11:24:35 2212

转载 Java高并发,如何解决,什么方式解决

对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序员头疼的问题,但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研究一下常见的并发和同步吧。为了更好的理解并发和同步,我们需要先明白两个重要的概念:同步和异步1. 同步和异步的区别和联系所谓同步,可以理解为在执行完一个函数或方法之后,一直等待系统返回值或消

2017-11-14 10:44:26 375

转载 使用Redis实现分布式锁及其优化

目前实现分布式锁的方式主要有数据库、Redis和Zookeeper三种,本文主要阐述利用Redis的相关命令来实现分布式锁。相关Redis命令SETNX  如果当前中没有值,则将其设置为并返回1,否则返回0。EXPIRE  将设置为秒后自动过期。GETSET将的值设置为,并返回其原来的旧值。如果原来没有旧值,则返回nil。EVAL与EVALSHARedis2.6

2017-11-14 10:30:23 2043

转载 互联网电商购物车架构演变案例

购物车主要作用在于:1、和传统卖场类似,方便用户一次选择多件商品去结算。2、充当临时收藏夹的功能。3、对于商家来说,购物车是向用户推销的最佳场所之一。早期ERP拆分 业务服务化拆分 WCS拆分购物车功能模块概况 层级设计 群集设计 云购物车从应用层 面上设计了三个—— 交互层、业务组装,基础服(横向)每

2017-11-14 10:24:30 777

转载 从Java视角理解系统结构(一)CPU上下文切换

在高性能编程时,经常接触到多线程. 起初我们的理解是, 多个线程并行地执行总比单个线程要快, 就像多个人一起干活总比一个人干要快. 然而实际情况是, 多线程之间需要竞争IO设备, 或者竞争锁资源,导致往往执行速度还不如单个线程. 在这里有一个经常提及的概念就是: 上下文切换(Context Switch).上下文切换的精确定义可以参考: http://www.linfo.org/conte

2017-11-14 10:01:08 264

转载 查看linux系统CPU信息的经验 以及分区和剩余空间大小

查看Linux系统分区信息,使用命令“fdisk -l”使用命令”df -l和df -h“具体查看分区使用状况。实际这两个命令具有一样的作用区别是显示的容量单位不一样,当然也可以直接使用明”df -lh“。这样我们可以直观的看到当前系统分区(包括交换分区swap)的”文件系统、容量、已用 、可用、已用% 、挂载点“等实时装况。今天

2017-11-06 16:29:19 1981

转载 spring-session实现分布式集群session的共享

前言  HttpSession是通过Servlet容器创建和管理的,像Tomcat/Jetty都是保存在内存中的。但是我们把应用搭建成分布式的集群,然后利用LVS或Nginx做负载均衡,那么来自同一用户的Http请求将有可能被分发到多个不同的应用中。那问题来了,如何保证不同的应用能够共享同一份session数据呢?最简单的想法,就是把session数据保存到内存以外的一个统一的地方,例如M

2017-11-06 16:16:03 394

转载 关于架构优化和设计,架构师必须知道的事情

概述    近几年来随着互联网的飞速发展,新的架构实践方式不断涌现,但是有一件事情是永恒不变的,那就是-“架构之道”;关于如何设计出灵活、高可用性以及能够快速适应变化的系统架构,我们依旧还有很大的发挥空间。本文会介绍关于如何构建前沿的、易维护的、安全的架构的几个要点,同时你也可以把它当作系统设计的准则或者用它来验证现有的架构是否合理。    就像我们经常所说的:没有最好的架构,只有

2017-11-03 09:40:21 349

原创 Docker介绍与安装,常用命令

docker做为微服务实现的重要的组成部分,已经火力好几年了,Docker容器技术如何简化应用程序的开发与部署、促进最佳实践并催生新一代以应用为基础的微服务机制。大规模整体性云应用程序开发已经步入绝路。如今它开始被微服务架构所取代,其特色在于将大型应用程序——及其全部内置功能——拆分成更小的、目的驱动型服务,并通过通用REST API实现彼此之间的通信。这边简单回顾一下docker 入门和

2017-11-03 09:35:01 524

转载 (转)如何快速处理线上故障

|原文链接:http://www.cnblogs.com/daoqidelv/p/6785372.html概述线上故障通常是指大规模的影响线上服务可用性的问题或者事件,通俗点讲就是:掉‘坑’里了,这个‘坑’就是线上故障!线上故障的处理过程可以形象地表达为:‘踩坑’、‘跳坑’、‘填坑’、‘避坑’。线上故障的处理不仅是一项技术活,更是对技术人员/技术团队反应能力、决策能力、判定

2017-11-03 09:30:23 409

转载 秒杀系统架构优化思路

转:本文曾在“架构师之路”上发布过,近期支援Qcon-AS大会,在微信群里分享了该话题,故对原文进行重新整理与发布。一、秒杀业务为什么难做1)im系统,例如qq或者微博,每个人都读自己的数据(好友列表、群列表、个人信息);2)微博系统,每个人读你关注的人的数据,一个人读多个人的数据;3)秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读

2017-11-01 13:48:48 401

转载 算法系列15天速成—— 图【下】(大结局)

说下“图”的最后一点东西,“最小生成树“和”最短路径“。 一: 最小生成树1. 概念    首先看如下图,不知道大家能总结点什么。    对于一个连通图G,如果其全部顶点和一部分边构成一个子图G1,当G1满足:       ① 刚好将图中所有顶点连通。②顶点不存在回路。则称G1就是G的“生成树”。           其实一句话总结就是:生成

2017-11-01 13:40:37 249

转载 算法系列15天速成——第十四 图【上】

今天来分享一下图,这是一种比较复杂的非线性数据结构,之所以复杂是因为他们的数据元素之间的关系是任意的,而不像树那样被几个性质定理框住了,元素之间的关系还是比较明显的,图的使用范围很广的,比如网络爬虫,求最短路径等等,不过大家也不要胆怯,越是复杂的东西越能体现我们码农的核心竞争力。             既然要学习图,得要遵守一下图的游戏规则。一: 概念

2017-11-01 13:39:47 246

转载 算法系列15天速成—— 第十三 树操作【下】

大家可否知道,文件压缩程序里面的核心结构,核心算法是什么?或许你知道,他就运用了赫夫曼树。听说赫夫曼胜过了他的导师,被认为”青出于蓝而胜于蓝“,这句话也是我比较欣赏的,嘻嘻。 一  概念    了解”赫夫曼树“之前,几个必须要知道的专业名词可要熟练记住啊。     1: 结点的权            “权”就相当于“重要度”,我们形象的用一

2017-11-01 13:38:55 229

转载 算法系列15天速成——第十二天 树操作(中)

先前说了树的基本操作,我们采用的是二叉链表来保存树形结构,当然二叉有二叉的困扰之处,比如我想找到当前结点的“前驱”和“后继”,那么我们就必须要遍历一下树,然后才能定位到该“节点”的“前驱”和“后继”,每次定位都是O(n),这不是我们想看到的,那么有什么办法来解决呢?   (1) 在节点域中增加二个指针域,分别保存“前驱”和“后继”,那么就是四叉链表了,哈哈,还是有点浪费空间

2017-11-01 13:37:26 209

转载 算法系列15天速成——第十一天 树操作(上)

先前我们讲的都是“线性结构”,他的特征就是“一个节点最多有一个”前驱“和一个”后继“。那么我们今天讲的树会是怎样的呢?我们可以对”线性结构“改造一下,变为”一个节点最多有一个"前驱“和”多个后继“。哈哈,这就是我们今天说的”树“。 一: 树      我们思维中的”树“就是一种枝繁叶茂的形象,那么数据结构中的”树“该是怎么样呢?对的,他是一种现实中倒立的树。

2017-11-01 13:36:26 238

转载 算法系列15天速成——第十天 栈

今天跟大家聊聊栈,在程序设计中,栈的使用还是非常广泛的,比如有“括号匹配问题“,”html结构匹配问题“。所以说掌握了”栈“的使用,对我们学习算法还是很有帮助的。 一: 概念         栈,同样是一种特殊的线性表,是一种Last In First Out(LIFO)的形式,现实中有很多这样的例子,     比如:食堂中的一叠盘子,我们只能从顶端一个一个

2017-11-01 13:34:27 242

转载 微服务架构

SOA是一种架构风格 ,微服务是组件范畴, 如果对比,应该是微服务架构与SOA对比微服务(micro services)这个概念不是新概念,很多公司已经在实践了,例如亚马逊、Google、FaceBook,Alibaba。微服务架构模式(Microservices Architecture Pattern)的目的是将大型的、复杂的、长期运行的应用程序构建为一组相互配合的服务,每个服务都可以

2017-11-01 13:32:48 376

转载 那些年搞不懂的高深术语——依赖倒置•控制反转•依赖注入•面向接口编程

那些年,空气中仿佛还能闻到汉唐盛世的余韵,因此你决不允许自己的脸上有油光,时刻保持活力。然而,你一定曾为这些“高深术语”感到过困扰。也许时至今日,你仍对它们一知半解。不过就在今天,这一切都将彻底改变!我将带领你以一种全新的高清视角进入奇妙的编程世界,领略涵泳在这些“高深术语”中的活泼泼的地气,以及翩跹于青萍之末的云水禅心。内聚 内聚,通俗的来讲,就是自己的东西自己保管,自己的事情自己做。

2017-11-01 13:26:42 232

转载 redis 数据类型 以及 redis适用场景场合

redis常用五种数据类型:string,hash,list,set,zset(sorted set). 1.String类型String是最简单的类型,一个key对应一个valueString类型的数据最大1G。 String类型的值可以被视作integer,从而可以让“INCR”命令族操作(incrby、decr、decrby),这种情况下,该integer的值限制在64位

2017-11-01 10:36:05 904

转载 算法系列15天速成——第九天 队列

可能大家都知道,线性表的变种非常非常多,比如今天讲的“队列”,灰常有意思啊。 一:概念          队列是一个”先进先出“的线性表,牛X的名字就是“First in First Out(FIFO)”,      生活中有很多这样的场景,比如读书的时候去食堂打饭时的”排队“。当然我们拒绝插队。 二:存储结构         前几天也说过,

2017-10-31 15:23:09 193 1

转载 算法系列15天速成——第八天 线性表【下】

一:线性表的简单回顾       上一篇跟大家聊过“线性表"顺序存储,通过实验,大家也知道,如果我每次向顺序表的头部插入元素,都会引起痉挛,效率比较低下,第二点我们用顺序存储时,容易受到长度的限制,反之就会造成空间资源的浪费。 二:链表      对于顺序表存在的若干问题,链表都给出了相应的解决方案。1. 概念:其实链表的“每个节点”都包含一

2017-10-31 15:22:14 179 1

转载 算法系列15天速成——第七天 线性表【上】

人活在社会上不可能孤立,比如跟美女有着千丝万缕的关系,有的是一对一,有的是一对多,有的是多对多。哈哈,我们的数据也一样,存在这三种基本关系,用术语来说就是:  线性关系。  树形关系。  网状关系。 一: 线性表      1 概念:                 线性表也就是关系户中最简单的一种关系,一对一。       

2017-10-31 15:21:22 202 1

转载 算法系列15天速成——第六天 五大经典查找【下】

大家是否感觉到,树在数据结构中大行其道,什么领域都要沾一沾,碰一碰。就拿我们前几天学过的排序就用到了堆和今天讲的”二叉排序树“,所以偏激的说,掌握的树你就是牛人了。 今天就聊聊这个”五大经典查找“中的最后一个”二叉排序树“。 1. 概念:      其实很简单,若根节点有左子树,则左子树的所有节点都比根节点小。               

2017-10-31 15:20:41 189 1

转载 算法系列15天速成——第五天 五大经典查找【中】

大家可否知道,其实查找中有一种O(1)的查找,即所谓的秒杀。 哈希查找:     对的,他就是哈希查找,说到哈希,大家肯定要提到哈希函数,呵呵,这东西已经在我们脑子里面形成固有思维了。大家一定要知道“哈希“中的对应关系。     比如说: ”5“是一个要保存的数,然后我丢给哈希函数,哈希函数给我返回一个”2",那么此时的”5“和“2”就建立一

2017-10-31 15:19:45 167 1

转载 算法系列15天速成——第四天 五大经典查找【上】

在我们的生活中,无处不存在着查找,比如找一下班里哪个mm最pl,猜一猜mm的芳龄....... 对的这些都是查找。 在我们的算法中,有一种叫做线性查找。分为:顺序查找。        折半查找。 查找有两种形态:分为:破坏性查找,   比如有一群mm,我猜她们的年龄,第一位猜到了是23+,此时这位mm已经从我脑海里面的mmlist中remov

2017-10-31 15:18:38 181 1

转载 算法系列15天速成——第三天 七大经典排序【下】

今天跟大家聊聊最后三种排序: 直接插入排序,希尔排序和归并排序。 直接插入排序:       这种排序其实蛮好理解的,很现实的例子就是俺们斗地主,当我们抓到一手乱牌时,我们就要按照大小梳理扑克,30秒后,   扑克梳理完毕,4条3,5条s,哇塞......  回忆一下,俺们当时是怎么梳理的。       最左一张牌是3,第二张牌是5,第三张牌又是3,赶紧插到

2017-10-31 15:18:03 210 1

转载 算法系列15天速成——第二天 七大经典排序【中】

今天说的是选择排序,包括“直接选择排序”和“堆排序”。 话说上次“冒泡排序”被快排虐了,而且“快排”赢得了内库的重用,众兄弟自然眼红,非要找快排一比高下。这不今天就来了两兄弟找快排算账。 1.直接选择排序: 先上图: 说实话,直接选择排序最类似于人的本能思想,比如把大小不一的玩具让三岁小毛孩对大小排个序,那小孩首先会在

2017-10-31 15:17:15 233 1

转载 算法系列15天速成——第一天 七大经典排序【上】

11年看过的算法,写的通俗易懂,转载下,大概1星期敲一遍差不多这些算法都搞定了!今天是开篇,得要吹一下算法,算法就好比程序开发中的利剑,所到之处,刀起头落。 针对现实中的排序问题,算法有七把利剑可以助你马道成功。 首先排序分为四种:       交换排序: 包括冒泡排序,快速排序。      选择排序: 包括直接选择排序,堆排序。

2017-10-31 15:08:31 324 1

原创 ELK安装

1 概述ELK套件(ELK stack)是指ElasticSearch、Logstash和Kibana三件套。这三个软件可以组成一套日志分析和监控工具。2 环境准备2.1 软件要求本文把ELK套件部署在一台CentOS单机上。具体的版本要求如下:操作系统版本:CentOS 6.6;JDK版本:1.8.0;Logstash版本:5.5.0;Elasti

2017-10-30 17:56:04 219

转载 从运维角度看中大型网站架构的演变之路

从运维角度看中大型网站架构的演变之路网上有很多文章类似于我今天要分享的内容,有架构师写的,有运维写的,还有开发些的,偏重点都不同,今天我将从运维角度全面讲解。一个成熟的网站架构并不是一开始设计就具备高可用、高伸缩、高性能等特性的,它是随着用户量和业务线不断增加,基础架构才逐渐健壮的。在发展初期,一般都是从0到1,不会一上来就整一些大而全的架构,也很少人这么任性。说明·       

2017-10-30 17:52:33 217

转载 高级的机器学习

那位同学看懂了后可以讲讲啊,我只知道有这事啊机器学习有很多方面,当我开始研究学习它时,我发现了各种各样的“小抄”,它们简明地列出了给定主题的关键知识点。最终,我汇集了超过 20 篇的机器学习相关的小抄,其中一些我经常会翻阅,而另一些我也获益匪浅。这篇文章里面包含了我在网上找到的 27 个小抄,如果你发现我有所遗漏的话,请告诉我。机器学习领域的变化是日新月异的,我想这些可

2017-10-30 17:51:20 770

转载 分布式架构演进

荐书进行时荐书:《分布式服务架构:原理、设计与实战》(留言送书)系统架构演化历程-初始阶段架构初始阶段 的小型系统 应用程序、数据库、文件等所有的资源都在一台服务器上通俗称为LAMP特征:应用程序、数据库、文件等所有的资源都在一台服务器上。描述:通常服务器操作系统使用linux,应用程序使用PHP开发,然后部署在Apache上

2017-10-30 17:33:24 622

转载 完整的支付体系

转至元数据结尾转至元数据起始支付产品模块是按照支付场景来为业务方提供支付服务。这个模块一般位于支付网关之后,支付渠道之前。 它根据支付能力将不同的支付渠道封装成统一的接口,通过支付网关来对外提供服务。所以,从微服务的角度,支付产品本身也是一个代理模式的微服务,它透过支付网关响应业务方请求, 进行一些统一处理后,分发到不同的支付渠道去执行,最后将执行结果做处理后,通过支付网关再回

2017-10-30 17:10:52 4611 3

转载 从运维角度看中大型网站架构的演变之路

从运维角度看中大型网站架构的演变之路网上有很多文章类似于我今天要分享的内容,有架构师写的,有运维写的,还有开发些的,偏重点都不同,今天我将从运维角度全面讲解。一个成熟的网站架构并不是一开始设计就具备高可用、高伸缩、高性能等特性的,它是随着用户量和业务线不断增加,基础架构才逐渐健壮的。在发展初期,一般都是从0到1,不会一上来就整一些大而全的架构,也很少人这么任性。说明·       

2017-10-30 17:07:35 385

计算机算法 数据结构和算法

数据结构和算法的电子书,计算机算法导论方面的电子书,有需要的拿去

2010-08-18

空空如也

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

TA关注的人

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