自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Redis 的性能幻想与残酷现实

 2011 年,当初选择 Redis 作为主要的内存数据存储,主要吸引我的是它提供多样的基础数据结构可以很方便的实现业务需求。另一方面又比较担心它的性能是否足以支撑,毕竟当时 Redis 还属于比较新的开源产品。但 Redis 官网宣称其是提供多数据结构的高性能存储,我们对其还是抱有幻想的。幻想要了解 Redis 的性能,我们先看看官方的基准性能测试数据,心里有个底。测试前提...

2019-01-30 19:32:41 139

转载 Redis 常见的性能问题和解决方法

1.Master写内存快照,save命令调度rdbSave函数,会阻塞主线程的工作,当快照比较大时对性能影响是非常大的,会间断性暂停服务,所以Master最好不要写内存快照。 2.Master AOF持久化,如果不重写AOF文件,这个持久化方式对性能的影响是最小的,但是AOF文件会不断增大,AOF文件过大会影响Master重启的恢复速度。 3.Master调用BGREWRITEAO...

2019-01-30 19:27:03 355

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

1.  MySql+Memcached架构的问题   实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题:  1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间。  2.Memcach...

2019-01-23 23:18:30 187

转载 redis缓存和mysql数据库同步

解决方案一、对强一致要求比较高的,应采用实时同步方案,即查询缓存查询不到再从DB查询,保存到缓存;更新缓存时,先更新数据库,再将缓存的设置过期(建议不要去更新缓存内容,直接设置缓存过期)。二、对于并发程度较高的,可采用异步队列的方式同步,可采用kafka等消息中间件处理消息生产和消费。三、使用阿里的同步工具canal,canal实现方式是模拟mysql slave和master的同步机...

2019-01-22 21:42:01 417

转载 Redis的那些最常见面试问题

  随笔:经过长达一周的奔波和面试,电话面试,回首今天终于成功的入职了,总共面试了大概10家公司,包括阿里,京东,IBM等等,京东技术过了,学历因为非统招就被pass了,阿里面了2次电话面试就没下文了,估计是我当时最后提问题的时候减分了吧,其他的也有一些offer,不是不想去,就是了无音讯了,眼看年关将近,也由不得我挑挑拣拣了,就直接进了我现在这家公司,主要是感觉公司人不错,薪水这方面也就没有计较...

2019-01-22 21:38:38 183

转载 Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例

“看看星空,会觉得自己很渺小,可能我们在宇宙中从来就是一个偶然。所以,无论什么事情,仔细想一想,都没有什么大不了的。这能帮助自己在遇到挫折时稳定心态,想得更开。”  – 《腾讯传》 本文提纲一、为啥整合 Dubbo 实现 SOA二、运行 springboot-dubbo-server 和 springboot-dubbo-client 工程三、springboot-dubbo...

2019-01-21 23:16:53 197

转载 原来dubbo发布服务如此简单 springboot+dubbo

非常感谢http://blog.csdn.net/hulei19900322/article/details/78106718微服务技术学习 https://www.itkc8.comDubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分业务的架构,使用这种方式可以使各个业务之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是...

2019-01-21 22:59:27 754

转载 vuex初级教程

什么是Vuex? vuex是一个专门为vue.js设计的集中式状态管理架构。状态?我把它理解为在data中的属性需要共享给其他vue组件使用的部分,就叫做状态。简单的说就是data中需要共用的属性。为什么使用Vuex? 如果您不打算开发大型单页应用,使用 Vuex 可能是繁琐冗余的。确实是如此——如果您的应用够简单,您最好不要使用 Vuex。一个简单的 global eve...

2019-01-18 21:20:52 165

转载 CDN(内容分发网络)技术原理

1. 前言  Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加,用户数量也在不断增加,受Web服务器的负荷和传输距离等因数的影响,响应速度慢还是经常抱怨和困扰。解决方案就是在网络传输上利用缓存技术使得Web服务数据流能就近访问,是优化网络数据传输非常有效的技术,从而获得高速的体验和品质保证。  网络缓存技术...

2019-01-16 23:28:42 3670

转载 CDN选择权威指南:兼谈Web性能评测及优化的5个正确姿势

Web性能优化是刚性 “需求”根据2012年的一项数据统计,国外某知名电商网站,页面加载耗时,每慢1秒,一年就会少赚16亿美元(相当于拍摄一部钢铁侠的费用)。现在大家的耐心有多差?如果3秒还没完全加载完,57%的用户已经选择离开。一个慢腾腾的网站,可能会让许多关键的访客和用户失去耐心,造成交易量降低、品牌形象变差,以及更高的“跳出率”。目前看来,无论网站是否提供在线交易的功能和服务,性...

2019-01-16 23:19:12 1177

转载 赚钱宝背后的CDN技术演进

伴随直播逐渐成为日常生活的一部分以及直播玩法的快速更新,用户对低延迟、低卡顿的要求也不断提高,而在复杂的网络条件下开展直播服务势必会遇到诸多挑战,网心科技曾伟纪在LiveVideoStack Meet上分享了星域CDN独创的无限节点等技术,详细介绍从传统直播CDN向无限节点演进过程中关键技术难点的解决方案和经验。  大家好,首先自我介绍一下,我是来自网心科技的曾伟纪,我是在15年公...

2019-01-16 13:01:36 2422

转载 从直播CDN的原理说起,谈如何解决延时和连麦的老难题?

直播的一般流程; CDN的技术原理及架构; CDN直播的技术难点和应对方案; 基于SD-RTN的,针对低延迟、强互动场景的直播技术。  直播的流程 正如上图所示,整个直播流程分为以下几个关键步骤:  主播客户端,将本地采集的视频推送到CDN; CDN对视频流进行缓存以及转发; 观众客户端,拉取CDN中缓存视频流进行...

2019-01-16 12:51:34 1996

转载 云时代必备 CDN 技能包

云时代,为了提升静态资源的加载速度,大伙都是拼了。这促使近些年国内 CDN 的使用逐步普及。而作为一家以图片分享社区为核心业务的公司,图片 CDN 的使用比较多,下面梳理下自己的一些经验。闭门造车,如有勘误,大家多多包涵。主要包括了以下内容: CDN使用背景,图片的分布式存储 CDN 网络原理概述 批量添加、切换 CDN 的步骤和注意事项 多 CDN 切换的...

2019-01-14 22:46:52 158

转载 CDN缓存那些事

1 CDN是什么?谈到CDN的作用,可以用8年买火车票的经历来形象比喻:8年前,还没有火车票代售点一说,12306.cn更是无从说起。那时候火车票还只能在火车站的售票大厅购买,而我所住的小县城并不通火车,火车票都要去市里的火车站购买,而从县城到市里,来回就是4个小时车程,简直就是浪费生命。后来就好了,小县城里出现了火车票代售点,可以直接在代售点购买火车,方便了不少,全市人民再也不用在一个点...

2019-01-14 22:41:05 139

转载 史上最全的CDN内容分发网络实战技巧 -完结

咱们接着上期继续。  CDN有很多的性能指标,也有很多第三方的探测工具或者是系统。那么,客户在接入CDN后可能会担心他们的服务质量怎么样,往往就会借助第三方的探测工具来分析CDN的性能。 上图是常见的几个概念。分几个不同的阶段,比如,DNS解析时间、建连时间、首包时间、SSLL握手时间、下载时间等。每一个指标代表不同的含义,通过每个指标的长短也可以分析出问题点大概是在哪里。...

2019-01-13 22:59:54 1414 1

转载 史上最全的CDN内容分发网络实战技巧

今天来给大家分享下关于 CDN 的东西,以及我自己的一些发现、一些个人的拙见。总共分为 3 个部分:原理、详解、各种坑。  首先说一下 CDN 的基本原理部分,主要分 4 块来描述:CDN 的由来、调度是怎么做的、缓存是什么、关于安全。  最初刚有互联网的时候,带宽用量不多、用户少,并不存在什么问题,后来随着发展,逐渐出现了使用量大、访问缓慢的情况。最初 95 年的...

2019-01-13 22:57:14 855

转载 使用LVS实现负载均衡原理及安装配置详解

    负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。这里主要是学习 LVS 并对其进行了详细的总结记录。一、负载均衡LVS基本介绍    LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director Server上,然后它把用户...

2019-01-11 21:55:28 149

转载 微服务框架-SpringCloud简介

前面一篇文章谈到微服务基础框架,而Netflix的多个开源组件一起正好可以提供完整的分布式微服务基础架构环境,而对于Spring Cloud正是对Netflix的多个开源组件进一步的封装而成,同时又实现了和云端平台,和Spring Boot开发框架很好的集成。Spring Cloud是一个相对比较新的微服务框架,今年(2016)才推出1.0的release版本. 虽然Spring Cloud时间...

2019-01-11 21:52:35 208

转载 数据结构与算法面试题80道

由于这些题,实在太火了。所以,应广大网友建议要求,在此把之前已整理公布的前80题, 现在,一次性分享出来。此也算是前80题第一次集体亮相。 此些题,已有上万人,看到或见识到,若私自据为己有,必定为有知之人识破,付出代价。 所以,作者声明: 本人July对以上所有任何内容和资料享有版权,转载请注明作者本人July出处。向你的厚道致敬。谢谢。 -------...

2019-01-10 19:29:18 7444 1

转载 TCP状态转换图详解

TCP协议的三路握手和四次挥手。如下图所示,TCP通信过程包括三个步骤:建立TCP连接通道(三次握手)、数据传输、断开TCP连接通道(四次挥手)。                                                这里进一步探究TCP三路握手和四次挥手过程中的状态变迁以及数据传输过程。先看TCP状态状态转换图。                        ...

2019-01-10 19:23:17 184

转载 B树、B-树、B+树、B*树 红黑树

http://blog.csdn.net/quitepig/article/details/8041308B树       即二叉搜索树:       1.所有非叶子结点至多拥有两个儿子(Left和Right);       2.所有结点存储一个关键字;       3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;       如:     ...

2019-01-09 21:21:12 152

转载 知名公司的Java面试题

查看不同公司新鲜真实的Java面试题,摘自Glassdoor.com巴克莱投资:假设有一个 getNextparson() 方法返回 Person 对象,Person 类实现了 comparable 接口,现在从文件中读取记录并排序,然后给出前 1000 条记录,纸上作答 答案见Glassdoor 写一个函数,传入 2 个有序的整数数组,返回一个有序的整数数组。 答案见Glassdo...

2019-01-09 21:16:29 163

转载 如果有人让你推荐编程技术书,请叫他看这个列表

这个列表包括了 100 多本经典技术书籍,涵盖:计算机系统与网络、系统架构、算法与数据结构、前端开发、后端开发、移动开发、数据库、测试、项目与团队、程序员职业修炼、求职面试 和 编程相关的经典书籍。本列表综合了伯乐在线网站以往推荐经典书籍文章中的列表,以及在微信和微博中被广泛推荐的好书。虽然已经包括了 100 多本,覆盖的面也比较全,仍然有很多方面需要补充,而且相信还有很多没有被收录的好书。欢...

2019-01-08 22:02:45 120

转载 测试驱动开发之初窥门径

什么是测试驱动开发测试驱动开发是指在编写实现代码之前先写测试代码的开发方式。JUnit的作者Kent Beck说过:编写测试驱动代码的重要原因是消除开发中的恐惧和不确定性,因为编写代码时的恐惧会让你小心试探,让你回避沟通,让你羞于得到反馈,让你变得焦躁不安,而TDD是消除恐惧、让Java开发者更加自信更加乐于沟通的重要手段。TDD会带来的好处可能不会马上呈现,但是你在某个时候一定会发现,这些好处...

2019-01-08 21:58:23 166

转载 贫血领域模型是如何导致糟糕的软件产生

使用贫血领域模型通常被认为是一种反模式,因为它鼓励程序员无意义地重复编写代码。下面我将简短(而琐碎)地用一个例子来阐述这个是如何产生的。我们可以通过细致的规划以及严格的编码规范来避免其发生,但是同样可以获得较好的封装。防止陷入贫血领域模型深坑的难度随项目人数呈指数级增长。我相信所有人对面向对象都有所认识,但我却有趣地发现一些看似毫无意义的小举措却导致了最终一场大灾难。zetaplusa...

2019-01-07 22:46:18 162

转载 什么是N+1查询

在Session的缓存中存放的是相互关联的对象图。默认情况下,当Hibernate从数据库中加载Customer对象时,会同时加载所有关联的Order对象。以Customer和Order类为例,假定ORDERS表的CUSTOMER_ID外键允许为null,图1列出了CUSTOMERS表和ORDERS表中的记录。 以下Session的find()方法用于到数据库中检索所有的Custome...

2019-01-07 22:01:06 732

转载 关于Java并发编程的总结和思考

编写优质的并发代码是一件难度极高的事情。Java语言从第一版本开始内置了对多线程的支持,这一点在当年是非常了不起的,但是当我们对并发编程有了更深刻的认识和更多的实践后,实现并发编程就有了更多的方案和更好的选择。本文是对并发编程的一点总结和思考,同时也分享了Java 5以后的版本中如何编写并发代码的一点点经验。为什么需要并发并发其实是一种解耦合的策略,它帮助我们把做什么(目标)和什么时候做(...

2019-01-06 18:59:53 121

转载 最近5年133个Java面试问题列表

Java 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入。 在我初入职场的时候,类似于 Vector 与 Array 的区别、HashMap 与 Hashtable 的区别是最流行的问题,只需要记住它们,就能在面试中获得更好的机会,但这种情形已经不复存在。如今,你...

2019-01-06 18:58:27 379

转载 Java 面试题:百度前200页都在这里了

基本概念操作系统中 heap 和 stack 的区别 什么是基于注解的切面实现 什么是 对象/关系 映射集成模块 什么是 Java 的反射机制 什么是 ACID BS与CS的联系与区别 Cookie 和 Session的区别 fail-fast 与 fail-safe 机制有什么区别 get 和 post请求的区别 Interface 与 abstract 类的区别 IOC...

2019-01-06 18:52:56 335 1

转载 Java面试题全集(下)

这部分主要是开源Java EE框架方面的内容,包括hibernate、MyBatis、spring、Spring MVC等,由于Struts 2已经是明日黄花,在这里就不讨论Struts 2的面试题,如果需要了解相关内容,可以参考我的另一篇文章《Java面试题集(86-115)》。此外,这篇文章还对企业应用架构、大型网站架构和应用服务器优化等内容进行了简单的探讨,这些内容相信对面试会很有帮助。...

2019-01-06 18:51:47 524 16

转载 Java面试题全集(上)

2013年年底的时候,我看到了网上流传的一个叫做《Java面试题大全》的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对这个所谓的《Java面试大全》进行了全面的修订并重新发布在我的CSDN博客。在修订的过程中,参照了当时JDK最新版本(Java 7)给出了题目的答案和相关代码,去掉了EJB 2.x、JSF等无用内容或过时内容,补...

2019-01-06 18:50:26 215 1

转载 页面缓存那些事

提到文件,操作系统必须解决两个重要的问题。首先是硬盘驱动器的存取速度缓慢得令人头疼(相对于内存而言),尤其是磁盘的寻道性能。第二个是要满足‘一次性加载文件内容到物理内存并在程序间共享’的需求。如果你使用进程浏览器翻看Windows进程,就会发现大约15MB的共享DLL被加载进了每一个进程。我目前的Windows系统就运行了100个进程,如果没有共享机制,那将消耗大约1.5GB的物理内存仅仅用于存放...

2019-01-06 18:47:56 487 7

转载 【看图识算法】这是你见过最简单的 “算法说明书”

快速排序(Quicksort)是基于“分治法”的高效排序算法。随机选择划分元素是避免最坏情况runtime好策略。Bogo排序Bogo排序(Bogo sort)也称为愚蠢排序,是一种简单但效率非常低的排序算法。这个排序算法基于可能性,其原理等同将一堆卡片抛起,落在桌上后检查卡片是否已整齐排列好,若非就再抛一次,直到正确排好序的序列出现为止。公开密匙加密公开密匙加密(Publ...

2019-01-06 18:42:46 223 1

转载 Maven仓库管理-Nexus

@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); @import url(http://www.blogjava.net/CuteSoft_Clien...

2019-01-05 18:46:10 822

转载 Linux编程之《进程/线程绑定CPU》

通常我们在编写服务器代码时,可以通过将当前进程绑定到固定的CPU核心或者线程绑定到固定的CPU核心来提高系统调度程序的效率来提高程序执行的效率,下面将完整代码贴上。  1 /************************************************ 2 * 该例程讲解了进程、线程绑定到固定的cpu核心上运行 3 * 来提高程序运行效率 4 **...

2019-01-05 18:44:28 310

转载 springmvc 注解总结

1、@RequestMapping@RequestMappingRequestMapping是一个用来处理请求地址映射的注解(将请求映射到对应的控制器方法中),可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。RequestMapping请求路径映射,如果标注在某个controller的类级别上,则表明访问此类路径下的方法都要加上其配置的路径;最常用是标注在方法...

2019-01-05 18:29:28 140

转载 整体介绍分布式事务

分布式事务之一:整体介绍分布式事务场景如何设计系统架构及解决数据一致性问题,个人理解最终方案把握以下原则就可以了,那就是:大事务=小事务(原子事务)+异步(消息通知),解决分布式事务的最好办法其实就是不考虑分布式事务,将一个大的业务进行拆分,整个大的业务流程,转化成若干个小的业务流程,然后通过设计补偿流程从而考虑最终一致性。一、基本概念原则真正重要的是满足业务需求,而不是追求抽...

2019-01-05 18:10:51 185

转载 支付宝运营架构中柔性事务指的是什么?

在支付宝架构与技术中对柔性事务有大致的描述:可以看出,柔性事务(遵循BASE理论)是指相对于ACID刚性事务而言的。支付宝所说的柔性事务分为:两阶段型、补偿型、异步确保型、最大努力通知型几种。由于支付宝整个架构是SOA架构,因此传统单机环境下数据库的ACID事务满足了分布式环境下的业务需要,以上几种事务类似就是针对分布式环境下业务需要设定的。其中:1、两阶段型:就是...

2019-01-04 19:05:52 181

转载 最详细的maven教程全攻略之maven中级篇(二)

所有用Maven管理的真实的项目都应该是分模块的,每个模块都对应着一个pom.xml。它们之间通过继承和聚合(也称作多模块,multi-module)相互关联。那么,为什么要这么做呢?我们明明在开发一个项目,划分模块后,导入Eclipse变成了N个项目,这会带来复杂度,给开发带来不便。 为了解释原因,假设有这样一个项目,很常见的Java Web应用。在这个应用中,我们分了几层: Da...

2019-01-04 19:02:58 135

转载 最详细的maven教程全攻略之maven基础片(一)

Maven使用教程一、Maven介绍 我们在开发项目的过程中,会使用一些开源框架、第三方的工具等等,这些都是以jar包的方式被项目所引用,并且有些jar包还会依赖其他的jar包,我们同样需要添加到项目中,所有这些相关的jar包都会作为项目的依赖。通常,一个Java EE项目所依赖的jar包会有很多。然而,这还并非是主要问题,在管理这些jar包过程中,jar包的版本往往是最令人头疼的问...

2019-01-04 18:52:19 121

空空如也

空空如也

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

TA关注的人

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