自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(321)
  • 收藏
  • 关注

转载 使用linux的lsof和pmap解决fd和内存泄漏

最近dfs开发到了最后的调试阶段,进过了艰苦卓越的斗争,终于还是解决了几个fd泄漏 和内存泄漏的问题。这里把一些经验记录下来,以备后患。 那么先介绍一下dfs,dfs分为两部分,tracker和storage。 tracker只负责负载均衡和调度。storage负责数据 的存储和同步,基本的信息就是这样。现象dfs的storage在单机运行的时候没有问题,不管是upload,dele...

2019-04-21 21:10:33 3215

转载 如何优雅地使用Redis之位图操作

前言在进入今天的主题前,先简单地解释下Redis中的位图到底是什么。Redis官方文档对于位图的介绍如下:位图不是一个真实的数据类型,而是定义在字符串类型上的面向位的操作的集合。由于字符串类型是二进制安全的二进制大对象,并且最大长度是 512MB,适合于设置 2^32个不同的位。位操作分为两组:常量时间单个位的操作,像设置一个位为 1 或者 0,或者获取该位的值。对一组位的操作,例如计算指...

2019-04-21 21:09:00 365

转载 ConcurrentHashMap 的 size 方法原理分析

前言JAVA 语言提供了大量丰富的集合, 比如 List, Set, Map 等。其中 Map 是一个常用的一个数据结构,HashMap 是基于 Hash 算法实现 Map 接口而被广泛使用的集类。HashMap 里面是一个数组,然后数组中每个元素是一个单向链表。但是 HashMap 并不是线程安全的, 在多线程场景下使用存在并发和死循环问题。HashMap 结构如图所示:线程安全的解决方案...

2019-04-21 21:05:21 6002

转载 【开发原则】软件开发中的原则

作者:@pdai本文为作者原创,转载请注明出处:https://www.cnblogs.com/pengdai/p/9151800.html内容目录参考文章开发原则S单一职责SRPO开放封闭原则OCPL里氏替换原则LSPI接口隔离法则D依赖倒置原则DIP合成/聚合复用原则迪米特法则Q&A在软件开发中,前人对软件系统的设计和开发总结了一些原则和模式, 不管用什么语...

2019-04-21 21:03:53 207

转载 [译] 开始设计动画的九个步骤:为作品赋予生命力

动画创造生命动画意味着充沛的活力与激情,它给静止的事物以生命。在软件应用中,动画不仅是为了取悦人们,而更是为了解决问题。作为人类,我们习惯于世界围绕着我们运转;如果软件的每一部分也都能有着连贯的动画,那就会让人感到自然而又充满活力。科技行业领导者不断推动其产品朝着更为自然的方向发展,诸如动画设计、动画用户体验、用户体验编排等复杂的概念日趋流行。请记住:动画就像布局、间距、排印和颜色一样,...

2019-04-21 21:01:29 300

转载 支付平台架构评审

作者:李艳鹏,蚂蚁金服技术专家,曾在花旗银行、甲骨文、路透社、新浪微博等大型IT互联网公司担任技术负责人和架构师,现专注于大规模高并发的线上和线下支付平台的应用架构和技术架构的规划与落地,FastPay项目发起人!互联网平台架构日益成为互联网发展的基石,对于 Java 开发者和架构师而言,只有在了解架构背后的原理后,才能写出更高质量的代码,才能设计出更好的方案,才能在错综复杂平台架构下产出价值...

2019-04-19 16:39:13 183

转载 《叶问》第1期

关 于 叶 问《叶问》是知数堂新设计的互动栏目,不定期给大家提供技术知识小贴士,形式不限,或提问、或讨论均可,并在当天发布答案,让大家轻轻松松利用碎片时间就可以学到最实用的知识点。2018年6月10日,周日MySQL主从复制什么原因会造成不一致,如何预防及解决?一、导致主从不一致的原因主要有:人为原因导致从库与主库数据不一致(从库写入)主从复制过程中,主库异常宕机设置了ignore...

2019-04-19 16:37:10 158

转载 Linux服务器性能查看分析调优v

一 linux服务器性能查看1.1 cpu性能查看1、查看物理cpu个数:cat /proc/cpuinfo |grep “physical id”|sort|uniq|wc -l2、查看每个物理cpu中的core个数:cat /proc/cpuinfo |grep “cpu cores”|wc -l3、逻辑cpu的个数:cat /proc/cpuinfo |grep “proce...

2019-04-19 16:35:33 192

转载 如何通过编程发现Java死锁

本文由 ImportNew - rookie_sam 翻译自 Dzone。欢迎加入翻译小组。转载请见文末要求。死锁是指,两个或多个动作一直在等待其他动作完成而使得所有动作都始终处在阻塞的状态。想要在开发阶段检测到死锁是非常困难的,而想要解除死锁往往需要重新启动程序。更糟的是,死锁通常发生在负载最重的生产过程中,而想要在测试中发现它,十分不易。之所以这么说,是因为测试线程之间所有可能的交叉是不现...

2019-04-19 16:33:34 140

转载 电商系统中的商品模型的分析与设计—续

前言在《电商系统中的商品模型的分析与设计》中,对电商系统商品模型有一个粗浅的描述,后来有博友对货品和商品的区别以及属性有一些疑问。我也对此做一些研究,再次简单的对商品模型做一个介绍。从SPU、SKU开始首先我们需要澄清上篇中的这两个概念,在上篇文章中“货品”是指一种概念物品,这种物品并不是一个具体的实物,当它具备具体的属性、价格时,才是一种实物,也就是商品。“商品”就是库存中一个具体的实...

2019-04-19 16:28:23 222

转载 Java线程池ThreadPoolExecutor源码分析

ThreadPoolExecutor是jdk内置线程池的一个实现,基本上大部分情况都会使用这个线程池完成各项操作。本文分析ThreadPoolExecutor的实现原理。ThreadPoolExecutor的状态和属性ThreadPoolExecutor的属性在之前的一篇java内置的线程池笔记文章中解释过了,本文不再解释。ThreadPoolExecutor线程池有5个状态,分别是:...

2019-04-19 16:25:15 215

转载 百亿级日志系统架构设计及优化

日志数据是最常见的一种海量数据,以拥有大量用户群体的电商平台为例,双 11 大促活动期间,它们可能每小时的日志数量达到百亿规模,海量的日志数据暴增,随之给技术团队带来严峻的挑战。本文将从海量日志系统在优化、部署、监控方向如何更适应业务的需求入手,重点从多种日志系统的架构设计对比;后续调优过程:横向扩展与纵向扩展,分集群,数据分治,重写数据链路等实际现象与问题展开。日志系统架构基准有过项目开...

2019-04-19 16:22:59 340

转载 控制圈复杂度的9种重构技术

一个软件总是为解决某种特定的需求而产生,时代在发展,客户的业务也在发生变化。有的需求相对稳定一些,有的需求变化的比较剧烈,还有的需求已经消失了,或者转化成了别的需求。在这种情况下,软件必须相应的改变。考虑到成本和时间等因素,当然不是所有的需求变化都要在软件系统中实现。但是总的说来,软件要适应需求的变化,以保持自己的生命力。这就产生了一种糟糕的现象:软件产品最初制造出来,是经过精心的设计,具有...

2019-04-19 16:20:30 782

转载 统计SDK这些事(四)订单归因怎么算?

在电商领域中,用户完成订单支付才能算一次完整的产品体验,这样的用户也才是产品的目标用户。而衡量订单的来源是优化市场外部渠道投放、内部策略优化的重要点。 外部来源指在应用外部的广告来源、搜索引擎来源、app的下载渠道等,主要是市场与渠道部门关心的核心维度;内部来源指在应用内部的运营活动、搜索、推荐等不同产品模块,主要是产品与运营关心的核心维度。所以,任何一个订单的来源可以分为外部来源和内部来源,...

2019-04-19 16:13:40 1087

转载 Kafka解惑之时间轮(TimingWheel)

Kafka中存在大量的延迟操作,比如延迟生产、延迟拉取以及延迟删除等。Kafka并没有使用JDK自带的Timer或者DelayQueue来实现延迟的功能,而是基于时间轮自定义了一个用于实现延迟功能的定时器(SystemTimer)。JDK的Timer和DelayQueue插入和删除操作的平均时间复杂度为O(nlog(n)),并不能满足Kafka的高性能要求,而基于时间轮可以将插入和删除操作的时间...

2019-04-19 16:10:15 504

转载 微服务架构实践(API Gateway)

在微服务架构风格中,一个大应用通常会被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系,也就是说这些小系统可以拥有自己的数据库,框架甚至语言等,这些小系统通常以提供 Rest Api 风格的接口来被 H5, Android, IOS 以及第三方应用程序调用。我们通常需要在一个界面上展示很多数据,这些数据可能来自于不同的微服务中,比如在一个电商系统中,查看一个商品详情页,这个商品...

2019-04-18 17:32:01 493

转载 聊聊 隐式转换

工作过程中会遇到比较多关于隐式转换的案例,隐式转换除了会导致慢查询,还会导致数据不准。本文通过几个生产中遇到的案例来。基础知识关于比较运算的原则,MySQL官方文档的描述: https://dev.mysql.com/doc/refman/5.6/en/type-conversion.html如果 判断符号左右两边有一个为NULL,结果就是null,除非使用安全的等值判断 <=&gt...

2019-04-18 17:28:30 212

转载 UX专家如何做设计评审?来看这份深度总结!

一、什么是「设计评审」?定义:设计评审是一种可用性测查工具,通常由一个评审员审查设计方案中的可用性问题。「设计评审」一词颇为广义,涉及数种可用性测查方法,且每一种的运用因人(评审员)而异、因评审目的而异。常见的设计评审方法有:启发式评估(Heuristic Evaluation)。启发式评估的标准是设计方案需遵循一套设计原则,比如尼尔森十大可用性原则。独立设计准则(Standalone ...

2019-04-18 17:27:15 714

转载 聊一聊顺序消息

当我们说顺序时,我们在说什么?日常思维中,顺序大部分情况会和时间关联起来,即时间的先后表示事件的顺序关系。比如事件A发生在下午3点一刻,而事件B发生在下午4点,那么我们认为事件A发生在事件B之前,他们的顺序关系为先A后B。上面的例子之所以成立是因为他们有相同的参考系,即他们的时间是对应的同一个物理时钟的时间。如果A发生的时间是北京时间,而B依赖的时间是东京时间,那么先A后B的顺序关系还成立...

2019-04-18 17:25:06 216

转载 浅谈web网站架构演变过程

前言    我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。该系统具备的功能:用户模块:用户注册和管理商品模块:商品展示和管理交易模块:创建交易和管理阶段一、单机构建网站  网站的初期,我们经常会在单机上跑我们所有的程序和软件。此时我们使用一个容器,如tomcat、jetty、jboos,然后直接使用JSP/servlet技术,或者使用一些开源...

2019-04-18 17:17:31 136

转载 【技术分享】Tomcat基线安全

01前言前几天@wilson师傅要测试线上命令监控功能,将我写的java-sec-code(https://github.com/JoyChou93/java-sec-code) 应用打包到线上的Tomcat进行命令执行测试,想到公司发布系统是在Tomat上运行的Java应用,所以去评估了公司发布系统的安全问题。结果发现一个很严重的安全漏洞,觉得有必要对Tomcat的安全配置进行总结和说明。...

2019-04-18 17:13:15 1276

转载 探究 | Elasticsearch不支持事务有什么好的弥补方案吗?

1、问题源自星球同学的提问:es如何与hive或mysql结合使用?es不支持事务有什么好的弥补方案吗?2、事务的核心概念如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下ACID四个特性:原子性(Atomicity)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,一致性(Consistency)一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态...

2019-04-18 17:11:29 1040

转载 大众点评账号业务高可用进阶之路

引言在任何一家互联网公司,不管其主营业务是什么,都会有一套自己的账号体系。账号既是公司所有业务发展留下的最宝贵资产,它可以用来衡量业务指标,例如日活、月活、留存等,同时也给不同业务线提供了大量潜在用户,业务可以基于账号来做用户画像,制定各自的发展路径。因此,账号服务的重要性不言而喻,同时美团业务飞速发展,对账号业务的可用性要求也越来越高。本文将分享一些我们在高可用探索中的实践。衡量一个系统的...

2019-04-18 17:10:07 134

转载 Git使用中的一些奇技淫巧

如果我不说奇技淫巧,还会点进来吗? 哈哈哈Git作为当今最流行的分布式代码版本管理系统,它的出现改变了软件的开发流程,大大地提高了开发流畅度。本人使用Git也有一段时间了,一直都只是使用一些最最基本的几个命令,对于不复杂的代码工程来说,我觉得已经够用了。命令别名平时不太用GUI,都是在IDEA中直接敲命令进行相关操作,觉得命令行相对于GUI来说效率还是要高一些,一开始老老实实的敲完整的命...

2019-04-18 17:08:22 185

转载 以开发的视角做设计

简评:面对完全不一样的媒介,设计师们会有不一样的目标,也会使用不一样的手法进行设计。 比如说一名 UI 设计师与平面设计师的最大区别,大概就是在于 UI 设计师能够以开发的视角来做设计。UI 这个词或许听起来非常新潮,但是 User Interface 这个词组及其含义其实很早就已经出现了。古时候的设计师使用 GIMP 对用户界面进行设计,后来我们使用 Photoshop 进行这项工作,而现我...

2019-04-17 16:43:31 157

转载 Java数据库连接池的比较和前瞻

主流数据库连接池常用的主流开源数据库连接池有C3P0、DBCP、Tomcat Jdbc Pool、BoneCP、Druid等C3p0开源的JDBC连接池,实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate、Spring等。单线程,性能较差,适用于小型系统,代码600KB左右。DBCP (Database Connection P...

2019-04-17 16:41:55 122

转载 电商平台备战促销季的运维秘诀——高可用服务层

高可用设计是互联网系统架构的基础之一,以天猫双十二交易数据为例,支付宝峰值支付次数超过 8 万笔。大家设想一下,如果这个时候系统出现不可用的情况,那后果将不可想象。而解决这个问题的根本就是服务层的高可用。什么是服务层众所周知,服务层主要用来处理网站业务逻辑的,是大型业务网站的核心。比如下面三个业务系统就是典型的服务层,提供基础服务功能的聚合用户中心:主要负责用户注册、登录、获取用户用户信...

2019-04-17 16:40:35 129

转载 电商平台备战促销季的运维秘诀——高可用服务层

高可用设计是互联网系统架构的基础之一,以天猫双十二交易数据为例,支付宝峰值支付次数超过 8 万笔。大家设想一下,如果这个时候系统出现不可用的情况,那后果将不可想象。而解决这个问题的根本就是服务层的高可用。什么是服务层众所周知,服务层主要用来处理网站业务逻辑的,是大型业务网站的核心。比如下面三个业务系统就是典型的服务层,提供基础服务功能的聚合用户中心:主要负责用户注册、登录、获取用户用户信...

2019-04-17 16:40:35 94

转载 唯享·技|亿级网关janus性能优化与jvm调优实践

本文根据蔡磊于唯品会“唯享·技”分享会2018年6月9日上海场分享内容整理而成。“唯享·技”是唯品会对外分享的平台。希望以此平台分享唯品会的技术研究案例与实践的结果,也能听到更多技术方向上的干货分享。唯有分享可以让技术的脚步更快,享受技术钻研的乐趣,在此让我们听见技术流~本文讲师蔡磊任职于唯品会基础架构服务化团队,负责API Gateway/Reverse Proxy的设计与开发,性能...

2019-04-17 16:39:15 1071

转载 binlog2sql实现MySQL误操作的恢复

对于MySQL数据库中的误操作删除数据的恢复问题,可以使用基于MySQL中binlog做到类似于闪回或者生成反向操作的SQL语句来实现,是MySQL中一个非常实用的功能。原理不难理解,基于MySQL的row格式的binlog中,记录历史的增删改SQL信息,基于此解析出来对应的SQL语句(回滚的话就是反向的SQL语句)。在格式为binlog格式为row的日志模式下,binlog中的内容记录了数...

2019-04-17 16:37:48 127

转载 五个常见问题,带你从心理学的视角重新理解

引言大脑发育是匀速的吗?自由意志决定了我们的行为吗?贫穷的危害只是物质的匮乏吗?……「得到」作者刘嘉老师,挑选了生活中我们常会思考的五个问题,带你用心理学的视角重新审视。什么影响了我们对一件物品的评价?结论:当个人一旦拥有某件物品,他对这件物品价值的评价,会比未曾拥有时显著增加。这在心理学上,叫作“禀赋效应”。示例:失忆症患者排序实验心理学家给失忆症患者六幅画,让他根据喜好给六幅...

2019-04-17 16:36:20 292

转载 日订单峰值破40万!58速运订单调度系统架构大解密

讲师介绍胡显波,58到家技术经理/58速运后端架构总负责人。14年7月加入58到家,先后负责58到家APP、58小时工、58美甲等,见证了58到家飞速发展。14年11月负责58速运整体业务,带领团队小伙伴支撑了速运业务日订单从0~50W的飞速增长。今天很荣幸给大家介绍58速运从艰苦创业到成为同城货运行业领头人的整个系统演进过程。简单来说我们的业务是做同城货运,比如您去买一个大型家具,自己的家...

2019-04-17 16:35:03 387

转载 高级的 Redis Java客户端 - Lettuce

前言Spring Boot 2.0中 Redis 客户端驱动现在由 Jedis变为了 Lettuce,这是随意的根据喜好的决定,还是有技术上的原因呢?Lettuce 的确有很多优秀的特性,例如:基于 netty,支持事件模型支持 同步、异步、响应式 的方式可以方便的连接 Redis Sentinel完全支持 Redis ClusterSSL 连接Streaming APIC...

2019-04-17 16:27:34 1415

转载 千万级调用量微服务架构实践

电商是促销拉动式的场景,也是价格战驱动的场景。618和双11都是典型的促销活动。其实都是在抢用户、扩市场占有率。在这样的场景之下,对秒杀、抢购是很热衷的玩法。促销式的拉动对系统的挑战是什么呢?可以从上图里看到:对高可用性的要求是非常高的,需要99.99%的高可用性。快速迭代对对系统容性的要求很高,从几万单变成几十万单、百万单,架构上不能影响快速迭代,所以有空中加油或者是高速公路换轮胎的说法。...

2019-04-17 16:24:49 178

转载 高效客户端持续集成实践之路

背景敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。闲鱼目前采用泳道任务模式进行迭代开发,开发周期是两周一个版本,发版频率比较高,并行开发的业务需求又很多,怎么才能高效的迭代开发?测试资源相对紧缺,如何保证客户端的研发质量?于此同时,迭代过程中,构建、集成以及测试都需要人工干预,沟通成本和出错概率都比较高。如何有效的解决上面这些问题?首先想到的是持续集成,能够做到自动化...

2019-04-16 16:20:44 257

转载 教你用python登陆豆瓣并爬取影评

1.去找目标网页并找到所要找的数据一进去网页就条件反射打开开发者工具,很容易就看到了这个1802067651.png鼠标所点的就是我接下来要爬的网站,先看看他的response和请求头之类的信息,他的请求方式时get,response是一个网页结构,这就好办了,我们就可以用正则来匹配出所要的数据,正则还是个很好用的东西,请大家务必要学会啊。那接下来就动手敲代码咯!2.用re+request...

2019-04-16 16:18:26 1310

转载 语义化版本 2.0.0

摘要版本格式:主版本号.次版本号.修订号,版本号递增规则如下:主版本号:当你做了不兼容的 API 修改,次版本号:当你做了向下兼容的功能性新增,修订号:当你做了向下兼容的问题修正。先行版本号及版本编译元数据可以加到“主版本号.次版本号.修订号”的后面,作为延伸。简介在软件管理的领域里存在着被称作“依赖地狱”的死亡之谷,系统规模越大,加入的包越多,你就越有可能在未来的某一天发现自己已...

2019-04-16 16:14:52 81

转载 干货 | 手把手教你iOS自定义视频压缩

作者简介孙龙波,携程内容信息研发部 Native 开发 leader。目前主要负责携程攻略,行程,视频直播等项目的前端开发和团队管理。一、前言随着抖音,快手等APP的迅猛发展,短视频在移动端的地位越来越突出。而视频压缩是视频传输中很关键的一步。本文会通过一个示例引入视频的一些基本概念并做稍微深入的介绍,最终给出在iOS上实现自定义码率和分辨率的视频压缩方案。这篇文章同时也是一个大杂烩,对...

2019-04-16 16:12:17 2756

转载 从知乎[悟空]看一个成熟的Anti-Spam系统演进之路

导读:作弊是互联网应用最常碰见的问题之一。有作弊就有反作弊,如果高效的对作弊内容进行识别,识别后又该如何处理作弊内容,每家公司都有自己的独门绝技。本文作者对知乎反作弊系统的演进进行了介绍,深入剖析了该系统的架构设计和演进历程,十分耐读。Hi there! 距离 2015 年 4 月「悟空」正式与大家见面,已经整整三个年头了。随着知乎的不断发展壮大,过去的一段时间,「悟空」不断面临着新的考验,并...

2019-04-16 16:03:31 294

转载 数据结构(一) 单链表的实现-JAVA

数据结构还是很重要的,就算不是那种很牛逼的,但起码得知道基础的东西,这一系列就算是复习一下以前学过的数据结构和填补自己在这一块的知识的空缺。加油。珍惜校园中自由学习的时光。按照链表、栈、队列、排序、数组、树这种顺序来学习数据结构这门课程把。-WH一、单链表的概念链表是最基本的数据结构,其存储的你原理图如下图所示上面展示的是一个单链表的存储原理图,简单易懂,head为头节点,他不存放任何...

2019-04-16 16:01:13 192

空空如也

空空如也

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

TA关注的人

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