自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

0-1的专栏

另一个世界

  • 博客(49)
  • 收藏
  • 关注

原创 设计模式系列-01-简单工厂模式

1 工厂模式简介1.1 定义 ***简单工厂模式属于创建型模式又叫做静态工厂方法模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单来说,提供创建实例的功能,而无需关心具体实现。本质:选择实现。1.2 解决的问题 *****将“类实例化的操作”与“使用对象的操作”分...

2020-01-23 14:35:17 182

转载 程序员遇到祖传代码:技术债是推翻还是维护?

前言:做开发多年,对于技术债的问题也深有体会。此文描述了一般情况,值得记录。方案:紧急重要、紧急不重要、重要不紧急、不重要不紧急的划分。随着业务的推进不断偿还债务。价值收益角度:“继续维护的收益”和“重写的收益”哪个更大?---------------------------------------------------------------------------------...

2019-08-12 18:08:21 330

转载 高并发系统限流

在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;而降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉,待高峰或者问题解决后再打开;而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服务(如评论、下单)、频繁的复杂查询(评论的最后几页),因此需有一种手段来限制这些场景的并发/请求量,...

2019-07-25 10:40:01 284

转载 高并发系统的限流算法与实现

开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。缓存:缓存的目的是提升系统访问速度和增大系统处理容量。降级:降级是当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务和页面有策略的降级,以此释放服务器资源以保证核心任务的正常运行。限流:限流的目的是通过对并发请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以进行拒绝服务、排队或等待、降级等...

2019-07-25 10:38:59 241

转载 到底多大才算高并发?

定义:高并发(High Concurrency)是使用技术手段使系统可以并行处理很多请求。关键指标:-响应时间(Response Time)-吞吐量(Throughput)-每秒查询率QPS(Query Per Second)-每秒事务处理量TPS(Transaction Per Second)-同时在线用户数量关键指标的维度:-平均,如:小...

2019-05-17 09:19:22 1662

转载 高并发核心技术 - 库存

高并发核心技术 - 订单与库存 问题: 一件商品只有100个库存,现在有1000或者更多的用户来购买,每个用户计划同时购买1个到几个不等商品。如何保证库存在高并发的场景下是安全的。 1.不多发 2.不少发 下单涉及的一些步骤 1.下单 2.下单同时预占库存 3.支付 4.支付成功真正减扣库存 5.取消订单 6.回退预占库存 什么时候进行预占库存 方案一:...

2019-04-22 14:43:24 168

转载 openjdk7 源码下载

获取 OpenJDK 源码大致有两种方式1、通过 Mercurial 代码版本管理工具从 Repository 中直接取得源码但是这个需要先装 hg(brew install hg),然后hg fclone http://hg.openjdk.java.net/jdk7/jdk7,耗时太久。2、从网站上下载:http://download.java.net/openjdk/jdk7...

2019-03-05 21:10:53 808

转载 常见的数据一致性级别

数据一致性是分布式系统,特别是分布式存储系统设计实现中需要重点考虑的问题之一。根据CAP理论:在分布式数据系统中,一致性(Consistency )、可用性(Availability)、分区容忍性(Partition tolerance)这3个要素最多只能同时实现2点,而不可能3者兼顾。对于分布式数据系统,分区容忍性是基本要求。因此设计分布式数据系统,就是在一致性和可用性之间做平衡。对于大多数...

2018-12-20 11:32:56 1832

转载 每个程序员要注意的 9 种反模式

涵盖的反模式清单:1过早优化 2 Bikeshedding 3分析瘫痪 4上帝阶级 5害怕添加类 6内平台效应 7个魔术数字和字符串 8按数字管理 9无用(恶作剧)类 有一个健康的自我批评对于专业和个人成长是很重要的。对于编程而言,自我批评的意义就是需要能查明设计中、代码中、开发中和行为中的无效或反效果的模式。这就是为什么反面模式对任何程序员都很有用的原因。基于我遇到它们...

2018-11-22 20:52:34 1552

转载 设计模式和反模式简单介绍

摘要:本文主要讲的是反模式, 反模式(英文:Anti-patterns或pitfalls), 是指用来解决问题的带有共同性的不良方法。它们已经经过研究并分类,以防止日后重蹈覆辙,并能在研发尚未投产的系统时辨认出来。 作为一个资深开发人员,大家都应该听说过设计模式(design pattern),但是不是所有的人都听说过反模式(anti-pattern)。今天我们就来谈谈后者,何为反模式。...

2018-11-22 20:34:31 5848

转载 (转)微服务架构理论-扩展立方体篇

很久很久以前的程序员都很牛逼一不开心就自己写个操作系统自己玩,玩着玩着最后就剩下了几个,比如我们熟知的windows,linux,苹果OS,这是我们使用最底层的操作系统,在操作系统上面我们还要运行我们的应用软件,这个运行的应用软件就是我们今天重点讲解的,然而这个软件一般指企业级软件。  企业级软件最初只想把那些纸质的数据进行电子化,但是不断的发展,不断的发展,不过也就几十年的时间就出现了如下的...

2018-10-25 16:50:24 555

原创 PMP-1-引论

1、基本要素描述了从事项目管理和了解项目管理领域所需的基本要素。1.1、项目项目是为创造独特的产品、服务或成果而进行的临时性工作。独特的产品、服务或成果。开展项目是为了通过可交付成果达成目标。目标指的是工作所指向的结果,要达到的战略地位,要达到的目的,要取得的成果,要生产的产品,或者准备提供的服务。可交付成果指的是在某一过程、阶段或项目完成时,必须产出的任何独特并可核实的产品、成果...

2018-10-24 21:13:41 500

转载 MySQL 中间件汇总比较

360 Atlas        较为活跃,Atlas 是由 360 Web平台部基础架构团队开发维护的一个基于 MySQL 协议的数据中间层项目。它是在mysql-proxy 0.8.2版本的基础上,对其进行了优化,增加了一些新的功能特性。360内部使用 Atlas 运行的 MySQL 务,每天承载的读写请求数达几十亿条。        主要功能:        1. 读写分离   ...

2018-10-23 14:54:41 8440

转载 (转)一张图告诉你什么是系统架构师

这张图从架构师的综合能力、岗位认识、岗位职责等方面,清楚的画出了作为一个架构的基本准则。人人都想成为架构师,可作为架构你达到了上面的要求了吗?系统架构师是个神奇的岗位。为什么这么说,在一个人数不多的小公司,你可能什么都需要做,身体力行,做总监兼架构师或者是主管/高级开发兼架构师;在大公司,你可能只负责某个平台的架构,某些中间件的架构,你就是某一类的架构师。无论怎么分,作为一个架构师,你...

2018-10-23 14:47:24 226

转载 (转)数据库相关中间件介绍

 这里主要介绍互联网行业内有关数据库的相关中间件。数据库相关平台主要解决以下三个方面的问题: 为海量前台数据提供高性能、大容量、高可用性的访问 为数据变更的消费提供准实时的保障 高效的异地数据同步 应用层通过分表分库中间件访问数据库,包括读操作(Select)和写操作(update, insert和delete等,DDL, DCL)。写操作会在数据库上产生变更记录...

2018-10-23 14:37:33 241

转载 mysql查看连接数和状态,设置连接数和超时时间

1、mysql> show status like '%connect%';   Connections,试图连接到(不管是否成功)MySQL服务器的连接数。   Max_used_connections,服务器启动后已经同时使用的连接的最大数量。   Threads_connected,当前的连接数。2、mysql> show variables like '%conne...

2018-10-23 14:18:45 1814

转载 数据库连接的工作原理(转)

随着信息技术的高速发展与广泛应用,数据库技术在信息技术领域中的位置越来越重要,尤其是网络应用和电子商务的迅速发展,都需要数据库技术支持动态Web 站点的运行,而传统的开发模式是:首先在主程序(如Servlet、Beans)中建立数据库连接;然后进行SQL操作,对数据库中的对象进行查询、修改和删除等操作;最后断开数据库连接。使用这种开发模式,对于一个简单的数据库应用,由于数据库的访问不是很频繁,只需...

2018-10-22 09:52:32 2820

原创 日常小记1

盲人摸象从前,有四个盲人很想知道大象是什么样子,可他们看不见,只好用手摸。胖盲人先摸到了大象的牙齿。他就说:“我知道了,大象就像一个又大、又粗、又光滑的大萝卜。”高个子盲人摸到的是大象的耳朵。“不对,不对,大象明明是一把大蒲扇嘛!”他大叫起来。“你们净瞎说,大象只是根大柱子。”原来矮个子盲人摸到了大象的腿。而那位年老的盲人呢,却嘟嚷:“唉,大象哪有那么大,它只不过是一根草绳。”原来他摸到的是大...

2018-10-17 21:33:27 229

原创 redis-看看就好的基础

概要:redis是什么?能干什么?去哪里下?怎么用?--------------------------------------------------------------------------------------------NoSQL数据库Redis是基于内存的数据结构存储开源系统,采用C语言编写。可作为内存数据库、缓存或消息代理中间件,前两种情况实际当中使用更多些...

2018-10-10 18:35:54 199

转载 【转】#90 回报率的真相

接下来,我们要花几篇的篇幅,简单讲一下回报率。包括《回报率的真相》《你赚我息,我赚你本》《万世不移的财富》,主要讲一下“富者恒贫”“多核”“砖本位”“末业逐之,本业守之”等道理。这些都是很浅显的道理。但是长期的毒教育,使得很多人一开始就错了。一)回报率有多高回报率能有多高。如果给你人民币10000 元,经过一年的运作,你能赚到多少钱?如果这是课堂上老师出给你的试题;那么...

2018-09-30 09:26:00 182

转载 【转】我们离大排面30元一碗还有多远?

此篇文章首次出现在2004年天涯论坛上的。我是从06年看到的。虽然感觉写的有理,但也轩至一笑而已,但随着时代的发展,初写此文的作者强大的知识面、强大的逻辑思维和强大的预知性,将大家的当初的嬉笑定格在脸上,取而代之的就是焦虑和无助。今天再次将此文章转出,一来作纪念,二来以慰读者。 全文如下:乍一看这个题目,很多人的第一个反应就是写错了。人民币应该面临巨大的“升值”压力,何来贬值而言。不错...

2018-09-26 09:11:57 1639

转载 【转】IntelliJ IDEA(2017)安装和破解的方法

官网信息:http://www.jetbrains.com/idea/一、下载并安装, IntelliJ IDEA的官网:https://www.jetbrains.com二、破解。下载一个 JetbrainsCrack-2.6.2.jar 破解补丁。放在你的安装idea下面的bin的目录下面。下载链接:http://idea.lanyus.com/在安装的idea下面的bin...

2018-09-06 15:57:45 208

原创 【读书笔记】- 代码整洁之道

代码整洁之道概要:杂谈分章总结--------------------------------------------------------------------------------------------杂谈     谈及代码整洁,大的方面是关于一个系统的演变后的模样,好比混沌的创世,到有了法治文明。小的方面是家庭的标准、家规等等。例如系统间的协议、约定、通用性等...

2018-08-31 18:47:41 220

转载 【转】李想:关于工作和成长,这是我的100条具体建议 |【经纬低调分享】

李想,80后创业者代表人物,如今第三次创业做了车和家,并在今年3月拿到了经纬领投的B轮融资。从放弃高考创业做泡泡网,到后来创立汽车之家,再到今天的车和家创始人兼CEO——他身上最打动人的是无比强韧的成长能力及意愿,对比他2015年和2018年在经纬的分享你都能感受到这种演进。而他又足够真诚,这种真诚使得今天分享的这100条有力量的厚度。这些内容涉及对职业社会的合理认知、如何认知世界及自我认...

2018-08-31 18:29:19 356

原创 上线小记

1、上线的操作要按照日常标准来,是对习惯的训练。2、上线的业务相关,要明确需要的参考指标有哪些,要在上线过程中进行监控。3、上线的基础指标,不要放过机器的新能指标。4、节奏要把控,因为有些信息未必很快显现。5、上线前的准备要做充分,每一次都当做新的来对待,这样会给你省去很多麻烦。你懂得。6、上线后的收尾工作,要做到位,至少要在持续观察一会儿。这是一个态度。7、上线如果遇到风...

2018-08-30 20:53:12 99

原创 继房价上涨的房租上涨

记录生活概要:记最近热议“北京房租上涨”--------------------------------------------------------------------------------------------      房价反映的是资产,房租反映的是消费,这一轮房租上涨说明通胀的水已经流到了消费领域。估计过一阵子,其他的大宗商品价格也会上涨。      哪里有调...

2018-08-20 14:42:19 390

原创 Redis-复制(记一次redis加密平滑升级)

Redis-复制概要:背景及redis加密升级方案讨论redis复制原理-------------------------------------------------------------------------------------------- 一、背景工作中,由历史原因使用的redis(版本2.8)集群是无密码的,因此需要进行密码升级。单单谈redis...

2018-08-16 14:44:31 1786

转载 汇编(一)-汇编初识

学习编程其实就是学高级语言,即那些为人类设计的计算机语言。但是,计算机不理解高级语言,必须通过编译器转成二进制代码,才能运行。学会高级语言,并不等于理解计算机实际的运行步骤。计算机真正能够理解的是低级语言,它专门用来控制硬件。汇编语言就是低级语言,直接描述/控制 CPU 的运行。如果你想了解 CPU 到底干了些什么,以及代码的运行步骤,就一定要学习汇编语言。汇编语言不容易学习,就连...

2018-07-20 10:23:24 226

原创 Java知识整理6-Java核心 (二)Java集合

概要:ListSetMap--------------------------------------------------------------------------------------------集合类存放于Java.util包中,主要有3种:List(列表包含Queue)、Set(集)和Map(映射)。1、Collection:Collection是集合Li...

2018-07-17 11:57:46 157

转载 Java transient关键字

概要:transient的作用及使用方法transient使用小结transient使用细节--------------------------------------------------------------------------------------------1、transient的作用及使用方法一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序...

2018-07-12 20:53:38 164

原创 Java知识整理4-从JVM说起 (四)JVM类加载机制及OSGI

概要:JVM类加载机制OSGI--------------------------------------------------------------------------------------------JVM类加载机制分为五个部分:加载、验证、准备、解析、初始化。...

2018-07-10 20:29:47 345

原创 Java知识整理5-Java核心 (一)Java IO/NIO

概要:阻塞IO模型非阻塞IO模型多路复用IO模型信号驱动IO模型异步IO模型Java IOJava NIO--------------------------------------------------------------------------------------------1、阻塞IO模型    最传统的一种IO模型,即在读写数据过程中会发生阻塞现象。当用户线程发出IO请求之后,内...

2018-07-10 09:58:33 6220 1

转载 JAVA NIO

概述NIO主要有三大核心部分:Channel(通道),Buffer(缓冲区), Selector。传统IO基于字节流和字符流进行操作,而NIO基于Channel和Buffer(缓冲区)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。Selector(选择区)用于监听多个通道的事件(比如:连接打开,数据到达)。因此,单个线程可以监听多个数据通道。NIO和传统IO(一下简称IO)之间...

2018-07-10 09:53:02 585

原创 Java知识整理3-从JVM说起 (三)垃圾回收与算法

概要:垃圾回收与算法Java四种引用类型GC垃圾收集器--------------------------------------------------------------------------------------------1、如何确定垃圾    1.1、引用计数法        在Java中,引用和对象是有关联的。如果要操作对象则必须用引用进行操作。因此,可以采用引用计数来判断一个...

2018-07-09 12:01:17 179

原创 Java知识整理2-从JVM说起 (二)JVM运行时内存

概要:JVM运行时内存    1、新生代        1.1、Eden区        1.2、ServivorFrom        1.3、ServivorTo        1.4、MinorGC的过程(复制->清空->互换)            1.4.1、eden、servivorFrom复制到ServivorTo,年龄+1            1.4.2、清空eden...

2018-07-05 18:07:34 407

原创 Java知识整理1-从JVM说起 (一)线程、JVM内存区域

概要:1、线程2、JVM内存区域    2.1、程序计数器(线程私有)    2.2、虚拟机栈(线程私有)    2.3、本地方法区(线程私有)    2.4、堆(Heap-线程共享)-运行时数据区    2.5、方法区/永久代(线程共享)--------------------------------------------------------------------------------...

2018-07-03 15:29:47 655

转载 我的世界-03-从小型机到个人计算机的发展简史(下)

鱼非鱼/文四、16位时代——图形界面与PC兼容机上期说到,在80年代最开始的几年,个人电脑市场形成了IBM PC、苹果II和Commodore64三足鼎立的形势。那么,最后是谁笑到了最后呢?80年代中期,主导市场的仍然是这三个厂商,只不过,销售的产品从8位处理器进化到了16位处理器,交互方式也从DOS这样的命令行变为了图形操作系统。1983年初,苹果推出了以乔布斯女儿命名的Lisa个人电脑。与之前...

2018-06-18 10:23:09 1262

转载 我的世界-02-从小型机到个人计算机的发展简史(中)

鱼非鱼/文一、早期的组装个人电脑虽然小型机的体积和成本都已经降低了不少,计算机开始进入办公室。但对于家庭用户来说,动辄几千美元(合今天几万美元)的小型机还是过于昂贵了,而且即使是最小的小型机,也需要一整个办公桌和柜子来存放,也不适合居家使用。1960年代,集成电路技术得到了长足的进步,制造比小型机更小的“微型计算机”就变得可行起来。1971年,英特尔率先推出了8位微处理器4004,将相当于占据了一...

2018-06-18 10:21:48 1850

转载 我的世界-01-从小型机到个人计算机的发展简史(上)

鱼非鱼/文计算机,或者说电脑,也许是20世纪人类最伟大的发明之一。今天一个城市中产阶层家庭可能拥有十数个以各种形式的计算设备——台式机,笔记本电脑,HTPC,平板电脑,智能手机,电子书,机顶盒/电视棒/智能电视,游戏机,智能手表/手环等等。我们用它们查找信息,阅读,听音乐,看视频,玩游戏,处理个人事务,工作,购物。我们已经没办法想象一个没有它们的世界。可是,计算机在刚被发明出来时,却远远不是这样。...

2018-06-18 10:20:26 5813

转载 我的世界-0----计算机简史(2):从穿孔制表机到计算机

穿孔制表机将国外出版的多媒体百科全书光盘插入电脑,然后键入“Punchedcard”(穿孔卡)作为关键词搜索。你会发现,电脑屏幕将从“Jacquard”(杰卡德)条目开始,连带着显示出早期计算机发展简史。紧靠着“杰卡德”词条的,是另外一个姓名“H·Hollerrith”。该词条解释说,穿孔卡是早期计算机输入信息的设备,通常可以储存80列数据。它是一种很薄的纸片,面积为190×84毫米。首次使用穿孔...

2018-06-18 10:10:04 5002 1

空空如也

空空如也

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

TA关注的人

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