- 博客(159)
- 收藏
- 关注
转载 mysql encode&decode
MySQL urlencode 函数、urldecode函数 、multiurldecode 函数?1234567891011121314151617181920212223
2017-08-28 10:14:09 2073
原创 高效工作
1. 结果导向2. 忙碌的人认为所有的事情都重要,而高效的人认为只有少数重要的任务。如果遇到意外,不能完成,也会把其他的拖延,而非重要的任务3. 聚焦关键:每个时刻关注一件事情4. 每件事情都有结果,即使失败也有结果5. 自己完成所有事情,高效人士会考虑利用周围所有资源完成结果6. 忙碌的人来者不拒,高效的人,知道什么时候说不,弄不清楚会说我想一下,而不随便说好7. 高效的
2017-08-09 14:00:55 1460
转载 Nonce、Timestamp——解决Replay-Attack问题
Nonce、Timestamp——解决Replay-Attack问题Nonce是由服务器生成的一个随机数,在客户端第一次请求页面时将其发回客户端;客户端拿到这个Nonce,将其与用户密码串联在一起并进行非可逆加密(MD5、SHA1等等),然后将这个加密后的字符串和用户名、Nonce、加密算法名称一起发回服务器;服务器使用接收到的用户名到数据库搜索密码,然后跟客户端使用同样的算法对其进行加密
2017-05-08 17:22:46 3688
原创 java cpu过高排查
当某个java进程cpu较高时,可以通过linux命令排查问题。1. 根据top查看java进程号pid,如522102. 查看某个进程的线程以及使用时间,cpu情况ps -mp 52210 -o THREAD,tid,time3. printf "%x\n" 1808046a04. jstack 52210 | grep 46a0 -A 30
2017-04-14 13:22:41 697
转载 基于角色的权限控制
基于角色的权限控制RBAC模型的基本思想是将访问许可权分配给一定的角色,用户通过饰演不同的角色获得角色所拥有的访问许可权。用户(User):一个具有唯一标识符的用户,与权限相分离,只能通过所属的Role去关联权限,一个用户可以拥有多项角色;角色(Role):一定数量的权限的集合,角色可以继承,一个角色对应多项权限;权限(Resource):也可以看作是资源,它对应了应用系统
2017-03-31 16:13:16 1268
原创 单元测试方法
单元测试一些原则AAA模式:arrange、act、assert单元测试关注语义(函数名称、方法)一个测试就测试一个点Test Doubles (测试替换) 代码测试dummy,fake,spy, stub, mock前面4种注重状态(内部数据固定,不管输入什么都是同样的行为)mock关注在于行为(当传入参数A返回值为B,传入参数B则行为发生变化)...
2017-03-31 09:39:47 1144
转载 设计模式原则SOLID
一、单一职责原则(SRP)定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会
2017-01-24 12:04:48 398
原创 2016年双12总结
2016年的双12总结2016年双12结束了,第一次参加双12,有些感受,也有些收获。 研发:接口定义、幂等、并发、数据兼容、影响范围、异常处理等 测试:整体流程、异常处理、业务回归等 监控:系统指标(接口tps、ERROR数、cpu、内存等)、业务指标(活动个数、发券、领券数、商品个数、预算消耗),核对监控(上下游数据一致性、关键字段核对、资金流水核
2017-01-01 13:56:17 604
原创 缓存更新机制思考
普通应用一般使用数据库作为存储,缓存用于热点数据暂存,提高访问速度。数据库和缓存之间的同步有很多方式,这边是我自己的一些思考,仅供记录。前提缓存必须具有失效时间,根据业务场景设置缓存不做持久化,无法保存全量数据,需要设置缓存空间大小。重启即数据丢失 几种更新缓存方法1. 更新数据库,同步更新缓存。缓存失败,异步继续更新。保证重
2016-10-14 14:02:56 4377
原创 mysql 几个常用锁机制
锁机制:分两种情况:乐观锁,悲观锁数据库中有记录,可以通过乐观锁或者悲观锁进行锁定记录。乐观锁:update tablename set version=version+1 where key=${key} and version=${version},判断update结果影响的行数。将乐观锁放在一个事务中,通过行级锁进行控制。一个事务占用了行级锁,另一个事务无法获得锁,会产生两种情况
2016-10-02 16:18:54 7942
转载 IDEA 使用入门
intellij来阿里之前,还在使用eclipse,后来受@无独 同学影响,开始使用intellij,从此以后再也没想过回到eclipse。最近周边的人使用intellij越来越多,还有一部分在eclipse和intellij之间徘徊选择,本文目的是通过我们介绍intellij的功能,让大家对intellij更了解,如果想从eclipse改到intellij,下面增加eclipse中常用功
2016-08-05 10:51:57 13062 1
转载 如果有人问你数据库的原理,叫他看这篇文章
一提到关系型数据库,我禁不住想:有些东西被忽视了。关系型数据库无处不在,而且种类繁多,从小巧实用的 SQLite 到强大的 Teradata 。但很少有文章讲解数据库是如何工作的。你可以自己谷歌/百度一下『关系型数据库原理』,看看结果多么的稀少【译者注:百度为您找到相关结果约1,850,000个…】 ,而且找到的那些文章都很短。现在如果你查找最近时髦的技术(大数据、NoSQL或JavaScript
2016-08-03 10:15:08 2655
原创 mysql更新死锁问题
mysql更新死锁问题问题现象同一时间点,一个商户下多个模板(模板id不同)同时更新;券模板操作流水更新时发生死锁,报 Deadlock found when trying to get lock; try restarting transaction 错误相关业务表信息表:log_xx索引信息:log_no:分库分表全局唯一uk; merchant
2016-07-29 14:28:48 9423
转载 lucene入门简介
一、总论根据http://lucene.apache.org/java/docs/index.html 定义:"Apache Lucene(TM) is a high-performance, full-featured text search engine library written entirely in Java. It is a technology suitable
2016-07-19 20:04:25 2083
原创 下游系统访问思考
一般系统都会访问外部系统,比如请求支付,会员卡,营销等各种系统,有时候一次请求需要访问多个下游系统,这种情况下失败是避免不了的。这里总结了几个注意事项访问下游系统必须设置超时时间,一般设置3s,不同业务系统需要进行相应调整访问下游系统qps必须控制,不能给下游系统压力过大幂等操作:访问下游失败了,可能是由于网络超时,下游系统已经处理成功。这个时候有两种方式下游提供查询接
2016-07-07 10:54:08 2497
原创 代码模拟join操作
mysql支持join操作,可以将两张或者多张表进行join关联在一起后进行查询操作。为了避免大表的join性能问题,有些场景我们不希望进行join查询,那我们可以怎么办呢?我们可以通过代码模拟join操作,比如我们有两张表,domain_entity, domain_attributeCREATE TABLE `domain_entity` ( `id` BIGINT(20) NOT
2016-07-06 11:55:24 1266
转载 Spring之FactoryBean
首先要分辨BeanFactory 与 FactoryBean的区别, 两个名字很像,所以容易搞混BeanFactory: 以Factory结尾,表示它是一个工厂类,是用于管理Bean的一个工厂FactoryBean:以Bean结尾,表示它是一个Bean,不同于普通Bean的是:它是实现了FactoryBean接口的Bean,根据该Bean的Id从BeanFactory中获取的实际上
2016-06-29 17:13:06 452
转载 Spring之FactoryBean
首先要分辨BeanFactory 与 FactoryBean的区别, 两个名字很像,所以容易搞混BeanFactory: 以Factory结尾,表示它是一个工厂类,是用于管理Bean的一个工厂FactoryBean:以Bean结尾,表示它是一个Bean,不同于普通Bean的是:它是实现了FactoryBean接口的Bean,根据该Bean的Id从BeanFactory中获取的实际上
2016-06-29 14:42:16 340
转载 left_join、inner_join中的on与where的区别
以下是对在sql语句中left_join、inner_join中的on与where的区别进行了详细的分析介绍,需要的朋友可以参考下table a(id, type):id type ----------------------------------1 1 2 1 3 2
2016-06-22 17:32:42 362
转载 spring二次代理的问题
最近一个朋友使用javamelody时遇到一个二次代理的问题,即一个Bean被代理了两次。 我还原了一下问题,并简化出一个工程方便大家观察。可以下载附件代码还原场景。 代码如下:1、接口及目标类 Java代码 package com.sishuok.proxy; public interface Interface
2016-06-09 10:41:09 3593
转载 关于分布式事务、两阶段提交协议、三阶提交协议
随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构,不得不提的就是分布式。在分布式一致性一文中主要介绍了分布式系统中存在的一致性问题。本文将简单介绍如何有效的解决分布式的一致性问题,其中包括什么是分布式事务,二阶段提交和三阶段提交。分布式
2016-06-08 16:29:59 2294
转载 使用事务时应该避免的陷井
事务可实现“要么完全成功,要不全部不成功”,保证数据的完整性和一致性,使我们在开发中能方便地实现一些业务逻辑。比如,在股票交易时,除了记录交易的过程,还要更新交易完成之后的账户状态。这两个操作显然必须“要么完全成功,要么全部不成功”,否则,你的麻烦就大了。当然,如果你不关心数据的完整性和一致性的问题,那么忘了事务吧,因为引入锁、数据库并发等机制之后,对性能还是有影响的。下面代码中,
2016-05-27 18:40:24 1316
转载 Guava - EventBus(事件总线)
Guava - EventBus(事件总线)NOV 27TH, 2014Guava在guava-libraries中为我们提供了事件总线EventBus库,它是事件发布订阅模式的实现,让我们能在领域驱动设计(DDD)中以事件的弱引用本质对我们的模块和领域边界很好的解耦设计。不再多的废话,直奔Guava EventBus主题。首先Guava为我们提供了同步事件EventB
2016-04-06 17:25:24 947
转载 Time33哈希算法
字符串哈希函数,发现几乎所有的流行的HashMap都采用了DJB Hash Function,俗称“Times33”算法。Times33的算法很简单,就是不断的乘33,见下面算法原型。hash(i) = hash(i-1) * 33 + str[i] uint32_t time33(char const *str, int len) { un
2016-03-18 16:53:37 1506
转载 分布式搜索elasticsearch配置文件详解
elasticsearch的config文件夹里面有两个配置文件:elasticsearch.yml和logging.yml,第一个是es的基本配置文件,第二个是日志配置文件,es也是使用log4j来记录日志的,所以logging.yml里的设置按普通log4j配置文件来设置就行了。下面主要讲解下elasticsearch.yml这个文件中可配置的东西。cluster.name: elas
2016-03-08 10:20:37 413
原创 sprintmvc+protostuff
server:pom 增加protostuff io.protostuff protostuff-collectionschema 1.3.8 io.protostuff protostuff-runtime 1.3.8 io.protostuff protostuff-api 1.3.8 io
2016-03-01 16:26:46 1685
转载 java 匿名类访问外部变量要使用final
1) 从程序设计语言的理论上:局部内部类(即:定义在方法中的内部类),由于本身就是在方法内部(可出现在形式参数定义处或者方法体处),因而访问方法中的局部变量(形式参数或局部变量)是天经地义的.是很自然的2) 为什么JAVA中要加上一条限制:只能访问final型的局部变量?3) JAVA语言的编译程序的设计者当然全实现:局部内部类能访问方法中的所有的局部变量(因为:从理
2016-02-26 13:51:02 2633
转载 java 泛型总结
JAVA泛型编程笔记1介绍Java泛型编程是JDK1.5版本后引入的。泛型让编程人员能够使用类型抽象,通常用于集合里面。下面是一个不用泛型例子: Java代码 List myIntList=new LinkedList(); //1 myIntList.add(newInteger(0)); //2 Integer x=(Integer)myIntList
2016-02-25 22:10:01 594
原创 一个小题目
一个小题目:有三个盒子,里面分别放了苹果,橙子,苹果+橙子。然后给这三个盒子贴上标签,但是标签都是错的。请用一次机会去一个盒子里面拿一个水果出来,但是不能看盒子里面的东西。根据拿出的水果判断三个盒子的标签。看似是2*2=4种情况,但是分析可以看出其中两种情况是冲突的。假如苹果=A,橙子=B,苹果+橙子=A&B,假如三个盒子上面的标签分别是A,B,A&B,则可能正确的标签是:
2012-10-29 22:00:44 844
转载 12 Interesting C Interview Questions and Answers
Transfer from a programmer web site. quite interesting but basic C interview questions. In this article, we will discuss some interesting problems on C language that can help students to brush up
2012-09-09 22:44:38 1099
转载 ext4 介绍
ext4(第四扩展文件系统)文件系统是Linux系统下的日志文件系统,是ext3文件系统的后继版本。Ext4 可以提供更佳的性能和可靠性,还有更为丰富的功能:1. 与 Ext3 兼容。 执行若干条命令,就能从 Ext3 在线迁移到 Ext4,而无须重新格式化磁盘或重新安装系统。原有 Ext3 数据结构照样保留,Ext4 作用于新数据,当然,整个文件系统因此也就获得了 Ext4 所支
2012-08-01 17:54:19 1817
原创 Mysql并发控制
最近在看Mysql的并发控制,事务处理等知识,做些整理。并发控制目的是当多个连接对数据库进行修改时保证数据的一致性。现在mysql的InnoDB在update,delete时使用行级锁,对于select会结合MVCC保证一致性。1、 并发控制MySQL提供两个级别的并发控制:服务器级(the server level)和存储引擎级(the storage engine leve
2012-04-30 12:43:31 19000 1
原创 Some work notes in 2012 Q1
1. Mysql 分表分表分为水平分表和垂直分表,常用的是水平分表,通常是将一个表结构不变,数据分成两份或者多份存在不同表中。原因是由于一个数据表数据太多,影响操作效率,所以可以根据表中某个关键字段进行分表,比如可以根据主键的区间,或者根据时间搓的区间,或者根据特定业务进行分表,目的是将一个表的数据分在两个结构相同但是名字不同的表中,可以快速进行各种操作。垂直分表则是将表结构分割成两个或者
2012-04-03 22:51:06 1110
转载 张亚勤:天才也不会随随便便成功
有一本名为《张亚勤:让智慧起舞》的书里这样介绍他:在企业家里,他是科学家——他拥有60多项专利,并发表了500多篇学术论文和专著,被美国前总统比尔·克林顿称做“一个灵感的启示”;在科学家里,他是企业家——他将一个不到10人的微软中国研究院,发展成为拥有3000个聪明头脑的微软亚太研发集团,被比尔·盖茨视为“微软的宝贝”。但张亚勤自己却说:“我的经历不过是在大的背景下,正好踩在了点上,没有恢复高考,
2011-12-26 23:05:12 1054
原创 【2012求职经历】应届生求职经历
http://bbs.yingjiesheng.com/thread-1109024-1-1.html本人上海某211计算机小硕,学校一般只能自己多努力。今年求职从9月正式开始,目标是各大软件公司的软件工程师。投了多少简历已经忘记了,有些是毫无目的的投着玩,有些是确实喜欢的职位,有些投了简历没去笔试,有些去笔试没面试,也有去面试被刷了的,总结下:笔试:intel,淘宝,腾讯,百度,go
2011-12-19 20:54:27 2385 2
原创 EMC笔试总结
EMC的笔试总结,最后没能去EMC,可惜了1. 除以59的余数是多少。//答案是38,这个题目考费马小定理;不过直接硬算也可以。第一次听到费马小定理: 如果一个数p是质数,且a与p互质,则a^(p-1)%p=1(a的p-1次方模p恒等于1)。所以97^59%59=( (97^58%59)*(97%59) )%59= (1*38)%59 = 38.//这题目太那个了。
2011-11-28 20:50:02 7911
原创 c++笔试面试总结
C++:1. c++的new可以指定地址struct T:B{ public: void * operator new(size_t sz, T& t){}};int main(){ T tb; T * t = new(tb) T; //必须是tb在前,因为tb指明size,不知道这个有什么用}2. c+
2011-11-28 20:47:40 1731
原创 求职经历
求职记录:9.8:华为(软开,操作系统),埃森哲,搜狗(云,搜索),网易有道(有点怪异,要论文?),大众点评技术培训生,百度,3609.12:微软2012校园招聘 , 易安信(EMC),eBay百姓网2012校园招聘,创新工场(这两个不用网申,直接发简历),京东9.13:趋势科技, 思科(system enigeer,emedded engineer),yahoo,IBM,
2011-11-28 20:43:04 3882 4
原创 design pattern
1. design patterns are descriptions of communicating objects and classes that are customized to solve a general design problem in a particular context.2. program to interface, not implementation.3
2011-11-28 20:26:15 1306
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人