
Java技术专家
小雷FansUnion
懂商业的技术合伙人。个人微信:FansUnion
微信订阅号:XiaoLeiFansUnion。
展开
-
ElasticSearch入门-HelloWorld版CRUD,Http Rest访问,elasticsearch,elasticsearch-rest-high-level-client
接着上1篇ES,SpringData,SpringBoot,一些小坑和阶段性总结https://blog.youkuaiyun.com/FansUnion/article/details/102799101一、概述1、放弃SpringBoot版本,自动引入各种问题,也没看出啥优势。2、放弃SpringData,ES封装CrudRepository之类的封装,不是ES未来的方向...原创 2019-10-29 20:29:14 · 499 阅读 · 0 评论 -
一个主线程下有多个子线程任务,主线程必须在100秒内将子线程执行的集合结果进行处理返回
个人记录:2018年,工作的第6到7个年头。重点研究自己不太擅长的技术:分布式、高并发、大数据量、数据库优化、高性能、负载均衡等。刷题是一种态度,是一种好习惯。我刷题,我骄傲。题目:一个主线程下有多个子线程任务,主线程必须在100秒内将子线程执行的集合结果进行处理返回,子线程如果在100秒内没有执行完停止执行。写了3个例子,用Future、FutureTask、ThreadPoolExecutor...原创 2018-03-21 17:48:15 · 1560 阅读 · 0 评论 -
游戏里经常有涉及用户排行榜(金币消费排行榜),怎么设计一个良好的排行榜。
个人记录:2018年,工作的第6到7个年头。重点研究自己不太擅长的技术:分布式、高并发、大数据量、数据库优化、高性能、负载均衡等。刷题是一种态度,是一种好习惯。我刷题,我骄傲。题目:游戏里 经常有涉及 用户排行榜(金币消费排行榜),怎么设计一个良好的排行榜。诸如 几千万的用户量, 每个用户消费金币的频率也比较高。 排行榜 从数据采集 到 排行 一整套下来。有什么样的设计方案。问题出处:http:...原创 2018-03-21 16:13:53 · 3406 阅读 · 0 评论 -
经常看到url中很长的一串请求参数,为什么不采用post方式?
个人记录:2018年,工作的第6到7个年头。重点研究自己不太擅长的技术:分布式、高并发、大数据量、数据库优化、高性能、负载均衡等。刷题是一种态度,是一种好习惯。我刷题,我骄傲。题目:经常看到url中很长的一串请求参数,为什么不采用post方式?出处:http://ifeve.com/question/%e7%bb%8f%e5%b8%b8%e7%9c%8b%e5%88%b0url%e4%b8%ad%...原创 2018-03-21 12:14:51 · 3907 阅读 · 0 评论 -
正解:有3个线程ABC。按照ABC来运行(A线程输出A,B线程输出B,C线程输出C,以此类推,循环输出)。
个人记录:2018年,工作的第6到7个年头。重点研究自己不太擅长的技术:分布式、高并发、大数据量、数据库优化、高性能、负载均衡等。刷题是一种态度,是一种好习惯。前一篇尝试解决ABC按照顺序输出,没能搞定,今天研究了下网友的代码、思路提示,成功搞定。题目:有3个线程ABC。按照ABC来运行(A线程输出A,B线程输出B,C线程输出C,以此类推,循环输出)。实现方法1: 有个网友给了点提示:用 Re...原创 2018-03-21 11:37:01 · 3301 阅读 · 1 评论 -
有3个线程ABC。按照ABC来运行(A线程输出A,B线程输出B,C线程输出C,以此类推,循环输出)。
个人记录:2018年,工作的第6到7个年头。重点研究自己不太擅长的技术:分布式、高并发、大数据量、数据库优化、高性能、负载均衡等。刷题是一种态度,是一种好习惯。有3个线程ABC。按照ABC来运行(A线程输出A,B线程输出B,C线程输出C,以此类推,循环输出)。就是线程之间的协作。请问咋做呢?这种情况是只用一个锁来实现可以吗?问题出处:http://ifeve.com/question/%e6%9c...原创 2018-03-20 19:56:03 · 2150 阅读 · 1 评论 -
面试题:mysql处理什么数量级的数据时,性能会急剧下降。
个人记录:2018年,工作的第6到7个年头。重点研究自己不太擅长的技术:分布式、高并发、大数据量、数据库优化、高性能、负载均衡等。刷题是一种态度,是一种好习惯。对这个问题,目前没啥见解。在未来的工作中,再不断加深对mysql的学习。--------------------------------------面试问题,mysql处理什么数量级的数据时,性能会急剧下降。。。。当时脱口而出。。几百万。。...转载 2018-03-20 16:11:43 · 12622 阅读 · 3 评论 -
MySQL存储引擎
这种问题,学院派的典型。工作中,几乎就用到InnoDB,MyISAM了解就行了。其它的,完全没用过。看了下其它的,也没发现有啥实质作用。比如Memory存储到内存,系统挂了,不就完蛋了?为啥不用Redis呢?MySQL InnoDB+Redis可以替代MySQL Memory?CSV,文件存储是CSV格式。没看到有啥特殊作用。懒得去记这些破玩意。--------------------------...转载 2018-03-20 15:21:42 · 392 阅读 · 0 评论 -
京东面试题:Java中 ++i 的操作是线程安全的么?为什么?如何使其线程安全呢?
相关文章你真的了解volatile关键字吗?http://blog.youkuaiyun.com/FansUnion/article/details/79495080面试题:为什么最后两行没有运行?http://blog.youkuaiyun.com/FansUnion/article/details/79625308Java并发编程之CAS http://blog.youkuaiyun.com/FansUnion/article/...转载 2018-03-20 14:52:52 · 6070 阅读 · 6 评论 -
面试题:为什么最后两行没有运行?
个人记录:2018年,工作的第6到7个年头。重点研究自己不太擅长的技术:分布式、高并发、大数据量、数据库优化、高性能、负载均衡等。刷题是一种态度,是一种好习惯。问题源头为什么最后两行没有运行 http://ifeve.com/question/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%9C%80%E5%90%8E%E4%B8%A4%E8%A1%8C%E6%B2%A1%E6%9C...原创 2018-03-20 14:34:13 · 998 阅读 · 2 评论 -
单进程单线程的Redis如何能够高并发
参考文档: (1)http://yaocoder.blog.51cto.com/2668309/888374 (2)http://www.cnblogs.com/syyong/p/6231326.html1、基本原理 采用多路 I/O 复用技术可以让单个线程高效的处理多个连接请求(尽量减少网络IO的时间消耗) (1)为什么不采用多进程或多线程处理?多线程处理可能涉及到锁 多线程处理会涉及到线程切换...转载 2018-03-26 11:13:24 · 985 阅读 · 0 评论 -
我读过的最好的epoll讲解--转自”知乎“
Geek 伪技术宅 首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要从socket...转载 2018-03-26 11:22:33 · 814 阅读 · 0 评论 -
Redis 事务
原文地址:http://www.linkedkeeper.com/detail/blog.action?bid=120Redis 提供的事务机制与传统的数据库事务有些不同,传统数据库事务必须维护以下特性:原子性(Atomicity),一致性(Consistency),隔离性(Isolation),持久性(Durability),简称ACID。我们逐项考察下 Redis 在事务的 ACID 上做出的...转载 2018-04-26 15:53:19 · 752 阅读 · 1 评论 -
深入浅出,五次课程,带您进入数据分析的世界
导读:程序员4大出路:业务专家,全栈开发,技术专家,技术管理。最近,了解了下“数据分析”,觉得也可以作为参考。有兴趣的朋友们,可以看下本篇文章和对应的视频。近些年,对于分布在各个行业的企业来说,「数据」已经逐渐开始扮演越来越重要的角色,成为企业长远发展不可忽视的力量。在数据分析大势之下,作为职场人士的我们已不能置身事外,无论是在企业前端的销售、市场、运营等角色,或是企...原创 2019-09-30 19:04:41 · 595 阅读 · 2 评论 -
Freemarker后台分页,JFinal enjoy后台分页
2个后台分页,仅供参考。FreeMarker后台分页page方法名,url,第2个page 是后台分页对象,里面有 pageNo,totalPage等参数。ageVo { private static Logger log = Logger.getLogger(PageVo.class); public static final Integer DEFAULT_PAGE...原创 2019-08-27 09:32:00 · 522 阅读 · 0 评论 -
一个Web报表项目的性能分析和优化实践(二):MySQL数据库连接不够用(TooManyConnections)问题的一次分析和解决案例
最近,项目中遇到了数据库连接不够的问题。异常信息com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Data source rejected establishment of connection, message from server: "Too many connections"根据更详...原创 2013-10-28 13:01:01 · 5439 阅读 · 2 评论 -
电商架构设计-通过系统和业务拆分,遵循单一职责原则SRP,保障整个系统的可用性和稳定性
个人观察1.通过系统和业务拆分,遵循单一职责原则SRP,保障整个系统的可用性和稳定性。2.单一职责原则SRP,真的很关键,广大程序员需要不断深入理解这个原则。3.架构图是架构师的重要输出,通过图可以直观地看出整个架构思路。本文转载于《程序员》2014年11月刊:电商峰值系统架构设计原文链接:http://www.youkuaiyun.com/article...转载 2016-05-02 12:03:58 · 4708 阅读 · 1 评论 -
快稳炫:电商峰值系统架构三字诀
个人观察1.3个基本要求,低时延,高可用,已扩展2.针对前端、后端、网络传输分别优化3.SOA架构,面向服务架构,系统解耦,用异步代替同步本文转载于《程序员》2014年11月刊:电商峰值系统架构设计原文链接:http://www.youkuaiyun.com/article/2014-11-04/2822459核心思路集中表现为:采用分而治之的思想,大系统小做,小...转载 2016-05-02 11:45:30 · 2396 阅读 · 1 评论 -
个性化推荐的6种方法
个性化推荐,有一些基础的认识,简要总结下。数学和深度学习之类的,不太懂,但不影响做项目。1.人工推荐最常用的方式之一,编辑、运营和领导等角色,推荐什么,用户就看什么。2.分组/聚类推荐根据用户的信息,比如 地域(广东、湖南),给广东人推荐辣食品,大概率 不如 推荐给湖南人推荐卖的好。 用户等级(初级会员、黄金会员),等级高的会员,可能更愿意花钱买贵的商品。 ...原创 2019-02-14 09:20:58 · 5949 阅读 · 0 评论 -
2018项目经验总结
1、大量使用RPC方便业务功能接口化,复用升级较为方便。老代码,直接查库,到处都在查库,不方便维护升级,性能问题到处都是。开发效率偏低。对外合作,直接RPC调用,也方便。2、大量使用Redis大大降低了数据库压力,提升了接口调用性能。托底缓存1个月也是很不错的。3、ElasticSearch数据库适合最底层最准确的数据存储,Redis适合临时缓存,过期自动失效。而ES适合2者...原创 2018-11-02 11:45:19 · 657 阅读 · 1 评论 -
高并发-缓存和缓存失效
最近需要对别的部门提供一个接口,第1版直接查库,第2版增加了Redis缓存。 //具体执行查询 private List<RecommendOuterVo> doQueryRecommendOuterVoList(ServiceAdCondition serviceAdCondition) { //根据参数构造缓存key String ...原创 2018-09-10 19:51:33 · 596 阅读 · 0 评论 -
联合索引命中率问题导致SQL查询效率慢的问题
原文链接:http://www.linkedkeeper.com/detail/blog.action?bid=6执行 MySQL DumpSlow 结果是:1Count: 1358 Time=0.33s (448s) Lock=0.00s (0s) Rows=2.5 (3343)Count:出现次数Time:执行最长时间(累计总耗费时间)Lock:等待锁的时间Rows:发送给客户端的行总数...转载 2018-04-26 16:37:23 · 3309 阅读 · 0 评论 -
java中PriorityQueue优先级队列使用方法
PriorityQueue是个基于优先级堆的极大优先级队列。此队列按照在构造时所指定的顺序对元素排序,既可以根据元素的自然顺序来指定排序(参阅 Comparable),也可以根据 Comparator 来指定,这取决于使用哪种构造方法。优先级队列不允许 null 元素。依靠自然排序的优先级队列还不允许插入不可比较的对象(这样做可能导致 ClassCastException)队列检索操作 poll、...转载 2018-03-20 12:18:02 · 1618 阅读 · 1 评论 -
京东面试题–有一个生成唯一串的需求,并发请求量非常大,该如何实现?
个人记录:2018年,工作的第6到7个年头。重点研究自己不太擅长的技术:分布式、高并发、大数据量、数据库优化、高性能、负载均衡等。京东面试题 – 有一个生成唯一串的需求,并发请求量非常大,该如何实现?多个机器,多个JVM,要生成唯一串,并发量非常大,该如何实现?面试官说,他们是借鉴表锁和行锁实现的。问题源头:http://ifeve.com/question/%e4%ba%ac%e4%b8%9c%...原创 2018-03-20 11:48:57 · 1953 阅读 · 2 评论 -
Java工程师-招聘要求
工作职责: 1、负责后台系统的研发,及时解决项目涉及到的技术问题。 2、参与系统需求分析与设计,负责完成核心代码编写,接口规范制定3、参与后台服务性能效率优化岗位要求: 1、计算机相关专业毕业,有大数据高并发的处理经验,精通spring框架,阅读过spring源码,熟悉其事务机制 2、熟练应用Linux操作系统,熟悉GIT等版本管理软件3、掌握网站访问速度的各种优化方案,并提出优化方案更佳4、掌握...转载 2018-03-09 11:54:12 · 7719 阅读 · 2 评论 -
你真的了解volatile关键字吗?
原文出处: Ruheng一、Java内存模型想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的。Java内存模型规定了所有的变量都存储在主内存中。每条线程中还有自己的工作内存,线程的工作内存中保存了被该线程所使用到的变量(这些变量是从主内存中拷贝而来)。线程对变量的所有操作(读取,赋值)都必须在工作内存中进行。不同线程之间也无法直接访问对方工作内存中的变量,线程间...转载 2018-03-09 11:26:12 · 1100 阅读 · 0 评论 -
Java并发编程之CAS
CAS(Compare and swap)比较和替换是设计并发算法时用到的一种技术。简单来说,比较和替换是使用一个期望值和一个变量的当前值进行比较,如果当前变量的值与我们期望的值相等,就使用一个新值替换当前变量的值。这听起来可能有一点复杂但是实际上你理解之后发现很简单,接下来,让我们跟深入的了解一下这项技术。CAS的使用场景在程序和算法中一个经常出现的模式就是“check and act”模式。先...转载 2018-03-09 10:59:18 · 668 阅读 · 0 评论 -
分布式锁1 Java常用技术方案-Sky_YiBai-博客园
前言: 由于在平时的工作中,线上服务器是分布式多台部署的,经常会面临解决分布式场景下数据一致性的问题,那么就要利用分布式锁来解决这些问题。所以自己结合实际工作中的一些经验和网上看到的一些资料,做一个讲解和总结。希望这篇文章可以方便自己以后查阅,同时要是能帮助到他人那也是很好的。 =======================================================...转载 2018-03-15 10:55:34 · 459 阅读 · 0 评论 -
如何用消息系统避免分布式事务?
前阵子从支付宝转账1万块钱到余额宝,这是日常生活的一件普通小事,但作为互联网研发人员的职业病,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账户并没有增加1万,数据就会出现不一致状况了。上述场景在各个类型的系统中都能找到相似影子,比如在电商系统中,当有用户下单后,除了在订单表插入一条记录外,对应商品表的这个商品数量必须减1吧,怎么保证?!在搜索广告系统中,当用户点击某广告后,除了在点击...转载 2018-03-15 10:53:09 · 280 阅读 · 0 评论 -
TCC和两阶段分布式事务处理的区别
转自:http://www.bytesoft.org/经常在网络上看见有人介绍TCC时,都提一句,”TCC是两阶段提交的一种”。其理由是TCC将业务逻辑分成try、confirm/cancel在两个不同的阶段中执行。其实这个说法,是不正确的。可能是因为既不太了解两阶段提交机制、也不太了解TCC机制的缘故,于是将两阶段提交机制的prepare、commit两个事务提交阶段和TCC机制的try、con...转载 2018-03-15 10:51:21 · 4293 阅读 · 2 评论 -
浅谈分布式锁-张岩-京东
http://www.linkedkeeper.com/detail/blog.action?bid=1023&hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io前言随着互联网技术的不断发展,数据量的不断增加,业务逻辑日趋复杂,在这种背景下,传统的集中式系统已经无法满足我们的业务需求,分布式系统被应用在更多...转载 2018-03-15 10:03:46 · 548 阅读 · 0 评论 -
虚拟IP是什么?
要是单讲解虚拟 IP,理解起来很困难,所以干脆把 动态 IP 、固定 IP 、实体 IP 与虚拟 IP都讲解一下,加深理解和知识扩展实体 IP:在网络的世界里,为了要辨识每一部计算机的位置,因此有了计算机 IP 位址的定义。一个 IP 就好似一个门牌!例如,你要去微软的网站的话,就要去『 207.46.197.101 』这个 IP 位置!这些可以直接在网际网络上沟通的 IP 就被称为『实体 IP ...转载 2018-03-06 19:51:36 · 1054 阅读 · 0 评论 -
虚拟ip实现原理
一直不知道虚拟ip就是通过arp协议实现的,突然恍然大悟的感觉高可用性HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。HA系统是目前企业防止核心计算机系统因故障停机的最有效手段。实现HA的方式,一般采用两台机器同时完成一项功能,比如数据库服务器,平常只有一台机器对外提供服务,另一台机器作为热备,...转载 2018-03-06 19:50:22 · 2148 阅读 · 0 评论 -
数据库事务的四大特性以及事务的隔离级别
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一致性(Consi转载 2017-09-17 17:32:22 · 625 阅读 · 0 评论 -
让您做一个电商平台,您如何设置一个在买家下订单后的”第60秒“发短信通知卖家发货,您需要考虑的是 像淘宝一样的大并发量的订单。
个人记录:2018年,工作的第6到7个年头。重点研究自己不太擅长的技术:分布式、高并发、大数据量、数据库优化、高性能、负载均衡等。问题源头:http://ifeve.com/question/%e5%85%b3%e4%ba%8e%e6%b7%98%e7%82%b9%e7%82%b9%e9%9d%a2%e8%af%95%e4%b8%ad%e7%a2%b0%e5%88%b0%e7%9a%84%e6%9...原创 2018-03-19 12:38:57 · 3787 阅读 · 0 评论 -
淘宝下单部分高并发设计的个人理解
个人记录:2018年,工作的第6到7个年头。重点研究自己不太擅长的技术:分布式、高并发、大数据量、数据库优化、高性能、负载均衡等。原文看起来有点累,简要总结梳理下,7点:1、只处理核心业务部分,通常需要保证事务。生成订单、扣除资金、库存扣减。非核心部分,短信发送、消息通知、销售统计、订单搜索等,通过MQ保证。2、提高数据库事务并发数据库写库,通常只有1个,为了保证数据绝对一致。单个数据库的写库、并...原创 2018-03-19 15:05:22 · 2051 阅读 · 3 评论 -
徐汉彬:Web系统大规模并发——电商秒杀与抢购
摘要:电商的秒杀和抢购,从技术的角度来说,会对Web系统产生巨大的考验。本期《问底》,徐汉彬将带大家关注秒杀和抢购的技术实现和优化,同时,从技术层面揭开,为什么我们总是不容易抢到火车票的原因。【导读】徐汉彬曾在阿里巴巴和腾讯从事4年多的技术研发工作,负责过日请求量过亿的Web系统升级与重构,目前在小满科技创业,从事SaaS服务技术建设。 电商的秒杀和抢购,对我们来说,都不是一个陌生的东西。然而,...转载 2018-03-20 11:14:31 · 455 阅读 · 0 评论 -
mysql处理高并发,防止库存超卖
核心技术点:分布式锁、乐观锁、悲观锁、事务、缓存、队列互联网类系统,总的技术点就那么多,关键还是看业务场景,对技术和业务的理解能力,灵活使用。-----------------------------------------------------------------今天王总又给我们上了一课,其实mysql处理高并发,防止库存超卖的问题,在去年的时候,王总已经提过;但是很可惜,即使当时大家都听...转载 2018-03-20 10:42:25 · 673 阅读 · 0 评论 -
Mysql 存储引擎中InnoDB与Myisam的主要区别
被人问到过这个问题,忘了。我就知道InnoDB和MyISam。其它存储引擎给忘了。继续刷。-------------1, 事务处理innodb 支持事务功能,myisam 不支持。Myisam 的执行速度更快,性能更好。2,select ,update ,insert ,delete 操作MyISAM:如果执行大量的SELECT,MyISAM是更好的选择InnoDB:如果你的数据执行大量的INSE...转载 2018-03-20 10:16:15 · 362 阅读 · 0 评论 -
铁路系统的分库分表设计,分库分表的设计思路让大系统变简单
铁路系统和电商系统,分库分表思路有点差别。学习了。按路线分库。路线是指从 北京到武汉 这种吗?按车次分表。2012年2月12日 D3206 疑问:可以直接按照 车号分库分表吗?3206%16 分库3206%64 分表---------------------------------以铁路的售票系统来说明分库分表对架构的影响。 一、问题:铁路的售票系统的数据量是海量吗? 不是。因为数据量不大,...转载 2018-03-20 10:02:04 · 435 阅读 · 0 评论