自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

沉下心来,戒骄戒躁

欢迎互相交流

  • 博客(82)
  • 资源 (2)
  • 收藏
  • 关注

原创 Ubuntu使用心得

1.下载http://www.linuxidc.com/Linux/2014-04/100369.htm2.安装安装过程中可能会出现easybcd不能引导启动的情况。BCD是windows引导管理器的配置文件,easybcd只是给你提供了一个方便修改它的方式,而windows引导管理器不支持引导efi文件,所以用easybcd是不可能添加启动项的,最新版的easybcd会识别出你...

2020-05-18 16:17:35 709

原创 使用shell自动部署tomcat项目

由于测试服务器经常需要更新,觉得太麻烦就写了个shell脚本,记录下来仅供大家参考1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950...

2019-08-18 00:00:00 184 1

原创 在页面中添加Token防止越权访问

1、首先是在访问JSP的时候生成一个随机数,放入session中。同时会在服务器缓存一份Token。 2、当form到后台后,调用工具类验证Token。会在TokenList中验证是有该Token值,如果有则验证通过,同时删除List中的Token。多年前写的东西了,现在基本都是前后端分离使用无状态连接了。同理在下发时生成一个token返回客户端,客户端上...

2019-08-18 00:00:00 1427

原创 使用一维数组存储二叉树

12345678910111213141516171819202122232425262728293031323334353637383940414243444546/*** * 需求:使用一维数组存储二叉树 * 步骤: * 1、查看原始数据的个数(8个),从而制定二叉...

2019-08-18 00:00:00 2937 1

原创 Redis缓存失效引发的问题

项目中使用redis作为缓存服务时,当redis中存放的key过期,或者不存在缓存时候可以会引发各种问题:1.缓存穿透特指故意构建redis中不存在的key,使请求直接落到数据库层。解决办法:1.使用redis构建布隆过滤器,提前将存在的key放入,每次现在过滤器中查找是否存在key,不存在就视为非法的key,不继续进行查找。2.缓存null值,数据库查...

2019-08-18 00:00:00 592

原创 redis五大数据类型实现原理

0.redisObject12345678910111213typedef struct redisObject{ //类型 unsigned type:4; //编码 unsigned encoding:4; //指向底层数据结构的指针 void *ptr; //引用...

2019-08-18 00:00:00 144

原创 广告竞价为什么取第二高价?

广义第二高阶 规定价高者得,但只需按照第二报价支付。其一,GSP能让竞价成功的广告主失去调低出价的动力,因为无论是否调低出价,自己的真实出价都不会改变,除非竞价失败;其二,GSP还能让未竞价成功的广告主失去以最小竞价单位递增出价的动力,因为这种出价策略很难赢得竞价。因此,GSP被称为单位置最优竞价策略。由于GSP的这种优势,现在几乎所有的互联网竞价广告都采用...

2019-08-18 00:00:00 3447 1

原创 MyBatis和数据库的交互的两种方式

MyBatis和数据库的交互有两种方式:方式一、原始的dao调用mybatis1.需要定义dao接口2.需要实现dao接口3.在dao接口实现类上注入sqlSessionFactory,创建sqlSessionFactory时需要读取mapper.xml到内存4.然后通过创建sqlSession对象来调用mapper中的sql语句(sqlSession....

2019-08-18 00:00:00 2130

原创 Spring事务传播机制和Mysql事务隔离级别关系

spring 事务类型1、PROPAGATION_REQUIRED:如果当前没有事务,就创建一个新事务,如果当前存在事务,就加入该事务,该设置是最常用的设置。2、PROPAGATION_SUPPORTS:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就以非事务执行。‘3、PROPAGATION_MANDATORY:支持当前事务,如果当前存在...

2019-08-18 00:00:00 792

原创 Kafka消息无丢失/重复消费配置

消息丢失/重复消费的场景:提交消息失败使用producer.send(msg)提交消息。因为没有回调结果,这时可能消息broker因为网络波动并没有收到,此时消息就丢失了。所以建议使用有回调函数的producer.send(msg,callback)。自动提交offset。可能你使用了多线程处理消息并且是自动提交。如果某个线程处理失败,并且没有显示地通知那...

2019-08-18 00:00:00 224

原创 innodb锁实现机制及高并发优化

innoDB行锁实现:record lock对索引项加锁gap lock对索引之间的间隙加锁next-key lock前两种的组合,对索引和索引之间的间隙加锁高并发锁优化尽量使用低级别事务隔离机制避免行锁升级到表锁当使用非索引字段更新数据,就会升级为表锁。减少事务锁定资源量和锁定时间在事务中尽量把行锁放到事务最后执行。...

2019-08-18 00:00:00 122

原创 Golang中遍历非指针对象的坑

前段时间写了个递归树,中间遇到了个坑,按逻辑看是没问题,没想到结果不对。for _, v := range tree我在遍历这个tree数组的时候传递的是数组对象,修改了数组的内容但返回时发现没有变化。这就是golang和java的差别,遍历的时候如果是非指针对象,那么golang会copy一个副本v,你修改的只是v的值,除非你修改完再重新放入数组,否则结果是不...

2019-08-18 00:00:00 503

原创 Java类生命周期

加载先说下类加载器(ClassLoader):java类经过编译生产.class文件。JVM通过类加载器读取类的二进制流,然后在做其他操作。类加载器主要有引导类加载器、扩展类加载器、应用程序类加载器。每次加载一个用户的类都是先判断是否加载,过然后逐层请求父类加载器去获取,如果父类获取不到该类,则交给子类去加载。这种模式称为双亲委派模型。好处:1.避免重复加载...

2019-08-18 00:00:00 87

原创 Kafka参数配置(broker、topic、jvm)

broker中有大概200多个参数,挑选几个重要的记录下来:1234567log.dirs = /data/kafka1,/data/kafka2,/data/kafka3 #建议每个目录都挂在不同的硬盘上,提高读写性能,也能够支持故障转移zookeeper.connect = zk1:2181,zk2:2181,zk3:2181/kafka1 ...

2019-08-18 00:00:00 794

原创 计算机CPU性能提升

CPU提升的途径:增加晶体管密度、提升CPU主频(晶体管开关的速度)增加晶体管密度就需要把晶体管造的更小,这就是所谓的”制程”CPU提升带来的是功率的增加:CPU功率 ~=1/2x负载电容x电压的平方x开关频率x晶体管数量*降低CPU电压最容易提升计算机的续航*但仅靠提升CPU性能会遇到瓶颈,就需要采用CPU并行提高性能并行也会需要瓶颈,正如阿姆达尔定...

2019-08-18 00:00:00 785

原创 计算机性能之CPU篇

Keyword:响应时间、吞吐率响应时间主要依靠提升CPU性能、吞吐率可以多增加几台机器计算性能衡量:1/响应时间统计从1到100w需要花费的时间time seq 1000000 | wc -l1000000real 0m0.101s //系统真正花费的时间user 0m0.031s //在用户态花费的时间sys 0m0.016s //程序花费的...

2019-08-18 00:00:00 115

原创 Mysql存储引擎区别

Mysql存储引擎类型及特点:MyiSam 5.6以前默认的存储引擎,非事务,支持Btree、空间、全文索引。 叶子节点指向的是物理存储位置,不需要进行二次查找,所以查询速度快。 使用表锁????。 (挖坑,以后写一篇关于索引的)CSV生成CSV格式文件存储,非事务,不支持索引Archive只支持查询和新增,不能修改数据,非事务,只能在自...

2019-08-18 00:00:00 168

原创 布隆过滤器

判断一个字符串存不存在,可以用来过滤非法字符串、垃圾邮件等1.使用BigSet存放hash位置信息初始化定义存放位置size,如4、8、16、32有多少个size就需要多少次hash,将得到的hash值作为索引存放在set中,value为true2.判断是否存在,即将该字符串做hash处理,判断Bigset每个位置都为true,那么就认定该字符串...

2019-08-18 00:00:00 103

原创 广告反作弊

1.使用分布式布隆过滤器过滤重复请求。redis.setBit(key,offset,1)可以看作是个字节数组2.校验参数进行对称加密,上报时解密校验参数。竞价成功带的价格在规定的区间。3.日志日志请求、曝光、点击得顺序不能错。从曝光到点击有效期3天的延迟上报期。 ...

2019-08-18 00:00:00 141

原创 Tomcat线程池原理

Tomcat线程池扩充了java的ThreadPoolExecutortomcat定制了自己的Queue(重写了LinkedBlockingQueue)和ThreadFactory最大线程数(maximumPoolSize)线程池大小有控制,可以通过参数设置处理流程:前corePoolSize个任务入队,同时在线程池创建一个线程。之后的任务直接放入队...

2019-08-18 00:00:00 550

原创 @Transcational注解原理

@Transcational注解原理运行配置@Transactional注解的测试类的时候,具体会发生如下步骤事务开始时,通过AOP机制,生成一个代理connection对象,并将其放入DataSource实例的某个与DataSourceTransactionManager相关的某处容器中。在接下来的整个事务中,客户代码都应该使用该connection连接数据...

2019-08-18 00:00:00 3303 1

原创 系统优化方案

1.可优化点http -> rpc thriftredis -> pipline ThreadLocallogback -> 异步

2019-08-18 00:00:00 310 1

原创 网络基础之通信协议和流程

几个基础概念:TCP可靠连接,如果客户端无响应会自动重试。UDP不可靠连接,客户端无响应不会重试。 Http是一种基于TCP/IP协议的超文本传输协议,是应用层的协议,实现该协议建立的链接都属于短链接。Socket是基于TCP/IP的一种调用接口。生成长链接。画了一张网络传输流程图:五种I/O模型:Linux将数据从内核...

2019-08-18 00:00:00 351

原创 Redis内存淘汰机制

Redis 内存淘汰机制 (6种)首先,需要设置最大内存限制maxmemory 100mb maxmemory设置为0表示不限制Redis内存使用 通常来讲实际内存达到最大内存的3/4时就要考虑加大内存或者拆分数据了选择策略maxmemory-policy volatile-lru 解释:noeviction:不淘汰,如果内存已满,添加数...

2019-08-18 00:00:00 77

原创 JVM内存模型和垃圾回收策略

内存模型结构:JVM内存模型主要有图中的5块组成:方法区、堆(这两块是线程共享的)、栈、本地方法栈、程序计数器(这三块是线程私有的)方法区:是线程共享的区域,用于存放类的模版信息、常量、静态变量、字段、方法等。具体实现:jdk1.7和之前都是永久代(Perm区),当永久代满了就会触发FullGC,影响整个系统。JDK1.8时取掉了永久代,改为了元空间(Meta...

2019-08-18 00:00:00 185

原创 排序算法

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646...

2019-08-18 00:00:00 90

原创 mysql如何避免死锁

Mysql死锁:通常是多个事务互相持有对方不兼容的锁导致的。在可重复度RR及以上级别会生成gap lock 和 next-key lock兼容矩阵图(横向是已持有锁,纵向是请求的锁)发生死锁的条件:situation1:AB都获得GK,插入时都想获得IK,等待对方的GK释放,导致死锁。situation2:如何避免:尽量使用主键更新数据,防止使用非聚簇...

2019-08-18 00:00:00 3665

原创 Mysql索引优化

索引使用存在的问题:回表innodb默认使用主键索引是聚簇索引,其他索引是非聚簇索引。当使用非聚簇索引查询时,先在B+Tree叶子节点上获得主键id,然后根据主键id再去聚簇索引查询叶子节点的行数据。这两次查询就称作回表。页分裂B+Tree数据存放在叶子节点上,叶子节点大小为16K会自动分裂生成更多叶子节点,这样会导致内存碎片,索引结构不紧凑,查询效率...

2019-08-18 00:00:00 55

原创 InnoDB事务和MVCC实现

事务(ACID)定义:Atomicity 一组sql要么全部都执行成功要么全部失败。比如A、B两人转账,扣款和增加同时成功或者失败。Consistency 写入的结果和预设结果相同。比如转账前和转账后AB两人总额是不变的。Isolation 事务对其他事务是不可见的,而且互不影响。Durability 一旦提交,就算宕机也不会出现数据丢失的情况。事务实现...

2019-08-18 00:00:00 138 1

原创 Kakfa主题管理

创建Topic1bin/kafka-topics.sh --bootstrap-server broker_host:port --create --topic my_topic_name --partitions 1 --replication-factor 1kafka2.2之后推荐使用--bootstrap-server代替--zookeeper,...

2019-08-18 00:00:00 94

原创 MongoDB操作命令总结

导出查询数据使用javascript导入,下面文件命名为dump.js123456789db.auth("teddy_bbc","teddy_bbc123");var c = db.adStatDTO.aggregate([{ "$match" : { "actionType"...

2019-08-18 00:00:00 107 1

原创 Kafka消费者组和Rebalance

消费者组Consumer Group 是 Kafka 提供的可扩展且具有容错性的消费者机制特性:1.一个组下可以包含多个消费者实例。可以是消费者进程,也可以是消费者线程。2.GroupID是个字符串,标识唯一的group。3.Topic下的分区只能被某个Group的一个Consumer消费。一个Consumer可以消费多个分区,即分区和消费者是多对一的关...

2019-08-18 00:00:00 1030

原创 about

test

2019-08-18 00:00:00 95

原创 Mysql日志

Mysql日志简介日志类型:error_log错误日志,会记录Mysql启动、运行、停止过程中所有的异常信息。log_error_verbosity = [1,2,3]可以设置错误日志级别log_error_service是Mysql8.0的新特性,可以设置处理日志的组件,如输出为json格式等general_log常规日志,记录运行是所有的SQL操...

2019-08-18 00:00:00 91

原创 redis六种基本数据结构

1.sds(simple dynamic string)简单动态字符串12345struct sdshdr { int len; //buf中已占用空间的长度 int free; //buf中剩余可用空间的长度 char buf[]; //初始化sds分配的数据空间,而且是柔性数组(Flexibl...

2019-08-18 00:00:00 239

原创 Redis Debug 命令

查看某一个Key的Debug信息,使用debug object [key]查看redis内存使用情况使用info memeroyused_memory_human: 已使用内存(格式化可读性的)used_memory_peak_human: 使用最高峰值total_system_memory_human: 总内存used_memory_rss_huamn...

2019-08-18 00:00:00 375

原创 mysql explain分析工具

explain是mysql中的一个关键字可以分析sql查询的是如何执行的。1explain sql语句idid代表sql执行的顺序,id值越大越被优先执行。id相同代表顺序执行。select_typesimple 简单查询,不包含子查询和union查询primary 包含子查询,最外层就是primarysubquery 在SELEC...

2019-08-18 00:00:00 128

原创 Kafka版本号

kafka目前总共演进了7个大版本,分别是0.7、0.8、0.9、0.11、1.0和2.01.0以前都是4位版本号,之后改为3位版本号。如今kafka已经发行到2.3.0版本了Scala 2.11代表的是Scala编译器的版本0.7v 只有基本的消息队列功能,不包含副本机制0.8v 引入了副本机制,正式进化为高可用的分布式消息队列解决方案。0.8.2...

2019-08-18 00:00:00 702

原创 Kafka线上部署方案

1.操作系统选择Linux/Windows/MacOS 三种操作系统kafka最好的搭档还是Linux,原因有几个方面a.I/O模型kafka客户端的I/O使用Java的Selector实现,Selector在Linux上的实现机制是epoll,在Windows上是select。性能上不如Linux。b.数据传输效率Linux支持零拷贝(ZeroCopy),...

2019-08-18 00:00:00 240

原创 Kafka幂等性和事务

幂等性幂等性值多次执行某个操作,每次执行的结果都和第一次一样。Kafka可以在Producer端设置幂等性,0.11.0.0之后加入的新功能,enable.idempotence = true设置后Producer自动会对你的消息进行去重。但是只能保证单分区上的幂等性,即一个幂等性Producer只能保证某个Topic下的一个分区内不会出现重复数据,无法实现多分区...

2019-08-18 00:00:00 199 1

_改善既有代码的设计[高清版].pdf

代码重构必看书籍,高清版!

2016-12-16

javascript 与 webview 交互

javascript 与 webview 交互

2014-12-31

空空如也

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

TA关注的人

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