- 博客(102)
- 资源 (279)
- 问答 (4)
- 收藏
- 关注
转载 除了加锁,还有什么方法解决资源竞争的问题?
我能想到的有三种方式:1)原子操作。2)副本。如ThreadLocal、CopyOnWrite等。3)不可变。
2018-04-30 02:07:38 2361
转载 分布式延迟消息队列讨论
很多时候我们会有延时处理一个任务的需求,比如说:2个小时后给用户发送短信。15分钟后关闭网络连接。2分钟后再次尝试回调。下面我们来分别探讨一下几种实现方案:Java中的DelayQueueJava中的DelayQueue位于java.util.concurrent包下,本质是由PriorityQueue和BlockingQueue实现的阻塞优先级队列。放入队列的元素需要实现Delayed接口:pu...
2018-04-30 01:34:48 1097
转载 基于redis的延迟消息队列设计
需求背景用户下订单成功之后隔20分钟给用户发送上门服务通知短信订单完成一个小时之后通知用户对上门服务进行评价业务执行失败之后隔10分钟重试一次类似的场景比较多 简单的处理方式就是使用定时任务 假如数据比较多的时候 有的数据可能延迟比较严重,而且越来越多的定时业务导致任务调度很繁琐不好管理。队列设计目前可以考虑使用rabbitmq来满足需求 但是不打算使用,因为目前太多的业务使用了另外的MQ中间件。...
2018-04-30 01:14:56 696
转载 ZRANGEBYSCORE
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。具有相同 score 值的成员按字典序(lexicographical order)来排列(该属性是有序集提供的...
2018-04-30 01:12:57 1119
转载 关于淘点点面试中碰到的架构问题
摘要: 之前面试淘点点的时候被问倒得一个问题至今牵挂,由于工作环境的限制,我没能接触到一些大数据量的并发工作,也没能有机遇参与复杂系统的设计,而我学习复杂或高并发系统的唯一途径就是阅读源码,惭愧的是,至今也只阅读了Tomcat的部分源码 从事开发工作两年来,从未写过只言片语,俗话说的好”好记性不如烂笔头“,最近心血来潮开始想慢慢写点博文,不仅是知识的积累还是为了若干年后回头看看当年努力...
2018-04-30 01:06:22 167
转载 基于Redis实现延迟队列
背景在后端服务中,经常有这样一种场景,写数据库操作在异步队列中执行,且这个异步队列是多进程运行的,这时如果对同一资源进行写库操作,很有可能产生数据被覆盖等问题,于是就需要业务层在更新数据库之前进行加锁,这样保证在更改同一资源时,没有其他更新操作干涉,保证数据一致性。但如果在更新前对数据库更新加锁,那此时又来了新的更新数据库的请求,但这个更新操作不能丢弃掉,需要延迟执行,那这就需要添加到延迟队列中,...
2018-04-30 01:04:20 817
转载 JDK8新增锁StampedLock详解
1、StampedLock是做什么的?-----》它是ReentrantReadWriteLock 的增强版,是为了解决ReentrantReadWriteLock的一些不足。2、ReentrantReadWriteLock有什么不足之处呢?------》我们都知道,ReentrantReadWriteLock是读写锁,在多线程环境下,大多数情况是读的情况远远大于写的操作,因此可能导致写的饥饿问题...
2018-04-30 00:55:28 1843
转载 Java8对读写锁的改进:StampedLock
该类是一个读写锁的改进,它的思想是读写锁中读不仅不阻塞读,同时也不应该阻塞写。 读不阻塞写的实现思路: 在读的时候如果发生了写,则应当重读而不是在读的时候直接阻塞写! 因为在读线程非常多而写线程比较少的情况下,写线程可能发生饥饿现象,也就是因为大量的读线程存在并且读线程都阻塞写线程,因此写线程可能几乎很少被调度成功!当读执行的时候另一个线程执行了写...
2018-04-30 00:54:39 143
转载 JVM问题列表
JVM问题:https://blog.csdn.net/wanglha/article/category/2640221面试题:http://ifeve.com/questions/
2018-04-30 00:40:49 122
转载 一次应用OOM排查
前段时间系统经常出现OOM,每次出现之后系统会出现各种问题,临时解决方案只能是重启,然后等找到问题后再发布解决。 线上问题日志如下:1Exception in thread "msgWorkTP-811568603-1-thread-6" java.lang.OutOfMemoryError: Java heap space2 3Exception in thread "schedulerFact...
2018-04-30 00:27:46 591
转载 网站流量统计之PV和UV
转自:http://blog.csdn.net/webdesman/article/details/4062069如果您是一个站长,或是一个SEO,您一定对于网站统计系统不会陌生,对于SEO新手来说,统计系统中的一些概念不是很清楚,今天讲讲什么是PV和UV! 网站流量统计之UV(Unique Visitor):独立访客,将每个独立上网电脑(以cookie为依据)视为一位访客,一天之内(00:0...
2018-04-29 23:49:07 2171 1
转载 网站PV、UV以及查看方法(转载)
一、名词解释PV:PV 是Page Views的缩写,即页面浏览量,用户每一次对网站中的每个网页访问均被记录一次。注意,访客每刷新一次页面,pv就增加一次。UV:UV是Unique Visitor的缩写,即独立访客数。指访问某个站点的不同IP地址的人数。在同一天的00:00-24:00内,uv只记录第一次进入网站的具有独立IP的访问者,在同一天内再次或多次访问该网站则不计数。IP:一个独立IP访问...
2018-04-29 23:48:08 23289 1
转载 网站统计IP PV UV实现原理
网站流量统计可以帮助我们分析网站的访问和广告来访等数据,里面包含很多数据的,比如访问试用的系统,浏览器,ip归属地,访问时间,搜索引擎来源,广告效果等。原来是一样的,这次先实现了PV,UV,IP三个重要指标的统计。 PV(访问量):Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次。 UV(独立访客):Unique Visitor,一般使用cookie标记,访问您...
2018-04-29 23:29:29 2325
转载 pvuv统计设计
一、背景在考拉先生公司做的第一个项目是进行统计pvuv。通过一定的规则提取nginx日志文件来进行统计。二、第一个版本一开始做的是统计唯品会的pvuv统计,观察流量。主要设计图如下:很简单,将每天唯品会的广告的pvuv统计好,然后写进excel。然后邮件定时发送给需求人员。三、第二个版本统计完唯品会之后,接到新的需求是统计小程序的pvuv。不废话,上流程图。跟第一个版本不同的是,所有的统计数据会先...
2018-04-29 23:28:42 4909
转载 PV、UV、访问次数、跳出率、转化率、平均访问时长
1. 什么是展现量、点击量、点击率 在百度推广后台可以看到消费、平均价格、点击、展现、点击率、千次展现费用等数据,这些数据是你全面评估推广效果、深入开展推广优化的基础。 在网民搜索查询时,如果您账户内符合网民搜索需求的关键词被触发,该关键词所对应的创意将出现在搜索结果页,称之为关键词和创意的一次展现。一段时间内您获得的展现次数称之为 “展现量”。展现量体现了你的关键词质量度和创意的好...
2018-04-29 23:25:59 16177
转载 后台添加订单拆分(根据供应商)?
作者:伯尘链接:https://www.zhihu.com/question/24428398/answer/263674701来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。拆单分为电商平台的前端拆单与商家后端ERP拆单,具体的拆单规则应该是属于需求文档级别了,你懂得! 而且也跟你自身的系统架构有关,所以我在这大致说下方向,给点提示。 一、电商平台前端拆单:(按业务...
2018-04-29 20:30:16 1997
转载 分库分表的优缺点
1. 按照哈希的方式优点:数据散列比较平均,单库单表访问压力分布比较均匀缺点:预先需要做好容量规划,扩容方面不容易,需要重新进行数据hash迁移适用场景:数据变更频繁,并发访问量比较高的情况下,可以利用多台机器将访问压力均匀分布,合理利用资源2. 按时间段或者按ID段进行划分优点:可以持续扩容,降低单表压力缺点:有时候业务数据上,存在着一部分的旧数据,但是这部分数据很少使用到,基于这样的分库分表的...
2018-04-29 16:15:53 9330
转载 Java单链表基本操作(十)--判断单链表是否有环并输出环长度以及环的入口节点
本文解决三个问题:1.单链表是否有环? 2.有则输出环的长度? 3.找到环的入口节点?分析: 定义两个指针fast 和slow,fast每次向后移动两个节点,slow每次想后移动一个节点。 1.如果没有环,则fast首先到达链表结尾; 2.链表有环的情况下:fast与slow两次相遇,slow中间走过的节点处即为环的长度; 3.找环的入口节点稍微复杂点,有如下的推导过程:相遇的时候,slow共移动...
2018-04-29 00:23:10 871
转载 如何判断链表中是否有环
今天面试被问住了,很惭愧啊,回来上网查了一下思路。自己写了点程序。1.如何判断是否有环?如果有两个头结点指针,一个走的快,一个走的慢,那么若干步以后,快的指针总会超过慢的指针一圈。2.如何计算环的长度?第一次相遇(超一圈)时开始计数,第二次相遇时停止计数。3.如何判断环的入口点:碰撞点p到连接点的距离=头指针到连接点的距离,因此,分别从碰撞点、头指针开始走,相遇的那个点就是连接点。为什么呢?需要一...
2018-04-28 23:38:35 166
转载 ElasticSearch位置搜索
在ElasticSearch中,地理位置通过geo_point这个数据类型来支持。地理位置的数据需要提供经纬度信息,当经纬度不合法时,ES会拒绝新增文档。这种类型的数据支持距离计算,范围查询等。在底层,索引使用Geohash实现。1、创建索引PUT创建一个索引cn_large_cities,mapping为city:{ "mappings": { "city": { ...
2018-04-28 16:41:05 438
转载 Elasticsearch地理位置总结
更多内容请参考 : https://www.felayman.com 翻译版本:https://es.xiaoleilu.com/310_Geopoints/00_Intro.html 官方原文:https://www.elastic.co/guide/en/elasticsearch/guide/current/geoloc.html本文只是针对这些内容通过具体的例子用java来实现其具体细节,...
2018-04-28 16:39:04 536
转载 leetcode算法3_最长无重复子串长度
题目给定一个字符串,找到最长子串的长度,而不重复字符。例子给定“abcabcbb”,答案是“abc”,长度为3。给定“bbbbb”,答案是“b”,长度为1。给定“pwwkew”,答案是“wke”,长度为3.请注意,答案必须是子字符串,“pwke”是子序列而不是子字符串。思路利用滑动窗口思想,滑动窗口内的字符将不会重复,滑动窗口利用两个索引i,j分别指向窗口的前后界限,通过分别移动i,j指针来寻求最...
2018-04-28 00:41:14 5951
转载 算法(十)-最长无重复字符子串
【题目】:求一个字符串中不重复字符的最长子串,如字符串“abacdefgafg”,最长的不重复的子串为“acdefg”,长度为6,当有两个长度相同的字符串,输出第一个最长的字符子串。基本算法+Hash最直接的方法就是遍历每个字符起始的子串,辅助hash,寻求最长的不重复子串,时间复杂度为O(n^2),n为字符串的长度。public String getLNRS(String str) { ...
2018-04-28 00:40:05 3140
转载 canal和otter的高可靠性分析
一般来说,我们对于数据库最主要的要求就是:数据不丢。不管是主从复制,还是使用类似otter+canal这样的数据库同步方案,我们最基本的需求是,在数据不丢失的前提下,尽可能的保证系统的高可用,也就是在某个节点挂掉,或者数据库发生主从切换等情况下,我们的数据同步系统依然能够发挥它的作用–数据同步。本文讨论的场景是数据库发生主从切换,本文将从源码的角度,来看看otter和canal是如何保证高可用和高...
2018-04-27 23:39:46 2798
转载 Least Frequently Used (LFU) LinkedHashMap
LFU实现:import java.util.LinkedHashMap;import java.util.Map;public class LFUCache { class CacheEntry { private String data; private int frequency; // default constru...
2018-04-27 15:08:24 917
转载 一个数组的值先从小到大递增后从大到小递减,找出最大的值
问题:给定一个数组,其值先从小到大递增后从大到小递减,找出最大的值。思路:最简单的办法就是从第二个值开始,判断是否满足 A[i] > A[i-1] && A[i] > A[i+1]. 如果满足,i 就是那个最大值的下标。该算法复杂度为O(n).我们可以改进这种算法,因为这个数组是排好序的,所以我们可以利用二分查找的思想,更快速的找到最大值,时间复杂度为O(lg n)。二...
2018-04-26 17:50:36 4419
转载 算法 汉诺塔-java详解
第一次看到这个算法时,很懵逼,是在栈那里。想了半天没想到半点跟栈有关系的解法。最后看了答案,是用的递归。但是看了答案还是很懵逼,下面就是博主自己对汉诺塔的一些了解。有三根木桩,第一根上有n个盘子,最底层的盘子最大,最上层的盘子最小。汉诺塔问题就是将所有的盘子从第一根木桩开始,以第二根木桩为桥梁,全部搬到第三根木桩。不过在搬动时,尚须遵守以下游戏规则:1、每次只能从最上面移动一个盘子(乍一看,尼玛还...
2018-04-26 11:54:58 553
转载 Java递归算法——汉诺塔问题
123456789101112131415161718192021222324252627//=================================================// File Name : Tower_demo//--------------------------------------------------------------------...
2018-04-26 11:26:43 339
转载 一致性Hash问题总结
作者:陈章义链接:http://www.zhihu.com/question/39311007/answer/80724939来源:知乎著作权归作者所有,转载请联系作者获得授权。特别是当memchache的节点很多时,除非类似于算md5,否则很难保证不碰撞。不冲突的hash算法是不存在的, 只要虚拟节点够多, 保证在概率上每个真实节点的负载是相等的就好了。存在多个memchache客户端访问同一个...
2018-04-25 23:11:59 1662
转载 对一致性Hash算法,Java代码实现的深入研究
一致性Hash算法关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法、一致性Hash算法的算法原理做了详细的解读。算法的具体原理这里再次贴上:先构造一个长度为232的整数环(这个环被称为一致性Hash环),根据节点名称的Hash值(其分布为[0, 232-1])将服务器节点放置在这个Hash环上,...
2018-04-25 20:41:17 112
转载 谈谈对Canal(增量数据订阅与消费)的理解
概述canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了mysql(也支持mariaDB)。起源:早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变...
2018-04-25 20:35:11 1014
转载 Motan
12Motan属于服务治理型框架。 RPC框架目前可以划分为两类,一类以Thrift,gRPC为代表的跨语言型,其特点是支持跨语言的RPC调用,通过加一层装换为中间语言,实现跨语言调用,另一类是服务治理型。相比于Dubbo,Motan在支持相同功能的同时,减少了部分扩展特性.在序列化方式上,Motan只支持Heesian和fastJson,注册中心Motan只支持zookeeper和Consul,...
2018-04-24 20:41:02 1045
转载 [面试题]在一个先增长后减小的数组中找到最大值
题目如下:Given an array of integers. Find a peak element in it. An array element is peak if it is larger than its neighbors. For corner elements, we need to consider only one neighbor. For example, for in...
2018-04-24 20:33:21 3155
原创 为什么CMS GC时出现Concurrent Mode Failure
并发收集器(concurrentcollector)指的是回收年老代和持久代时,采用多个线程和应用线程并发执行,减少应用停顿时间,但如果参数设置不当,容易出现Concurrent ModeFailure现象,此时JVM将采用停顿的方式进行full gc,整个gc时间相当可观,完全违背了采用CMS GC的初衷。 出现此现象的原因主要有两个:一个是在年老代被用完之前不能完成对无引用对象的回收;一...
2018-04-22 22:31:49 1848
转载 Java GC收集器配置说明
根据Java GC收集器具体分类,我们可以看出JVM根据需求不同提供了三种选择:串行收集器、并行收集器、并发收集器。 串行收集器只适用于小数据量的情况,我们主要了解一下并行收集器和并发收集器。默认情况下,JDK5.0以前都是使用串行收集器,如果需要使用其他收集器需要在启动的是时候加入相应的参数。JDK5.0以后,JVM会根据当前系统的配置进行判断。 我们先了解一下什么是并行和并发? 并行:...
2018-04-22 22:13:33 158
转载 -XX:CMSInitiatingOccupancyFraction=70 和-XX:+UseCMSInitiatingOccupancyOnly
CMS GC要决定是否在full GC时做压缩,会依赖几个条件。其中, 第一种条件,UseCMSCompactAtFullCollection 与 CMSFullGCsBeforeCompaction 是搭配使用的;前者目前默认就是true了,也就是关键在后者上。 第二种条件是用户调用了System.gc(),而且DisableExplicitGC没有开启。 第三种条件是young gen报告接下...
2018-04-22 18:01:30 37505
转载 JVM实用参数(七)CMS收集器
HotSpot JVM的并发标记清理收集器(CMS收集器)的主要目标就是:低应用停顿时间。该目标对于大多数交互式应用很重要,比如web应用。在我们看一下有关JVM的参数之前,让我们简要回顾CMS收集器的操作和使用它时可能出现的主要挑战。就像吞吐量收集器(参见本系列的第6部分),CMS收集器处理老年代的对象,然而其操作要复杂得多。吞吐量收集器总是暂停应用程序线程,并且可能是相当长的一段时间,然而这能...
2018-04-22 17:42:14 102
转载 JVM调优——之CMS 常见参数解析
最近在学习使用CMS这个GC,这里记录下常用的参数。1. UseCMSCompactAtFullCollection 与 CMSFullGCsBeforeCompaction 有一点需要注意的是:CMS并发GC不是“full GC”。HotSpot VM里对concurrent collection和full collection有明确的区分。所有带有“FullCollection”字样...
2018-04-22 17:41:17 3233
转载 Java之美[从菜鸟到高手演练]之atomic包的原理及分析
第一组AtomicBoolean,AtomicInteger,AtomicLong,AtomicReference这四种基本类型用来处理布尔,整数,长整数,对象四种数据,其内部实现不是简单的使用synchronized,而是一个更为高效的方式CAS (compare and swap) + volatile和native方法,从而避免了synchronized的高开销,执行效率大为提升。https...
2018-04-21 23:58:10 142
转载 Zookeeper已经分布式环境中的假死脑裂
Zookeeper简介在上班之前都不知道有这样一个东西,在开始说假死脑裂之前先说说Zookeeper吧。Zookeeper zookeeper是一个分布式应用程序的协调服务。它是一个为分布式应用提供一致性服务的软件,提供的性能包括:配置维护、名字服务、分布式同步、组服务等。 zookeeper是以Fast Paxos算法为基础,paxos算法存在活锁的问题,即当有多个proposer交错提交时,有...
2018-04-21 23:48:46 795
mariadb-5.5.34-winx64.zip
2018-05-12
canal.deployer-1.0.25.tar.gz
2018-05-12
mariadb-10.3.6-winx64.zip
2018-05-09
canal--mysql数据库binlog的增量订阅&消费组件
2018-05-08
redis2.8 windows 64
2018-04-16
DevCenter--Cassandra
2018-01-17
指令集时钟周期
2017-12-21
rabbitmq-server-windows-3.6.12.zip
2017-10-30
R-3.4.1(R语言sdk)
2017-08-23
RStudio-1.0.153
2017-08-23
LuaForWindows
2017-06-21
SwitchHosts
2017-02-22
erlang19安装包
2016-12-02
alibaba-otter
2016-09-30
erlang 18-release
2015-11-19
haproxy-1.5.12
2015-08-29
redis-2.4.5-win32-win64.zip
2014-11-25
mariadb-10.0.7-winx64.zip
2018-05-09
弱弱问下,静态AOP到底指什么?
2015-05-08
spring quartz定时器任务时间超过定时器时间间隔,任务中断
2015-05-06
定时器退款的极端情况,该如何解决
2015-05-06
Dubbo 好处,优点是什么?
2015-04-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人