自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring过滤器和拦截器的区别

Spring过滤器和拦截器的区别 两者的作用 过滤器:是在javaweb中,你传入的request、response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的action进行业务逻辑,比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者 struts的action前统一设置字符...

2018-08-09 16:21:04 12464

原创 Tomcat学习

Tomcat学习 https://blog.csdn.net/u012562943/article/category/6048997

2018-05-08 16:08:35 285

原创 spring boot application.properties 配置参数详情

spring boot application.properties 配置参数详情 https://blog.csdn.net/true_hsf/article/details/77893481

2018-03-22 23:24:47 347

原创 锁、分布式锁、无锁分布式无锁

锁、分布式锁、无锁分布式无锁  为什么要有锁?       保证资源线程安全,简单说就是在多线程情况下不会乱。   锁的分类 JVM锁:类锁、对象锁、偏向、公平、重入、死锁分布式锁:Redis、DB、zookeeper  类锁和对象锁的区别 类锁 方法中写着static synchronized整个Objec...

2018-03-18 18:28:10 451

原创 分布式事务解决方案

分布式事务解决方案  https://www.cnblogs.com/savorboard/p/distributed-system-transaction-consistency.htmlhttp://www.infoq.com/cn/articles/solution-of-distributed-system-transaction-consistencyhttp:/...

2018-03-11 23:20:21 156

原创 java NIO 之适用场景

java NIO 之适用场景  NIO适用场景        服务器需要支持超大量的长时间连接。比如10000个连接以上,并且每个客户端并不会频繁地发送太多数据。例如总公司的一个中心服务器需要收集全国便利店各个收银机的交易信息,只需要少量线程按需处理维护的大量长期连接。 Jetty、Mina、Netty、ZooKeeper等都是基于NIO方式实现。   ...

2018-03-11 22:30:32 680

原创 分布式应用雪崩效用

分布式应用雪崩效用  对雪崩效用的理解        服务C依赖服务B,服务B依赖服务A,当服务A挂掉,这样服务B的请求一直等待,到超时为止,导致服务B的资源耗尽。    雪崩效用的原因 服务提供者不可用重试加大流量服务调用者不可用  服务提供者不可用的原因 硬件故障:服务器宕机或者网络故障程序bug缓存...

2018-01-01 15:11:42 356

原创 Spring-boot汇总

Spring-boot汇总         Spring-boot的目的是帮助开发者快速搭建Spring框架,帮助开发者快速启动web容器,Spring-boot继承了原有Spring框架的优秀基因,Spring-boot化简了使用Spring的过程。  核心功能 1. 从大量XML配置改成JavaConfig,看起来更清晰,因为分开了一个个类,不需要配置web...

2017-12-25 00:27:46 125

原创 JVM汇总

JVM汇总  0. JVM的运行流程  1. 类初始化流程 父类静态块、父类静态变量子类静态块,子类静态变量父类非静态块、父类非静态变量,父类构造函数子类非静态块、子类非静态变量,子类构造函数   2. java类加载流程 加载 根据类名找到.class文件,将该文件读取到内存中建一个数组,存储二进制流的结构...

2017-12-21 17:52:49 145

原创 互联网安全性问题

互联网安全性问题         谈到互联网安全,会想起中间人攻击,DNS劫持,代理服务器等,对于这么多的危险,怎么保证我们的系统真的足够安全呢?   一个有效的方法:End to End Encryption(端对端加密)     怎么去理解端对端加密呢?核心有如下两点: 客户端和服务端交换期间,数据是加密的既然加密,就用到加密的key,每个...

2017-12-19 20:20:04 619

原创 互联网高并发问题

互联网高并发问题         一般的互联网应用,访问量非常大,最常见的是高并发问题。这是很多程序员都头疼的问题,但是问题终究要解决,所以我们一起看看吧。    高并发要解决的问题 同步服务器能够接受请求能力响应时间防止单点故障和扩展   同步 说起同步,就是要加锁,而锁又分为先三种 代码层次上的,如j...

2017-12-19 10:30:19 621

原创 Quartz实现原理

Quartz实现原理  主要组成部分: scheduler(调度器):将job和trigger绑定在一起job(任务)              :配置具体哪个类实现定时任务trigger(触发器)     :配置定时器参数,如:多久执行一次,执行多上次等            Quartz工作原理 分两类线程:Scheduler调度...

2017-12-17 02:29:15 1049

原创 java -- 超大量数据排序

java -- 超大量数据排序 可以参考下别人的方法:http://mp.weixin.qq.com/s/K94xtyTA50vU6UGG_ho23Q

2017-12-14 14:45:48 3529

原创 以防中年迷茫的13件事

以防中年迷茫的13件事  1. 不要跟第一个你爱上的人结婚,但是不妨爱上你后来结婚的人  2. 随时准备对赞美你的人说 Thank you  3. 学会玩,培养几个终身的嗜好世界上最穷的人,是一个不会玩、没有嗜好的人。当你老的时候,就是一个最让人不喜欢的孤独老人,因为你想一支干燥的扫把一样,彻底无趣。  4. 年轻时找几个求知欲强的人结成终生...

2017-12-11 10:38:05 321

原创 java -- 排序算法

java -- 排序算法         查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗,只要熟悉了思想,灵活运用也不是难事。一般在面试中最常考的是快速排序和归并排序,并且经常有面试官要求现场写出这两种排序的代码。对这两种排序的代码一定要信手拈来才行。还有插入排序、冒泡排序...

2017-11-30 16:37:32 163

原创 java -- 数据结构总结

java -- 数据结构总结  概念 数据结构:数据之间的关系,提高程序效率。  逻辑关系:认为认为 集合:在一个范围内有多个数据,数据之间没有关系线性:一对一关系树形:一对多图:多对多  物理关系:内存存储 顺序存储:数组链式存储:链表  问题 数据结构难不难?    容易但很难有没有用?  ...

2017-11-28 14:39:55 155

原创 java多线程之面试题

java多线程之面试题  怎么理解多线程? 1. 让应用程序在一个时间段做多个事情,提高效率2. 可以实现异步的效果,主线程马上返回成功,子线程继续去工作   程序、进程、线程的关系 一个程序,就有一个进程,一个进程中可以有多个线程,其中又分为主线程和子线程。   理解并发与并行 并发:通过CPU调度算法,让用户看上去同时...

2017-11-26 22:13:01 147

原创 java多线程之阻塞队列

java多线程之阻塞队列        阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。 ...

2017-11-26 17:29:43 235

原创 Java多线程之线程池调优

Java多线程之线程池调优 默认配置 corePoolSize=1queueCapacity=Integer.MAX_VALUEmaxPoolSize=Integer.MAX_VALUEkeepAliveTime=60sallowCoreThreadTimeout=falserejectedExecutionHandler=AbortPolicy()...

2017-11-21 18:06:42 540

原创 Java多线程之常用类--闭包、栅栏、信号量、FutureTask

Java多线程之常用类--闭包、栅栏、信号量、FutureTask  闭锁 用途:可用于命令一组线程在同一个时刻开始执行某个任务,或者等待一组相关的操作结束。尤其适合计算并发执行某个任务的耗时。 public class CountDownLatchTest { public void timeTasks(int nThreads, final...

2017-11-19 20:51:07 461

原创 当Maven无法下载jar该怎么办

当Maven无法下载jar该怎么办         有时,我们可能会遇到因为网络原因导致Maven无法下载jar包的情况,这时该怎么办呢,没法干活吖。       方法一:自己硬着头皮下jar包,这是最笨的方法。       方法二:使用Maven镜像服务器,例如,阿里云提供的Maven镜像服务器。     原理:就是修改获取jar包的远程地...

2017-10-17 17:50:03 140

原创 数据库设计 -- 一些技巧

数据库设计 -- 一些技巧  http://www.csdn.net/article/2012-04-11/2804419 http://blog.csdn.net/sirfei/article/details/434994 http://blog.csdn.net/haiross/article/details/50427382 http://blog.c...

2017-10-11 16:12:46 90

原创 数据库设计 -- 索引设计

数据库设计 -- 索引设计 什么是索引索引就是加快检索表中数据的方法,就是为了不想扫描整个表。  索引的优点 大大加快查找数据的速度建立唯一索引,保证数据表中每一行数据唯一性进行分组和排序检索时,可以明显地减少时间  索引的缺点 降低增删改的速度创建和维护索引,需要消耗我们的维护时间索引还是需要占用到一定的物理空间的...

2017-10-10 18:21:58 1059

原创 数据库设计 -- 外键设计

数据库设计 -- 外键设计  外键的目的:通过数据库去保证数据的完整性,提高关联查询的效率外键的副作用:插入或更新的效率下降。   为何说外键有性能问题 数据库需要维护外键的内部管理;外键等于把数据的一致性事务实现,全部交给数据库服务器完成;有了外键,当做一些涉及外键字段的增,删,更新操作之后,需要触发相关操作去检查,而不得不消耗资源;...

2017-10-10 15:57:10 414

原创 数据库设计 -- 主键设计

数据库设计 -- 主键设计         在数据库设计时,主要就是对实体和关系的设计,实体表现出来就是表,关系表现出来就是外键。而对于一个表,由两部分组成:主键和属性。主键的简单定义就是表中为每一行数据的唯一标识。其实更准确的说法,每一行数据的唯一标识是候选键(Candidate Key),一个表中可以有很多个候选键,主键是候选键中的一个,主要用于更方便的检索和管理数据。一个表中...

2017-10-10 15:13:57 421

原创 数据库设计 -- 字段的选择

数据库设计 -- 字段的选择  为什么要注意字段的选择?        在数据库设计过程中我们要本着够用的原则,如果一味的把数据字段范围设为最大或者默认值的话,会导致存储空间大量的浪费。在数据量特别大的情况下,这样的设计原理将会使数据库空间造成严重的浪费,也会对数据库的执行效率造成很大的影响。所以我们在做数据库设计的时候要谨慎再谨慎、小心再小心。    ...

2017-09-28 16:45:05 471

原创 数据库设计 -- 设计原则

数据库设计 -- 设计原则         1. 一般情况下,应该尽量使用可以正确存储数据的最小数据类型。数据类型不一样,存储的执行效率也不一样。最好使用适度的整型数据类型,例如int之类的数据,这样在做查询或者字段排序的时候速度是最快的。        2. 尽量避免NULL值的使用,因为这样会增加数据库处理的开销。但是也要考虑实际情况,不要一味的为了避免空值而全部设置为...

2017-09-26 11:48:18 227

原创 数据库设计 -- 表与表的三种关系

数据库设计 -- 表与表的三种关系  一对一     例如:user表和user_detail表,每一个user有一条detail,每一条detail属于一个用户。     表一(user_campaign)     表二(user_campaign_detail)      思路小结:user表和user_detail表,可以给user_det...

2017-09-25 18:02:55 387

原创 分布式ID生成方法

分布式ID生成方法  需求分析     几乎所有的业务系统,都有生成一个记录标识的需求,例如: 消息标识:message-id订单标识:order-id帖子标识:tiezi-id    这个记录标识往往就是数据库中的唯一主键,数据库上会建立聚集索引(cluster index)  聚集索引:物理存储上以这个字段排序。非聚集索引:普通索...

2017-09-20 17:57:44 127

原创 互联网一致性架构设计 -- 库存扣除一致性

互联网一致性架构设计 -- 库存扣除一致性  业务复杂、数据量大、并发量大的业务场景下,典型的互联网架构,一般会分为这么几层:调用层,一般是处于端上的browser或者APP站点层,一般是拼装html或者json返回的web-server层服务层,一般是提供RPC调用接口的service层数据层,提供固化数据存储的db    扣除库存的过...

2017-09-20 15:46:05 684

原创 金钱观

金钱观  导读:谈钱不伤感情(影响夫妻关系的5种金钱人格)         这是一本关于金钱与夫妻关系的书。我们都知道美国的离婚率大约为 50%,而有近 70%的 离婚夫妇说,他们之所以离婚,主要是因为金钱问题。那么中国的情况又如何?我们身边是 否也有很多夫妻因为金钱的问题而争吵不断呢?        每个人考虑和处理金钱问题的方式都是独特的,我们称之为金钱人格,...

2017-09-20 11:45:31 260

原创 互联网一致性架构设计 -- 事务一致性

互联网一致性架构设计 -- 事务一致性  按业务区分 单库事务多库事务     例子:用户下了一个订单,需要修改余额表,订单表,流水表     单库事务 start transaction; CURDtable t_account; any Exception rollback; CURDtable ...

2017-09-19 17:45:38 174

原创 互联网一致性架构设计 -- 消息时序一致性

互联网一致性架构设计 -- 消息时序一致性  为什么时序难以保证,消息一致性难?      原因 时钟不一致多客户端(发送方)服务集群(多接收方)网络传输与多线程     时钟不一致        分布式环境下,有多个客户端、有web集群、service集群、db集群,他们都分布在不同的机器上,机器之间都是使用的本地时钟,而没有一...

2017-09-19 16:58:09 449

原创 互联网一致性架构设计 -- 冗余表数据一致性

互联网一致性架构设计 -- 冗余表数据一致性  需求分析        互联网很多业务场景的数据量很大,此时数据库架构要进行水平切分,水平切分会有一个patition key,通过patition key的查询能够直接定位到库,但是非patition key上的查询可能就需要扫描多个库了。 例如订单表,业务上对用户和商家都有订单查询需求:     Order...

2017-09-18 18:17:56 259

原创 互联网一致性架构设计 -- DB和Cache一致性

互联网一致性架构设计 -- DB和Cache一致性  需求分析 下面两种情况会出现脏数据:     单库情况下     服务层的并发读写,缓存与数据库的操作交叉进行,这种情况虽然少见,但理论上是存在的,后发起的请求B在先发起的请求A中间完成了。     1. 请求A发起一个写操作,第一步淘汰了cache,然后这个请求因为各种原因在服务层卡住了(进行...

2017-09-18 15:42:18 237

原创 互联网一致性架构设计 -- DB双主一致性

互联网一致性架构设计 -- DB双主一致性         MySQL数据库集群常使用一主多从,主从同步,读写分离的方式来扩充数据库的读性能,保证读库的高可用,但此时写库仍然是单点。        解决方法        在一个MySQL数据库集群中可以设置两个主库,并设置双向同步,以冗余写库的方式来保证写库的高可用。    需求分析  ...

2017-09-15 16:08:47 203

原创 互联网一致性架构设计 -- DB主从一致性

互联网一致性架构设计 -- DB主从一致性  需求分析        大部分互联网的业务都是 “ 读多写少 ” 的场景,数据库层面,读性能往往成为瓶颈。如下图:业界通常采用 “ 一主多从,读写分离,冗余多个读库 ” 的数据库架构来提升数据库的读性能。     这种架构的一个潜在缺点是,业务方有可能读取到并不是最新的旧数据: 系统先对DB-master进行了...

2017-09-14 18:14:32 136

原创 互联网一致性架构设计 -- session一致性

互联网一致性架构设计 -- session一致性  session是什么        服务器为每个用户创建一个会话,存储用户的相关信息,以便多次请求能够定位到同一个上下文。        Web开发中,web-server可以自动为同一个浏览器的访问用户自动创建session,提供数据存储功能。最常见的,会把用户的登录信息、用户信息存储在session中,以保持登...

2017-09-14 17:19:30 260

原创 缓存架构设计

缓存架构设计  需求分析     缓存是一种提高系统读性能的常见技术,对于读多写少的应用场景,我们经常使用缓存来进行优化。     例如对于用户的余额信息表account(uid, money),业务上的需求是: 查询用户的余额,SELECT money FROM account WHERE uid=XXX,占99%的请求更改用户余额,UPDATE a...

2017-09-14 15:43:47 262

原创 DNS轮询是否可被完全替代

DNS轮询是否可被完全替代  有人会有以下观点 nginx前端加入lvs和keepalived可以替代“DNS轮询”F5能搞定接入层高可用、扩展性、负载均衡,可以替代“DNS轮询”    “DNS轮询”究竟是不是过时的技术,是不是可以被其他方案替代,接入层架构技术演进,是本文将要细致讨论的内容。    问题域     nginx、lvs...

2017-09-12 16:55:51 766

空空如也

空空如也

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

TA关注的人

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