2013年3月30日

如何与第三方接口保持数据一致性

摘要: 场景大家经常遇到这样的需求,尤其是支付中心接口的时候:查询满足某种条件的订单,调用第三方接口成功,更改订单状态。常见实现示例task1:orders = queyrOrder(...); //查询已离店的订单 for (Map<String, Object> order : orders) { try { con.setAutoCommit(false); String orderNo = (String) order.get("order_no"); // 调用支付中... 阅读全文

posted @ 2013-03-30 20:47 NanguoCoffee 阅读(9044) 评论(0) 推荐(0) 编辑

统一Spring 和 非spring事务处理的方案

摘要: 背景:1: 接手的系统中,数据库操作部分如下,下文称为ECon的方式: ECon con = null; try { con = ConMan.get("order"); ...//do something with con } catch (SQLException e) { if (con!=null) { try { con.... 阅读全文

posted @ 2013-03-30 16:06 NanguoCoffee 阅读(5440) 评论(0) 推荐(1) 编辑

2013年3月29日

问题排查:订单状态到“可结算”后,还能状态变更

摘要: 排查思路:搜索源代码关键字:客人已离店>查询state_machine_log表>再根据操作人“系统”来确认是:OrderShowServlet.java>到web.xml查找:/order/sm/show>access_log查看access_log :zcat access_log.2013-02-02* | grep /order/sm/show?orderId=777235 | more192.168.224.19 - -[02/Feb/2013:00:02:02 +0800]"GET /order/sm/show?orderId=777235 HTT 阅读全文

posted @ 2013-03-29 03:21 NanguoCoffee 阅读(766) 评论(0) 推荐(0) 编辑

《SQL 反模式》阅读笔记一

摘要: 1:乱穿马路反模式:一对多、多对多的表一列里存储多个外键ID,以','隔开。如|id | content |tag_ids ||1 | abcaeag | id1,id2,id3|缺点: 1:不好查询。比如:查询该记录是否引用某个外键ID2:不好更新,由于不好查,所以不好更新解决方案: 使用关联表,通过外键来建立一对多关系。2:树结构反模式:使用parent_id来构建一个树或森林缺点: *无法知道树的深度 *查询某个树的所有的子树相当的费劲解决方案: 1:路径枚举,也可以叫做前缀编码。如#1#11#112#1124。 2:闭包:建立关联结构:1>1,1>11,.. 阅读全文

posted @ 2013-03-29 01:20 NanguoCoffee 阅读(283) 评论(0) 推荐(0) 编辑

2013年3月23日

诡异的MySql执行计划的更改

摘要: SQL是在从库上执行正常的执行计划:explain SELECT h.id hid,r.rate rate FROM ORDER_CUST_INFO o, exchange_rate r, HOTEL_INFO h where o.group_id = h.group_id and o.currency = r.type and r.type != 'CNY' and h.type = 'OWNER' and h.apply_status = 'CHECKED' and h.online = true and h.online_status = 阅读全文

posted @ 2013-03-23 23:45 NanguoCoffee 阅读(991) 评论(0) 推荐(0) 编辑

解析HTML 文本 性能最高的方法

摘要: 解析爬取后的html文件方法有很多。有DOM方式,xpath方法解析,和最原始的字符串解析。对比性能、简易性和内存消耗, 用原始的字符串解析是最佳的方式。/** * 将content中beginStr和endStr之间(包含beginStr和endStr)的数据分离处理放入List中 比如<br> * String content ="xxxxaa1111bbaa2222bbcc55aa";<br> * String beginStr ="aa";<br> * String endStr ="bb" 阅读全文

posted @ 2013-03-23 23:34 NanguoCoffee 阅读(912) 评论(0) 推荐(0) 编辑

2011年2月16日

知道为啥HashMap里面的数组size必须是2的次幂?

摘要: 最近在写一个简易的分离锁的类:要求:对不同的Key进行hash得到一个Lock,并要求对锁映射的概率差不多。比如,160个Key,分布到16个锁上,大概有10个Key是映射到同一个锁上的,只要这样并发效率才会高。用法:本来认为用HashMap的hash算法就能够将 达到上述的要求,结果测试的时候吓了一跳。测试代码:结果:1000个随机key的hash只是映射到8个Lock上,而不是平均到50个Lock上。而且是固定分布到0,1,16,17,32,33,48,49的数组下标对应的Lock上面,这是为什么呢?如果改为:结果:1000个随机key的hash 映射到32个Lock上,而且基本上是平均分 阅读全文

posted @ 2011-02-16 14:32 NanguoCoffee 阅读(3374) 评论(0) 推荐(1) 编辑

2011年1月21日

在Netty中使用Apache common fileupload

摘要: 在Http上传中,Apache common fileupload 的文件上传组件要求传入Inputstream对象。而Netty中数据是按块(HttpChunk)来传送数据,没有直接的流。因此要想在Netty中使用Apache Common Fileupload,则必须将httpchunk适配成InputStream。实现Apache FileUpload适配成InputStream:Netty FileUpload应用:该NettyChunkInputStream必须一个线程来putChunk(...),另一个线程使用getInputStream()来消耗数据。 阅读全文

posted @ 2011-01-21 10:55 NanguoCoffee 阅读(2603) 评论(0) 推荐(1) 编辑

2011年1月12日

Java Best Practices

摘要: Java Best Practices – String performance and Exact String Matchinghttp://www.javacodegeeks.com/2010/09/string-performance-exact-string.htmlhttp://johannburkard.de/software/stringsearch/Java Best Practices – Char to Byte and Byte to Char conversionshttp://www.javacodegeeks.com/2010/11/java-best-pract 阅读全文

posted @ 2011-01-12 10:10 NanguoCoffee 阅读(224) 评论(0) 推荐(0) 编辑

2010年12月29日

Java字符相关知识

摘要: 以Q&A的方式总结Java字符相关知识字符编码基本概念:Q: 什么是字符?A:字符(character)是抽象的最小文本单位。它没有固定的形状(可能是一个字形),而且没有值。“A”是一个字符,“严”是一个字符,“€”(德国、法国和许多其他欧洲国家通用货币的标志)也是一个字符。Q: 什么是字符集?A:字符集(character set)是字符的集合。例如,汉字字符是中国人最先发明的字符,在中文、日文、韩文和越南文的书写中使用。Q:什么是编码字符集?A:编码字符集(coded characterset)是一个字符集,它为每一个字符分配一个唯一数字。Unicode 标准的核心是一个编码字符集,字母“ 阅读全文

posted @ 2010-12-29 22:06 NanguoCoffee 阅读(1262) 评论(0) 推荐(1) 编辑

导航