自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

syaguang2006的专栏

一个菜鸟在向大牛迈进的过程。。。

  • 博客(196)
  • 资源 (10)
  • 收藏
  • 关注

转载 基于redis分布式锁实现“秒杀”

最近在项目中遇到了类似“秒杀”的业务场景,在本篇博客中,我将用一个非常简单的demo,阐述实现所谓“秒杀”的基本思路。业务场景所谓秒杀,从业务角度看,是短时间内多个用户“争抢”资源,这里的资源在大部分秒杀场景里是商品;将业务抽象,技术角度看,秒杀就是多个线程对资源进行操作,所以实现秒杀,就必须控制线程对资源的争抢,既要保证高效并发,也要保证操作的正确。一些可能的实现

2017-05-16 17:04:40 1079

转载 分布式事务?No, 最终一致性

转载:https://zhuanlan.zhihu.com/p/25933039分布式一致性一、写在前面现今互联网界,分布式系统和微服务架构盛行。一个简单操作,在服务端非常可能是由多个服务和数据库实例协同完成的。在互联网金融等一致性要求较高的场景下,多个独立操作之间的一致性问题显得格外棘手。基于水平扩容能力和成本考虑,传统的强一致的解决方案(

2017-05-04 17:28:56 5319

转载 spring中事物管理的方式

事物管理对于企业应用来说是至关重要的,好使出现异常情况,它也可以保证数据的一致性。spring支持编程式事务管理和声明式事务管理两种方式。        编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。     

2017-04-19 14:00:59 508

原创 避免全表扫描方案

对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引: 尝试下面的技巧以避免优化器错选了表扫描: 使用ANALYZE TABLE tbl_name为扫描的表更新关键字分布。对扫描的表使用FORCE INDEX告知MySQL,相对于使用给定的索引表扫描将非常耗时。SELECT * FROM t1, t2 FORCE INDEX (

2017-04-17 10:56:09 1854

原创 map集合的四种遍历方式

import java.util.HashMap;import java.util.Iterator;import java.util.Map;public class TestMap { public static void main(String[] args) { Map map = new HashMap(); map.put(1, "a")

2017-04-01 16:45:03 435

原创 RSA加密/解密例子

package encryption; import javax.crypto.BadPaddingException;import javax.crypto.Cipher;import javax.crypto.IllegalBlockSizeException;import javax.crypto.NoSuchPaddingException;import java.securi

2017-03-25 17:41:16 1870

原创 java线程池介绍和使用说明

1、线程池简介:    多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。        假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。    如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。                一个线程

2017-02-27 18:12:52 340

转载 Thread 和Runnable的区别/不可多次start一个线程

在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限。下面看例子:package org.thread.demo;  class MyThread extends Th

2017-02-27 17:14:08 3673

转载 集合各实现类的底层实现原理

ArrayList实现原理要点概括参考文献:http://zhangshixi.iteye.com/blog/674856lArrayList是List接口的可变数组非同步实现,并允许包括null在内的所有元素。底层使用数组实现该集合是可变长度数组,数组扩容时,会将老数组中的元素重新拷贝一份到新的数组中,每次数组容量增长大约是其容量的1.5倍,这种操作的代价很高。采用了Fail-F

2017-02-27 16:14:02 1742

转载 Http协议和TCP协议区别

很多时候会遇到Http协议或者TCP协议,这里做一个简单的理解。TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性。Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求。Http会通过TCP建立起一个到服务器的连接通道,当本次请求需要的数据完毕后,Http会立即将TCP连接断开,这个过程是很短的。所以Http

2017-02-23 15:47:36 1139

转载 redis哨兵综述

Redis的主从架构,如果master发现故障了,还得手动将slave切换成master继续服务,手动的方式容易造成失误,导致数据丢失,那Redis有没有一种机制可以在master和slave进行监控,并在master发送故障的时候,能自动将slave切换成master呢?有的,那就是哨兵。哨兵的作用: 1、监控redis进行状态,包括master和slave 2、当master

2017-02-22 14:57:03 3328 2

转载 微服务总结

为什么要服务化服务化可以解决一下问题: 1. 代码到处拷贝 2. 底层复杂性扩散,各业务层需要缓存,分表分库等底层技术 3. 基础库耦合,库的版本维护与业务线之间代码的耦合 4. SQL质量得不到保障,业务相互影响 5. 数据库耦合,各业务系统耦合了多张表,无法垂直拆分服务化带来的问题服务化之后,可能会引发分布式事务的问题, 没人愿意引入分布式事务,当基

2017-02-22 14:33:13 2469

原创 程序中异常控制原则

程序中异常控制原则​1.调用第三方外部系统的接口服务时,try住请求方法,并将服务方返回的错误码、错误消息封装到catch中,记录error级别日志。2. 外部系统调我们提供的接口服务时,将所有可能产生的异常(数据库操作、类型转化、调用服务等)都try住,并自定义错误码和错误消息,反馈给调用方。3. 在自己系统内部,在可能出现异常的地方判断,如果改异常的出现

2016-07-26 11:18:55 432

转载 HBase内置过滤器的一些总结

HBase为筛选数据提供了一组过滤器,通过这个过滤器可以在HBase中的数据的多个维度(行,列,数据版本)上进行对数据的筛选操作,也就是说过滤器最终能够筛选的数据能够细化到具体的一个存储单元格上(由行键,列明,时间戳定位)。通常来说,通过行键,值来筛选数据的应用场景较多。1. RowFilter:筛选出匹配的所有的行,对于这个过滤器的应用场景,是非常直观的:使用BinaryCo

2015-11-18 19:57:26 722

转载 HBase和Java API操作

几个相关类与HBase数据模型之间的对应关系java类HBase数据模型HBaseAdmin数据库(DataBase)HBaseConfigurationHTable表(Table)HTableDescriptor列族(Column Family)Put

2015-11-17 16:33:59 458

转载 HBase基本操作

HBase提供了Java Api的访问接口,掌握这个就跟Java应用使用RDBMS时需要JDBC一样重要,下面看一下Java api创建、删除表,及记录的增删改查操作:package hbase;import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop

2015-11-17 16:31:40 363

转载 Spring MVC3在controller和视图之间传递参数的方法

Spring MVC3在controller和视图之间传递参数的方法:一, 从controller往视图传递值, controller---->视图1)简单类型,如int, String,直接写在controller方法的参数里,是无法传递到视图页面上的(经测试)。(而用@RequestParam("name")注解,可以从视图上,或地址

2015-09-21 16:19:55 404

原创 批量导入Excel中的数据

1:jsp页面 <a href='#' class="easyui-linkbutton" data-options="plain:true,iconCls:'ope-add'" onclick="provisionManage.addProvision()">新增 <a href="javascript:void(0)" class="easyui-li

2015-09-21 15:18:35 999

原创 Java中Map集合和List集合的遍历方式

Map集合中的遍历方式方法一 在for-each循环中使用entries来遍历这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。Map map = new HashMap();for (Map.Entry entry : map.entrySet()) { System.out.println("Key = " + entry.getKe

2015-09-21 14:21:24 762

原创 Maven中Pom.xml中主要标签说明

Maven中Pom.xml中主要标签说明 4.0.0 com.ss.settlement 1.1 s pom s http://10.118.46.12:8080/site/s/ s-client s-common s-dao s-manager s-service -server -Xm

2015-09-06 11:32:31 6525

原创 Eclipse中的快捷键总结

Eclipse中的快捷键总结【ALT+/】:为用户提供内容的辅助,当你记不全类、方法和属性的名字时可以用【Ctrl+O】:显示类中方法和属性的大纲,并能快速定位类的方法和属性【Ctrl+/】:快速添加、取消注释【Ctrl+D】:删除当前行【Ctrl+M】:窗口最大化和还原【Ctrl+K】、【Ctrl++Shift+K】:快速向下和向上查找选定的内容,从此不再需要用鼠标单击查

2015-09-04 15:49:44 379

原创 SSH中异步验证用户名是否已存在

1:引入ezmorph-1.0.6.jar 包 和jquery-1.9.1.min.js 2:JSP页面HTMl 商家注册 商家名字: * 登录编码: * 3: JS脚本function checkCode(){ $.ajax

2015-08-14 17:51:48 1467

原创 SSH上传下载功能

cardManageAction中的上传下载主要功能:private InputStream excelFile;private File uploadFile;public InputStream getExcelFile() {return excelFile;}public void setExcelFile(InputStream excelFile) {thi

2015-08-12 16:12:35 398

原创 SSH框架中 分页显示数据Demo

分页的几个要素:总记录数,每页显示数,共几页,当前页等。 在上个例子的基础上我们开始完善我们的程序。 1.首先我们先新建立一个接口MemberDao.java,把所需要用到的方法列出来: [java] view plaincopyprint? package cn.zbvc.dao; import java.util.List; import cn

2015-08-11 15:20:25 1573

转载 Struts2中访问web元素的四种方式(访问requst、session、application)

Struts2中访问web元素的四种方式(访问requst、session、application) 四种方式:1. 通过ActionContext来访问request,session,application对象2. 通过实现RequestAware、SessionAware、ApplicationAware接口来访问request,session,application对象3

2015-08-07 13:47:12 500

原创 五种典型开发周期模型(瀑布、V、原型化、螺旋、迭代)

总结一下经常可以见到的系统开发周期模型。    在过去的几年里,可以很奇葩的碰到类似于“创业项目库”这种需求非常明确,工作量十分可控,对质量要求比较低,业务建模比较easy,功能构成比较少的“面子项目”。类似于这种项目,采用传统意义上的瀑布模型就非常合适了,如果范围控制和风险控制做的比较好的话,真的如同一个瀑布一样,会“飞流直下三千尺”,直接将项目送到客户的小机上,部署运行,大家欢乐的拿到绩效

2015-04-23 15:11:09 1177

转载 大数据架构:Hadoop和Storm的介绍

转载连接:http://www.aboutyun.com/thread-6858-1-1.html阅读下面可以带着下面问题:如果hadoop、Storm还感觉混要,那么此篇文章将帮助你把他们完全区分可以带着下面问题来阅读本文章:1.hadoop、Storm各是什么运算2.Storm为什么被称之为流式计算系统3.hadoop适合什么场景,什么情况下使用hadoop4.什么

2015-01-19 16:06:44 493

转载 Java中的多线程

在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口。对于直接继承Thread的类来说,代码大致框架是:?123456789101112class 类名 extends Thread{ 方法1; 方法2; … public void ru

2015-01-02 10:38:19 448

原创 Java中字节流和字符流之间的转换

字节流:FileInputStreamFileOutputStreamBufferedInputStreamBufferedOutputStream通过刚才的键盘录入一行数据并打印其大写,发现其实就是读一行数据的原理。也就是readLine方法。能不能直接使用readLine方法来完成键盘录入的一行数据的读取呢?readLine方法是字符流BufferedReader类

2014-11-23 22:56:11 589

原创 Java中字符流和字节流

字符流和字节流的区别在于/*字符流:FileReaderFileWriter。BufferedReaderBufferedWriter字节流:InputStream OutputStream需求,想要操作图片数据。这时就要用到字节流。复制一个图片.*/import java.io.*;class FileStream{ public static vo

2014-11-23 22:31:04 440

原创 Java中的工具类和新特性

Java中的工具类和新特性

2014-11-20 23:07:20 714

原创 Java中如何取出Map集合中的元素

/*map集合的两种取出方式:1,Set keySet:将map中所有的键存入到Set集合。因为set具备迭代器。 所有可以迭代方式取出所有的键,在根据get方法。获取每一个键对应的值。 Map集合的取出原理:将map集合转成set集合。在通过迭代器取出。2,Set> entrySet:将map集合中的映射关系存入到了set集合中, 而这个关系的数据类型就是:Map.

2014-11-20 15:31:07 5915

原创 Java中泛型的使用

/*class Demo{ public void show(T t) { System.out.println("show:"+t); } public void print(T t) { System.out.println("show:"+t); }}*///泛型类定义的泛型,在整个类中有效。如果被方法使用,//那么泛型类的对象明确要操作的具体类型后,所有

2014-11-19 22:02:51 363

原创 Java中HashSet和TreeSet集合的本质

import java.util.*;/*|--Set:元素是无序(存入和取出的顺序不一定一致),元素不可以重复。、 |--HashSet:底层数据结构是哈希表。是线程不安全的。不同步。 HashSet是如何保证元素唯一性的呢? 是通过元素的两个方法,hashCode和equals来完成。 如果元素的HashCode值相同,才会判断equals是否为true。 如果元

2014-11-19 16:30:01 511

原创 Java中List集合里Contains和Remove方法的本质

一、课题的来源、研究的目的意义(包括在我国应用的前景)、国内外研究现状及水平。无线传感器网络(Wireless Sensor Network,WSN)是一种大规模、自组织、无线多跳、以数据为中心的无基础设施网络,能够通过各类集成化微型传感器的协作进行实时监测、感知和采集各种环境或监测对象的信息 .随着无线通信、微芯片制造等技术的进步,WSN研究与应用取得了许多重要进展.但是由于无线信道的动态变化

2014-11-19 15:53:27 2904

原创 C#中的抽象类和静态类

c#中的抽象类的特征抽象类具有以下特性:·    抽象类不能实例化。·    抽象类可以包含抽象方法和抽象访问器。·    不能用 sealed修饰符修饰抽象类,因为这两个修饰符的含义是相反的。采用 sealed修饰符的类无法继承,而 abstract修饰符要求对类进行继承。·    从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实际实现。[2] 

2014-11-18 08:40:26 1589

原创 Java中的生产者消费者问题(多线程间同步通信)

JDK1.5之前的版本class ProducerConsumerDemo { public static void main(String[] args) { Resource r = new Resource(); Producer pro = new Producer(r); Consumer con = new Consumer(r); Thread t

2014-11-17 16:36:13 380

原创 asp.net mvc项目如何发布到IIS5上

1  修改global.asax文件[c-sharp] view plaincopypublic static void RegisterRoutes(RouteCollection routes)         {             routes.IgnoreRoute("{resource}.axd/{*pathInfo}

2014-10-19 22:23:14 672

转载 MVC3中 ViewBag、ViewData和TempData的使用和区别

MVC3中 ViewBag、ViewData和TempData的使用和区别public dynamic ViewBag { get; }public ViewDataDictionary ViewData { get; set; }ViewBag和ViewData其实是互通的ViewBag和ViewData的区别:ViewBag 不再是字典的键值对结构,而是 dy

2014-10-15 23:37:08 480

转载 操作系统内存管理

1. 内存管理方法        内存管理主要包括虚地址、地址变换、内存分配和回收、内存扩充、内存共享和保护等功能。 2. 连续分配存储管理方式      连续分配是指为一个用户程序分配连续的内存空间。连续分配有单一连续存储管理和分区式储管理两种方式。2.1 单一连续存储管理     在这种管理方式中,内存被分为两个区域:系统区和用户区。应用

2014-10-13 23:06:08 660

hfs 网络传输工具

hfs 网络传输工具 hfs 网络传输工具 hfs 网络传输工具

2017-10-18

HiJson-32位和64位,json格式化工具和校验json的工具

HiJson-32位和64位,json格式化工具和校验json的工具 HiJson-32位和64位,json格式化工具和校验json的工具

2017-10-17

Java加密与解密的艺术 第一版

目录回到顶部↑第一部分基础篇 第1章企业应用安全2 1.1 我们身边的安全问题2 1.2 拿什么来拯救你,我的应用3 1.3 捍卫企业应用安全的银弹8 1.4 为你的企业应用上把锁9 1.5 小结10 第2章企业应用安全的银弹—密码学11 2.1 密码学的发家史11 2.2 密码学定义、术语及其分类15 2.3 保密通信模型17 2.4 古典密码18 2.5 对称密码体制1 9 2.6 非对称密码体制26 2.7 散列函数28 2.8 数字签名29 2.9 密码学的未来30 2.10 小结32 第3章java加密利器34 3.1 java与密码学34 .3.2 java.security包详解37 3.3 javax.crypto包详解70 3.4 java.security.spec包和javax.crypto.spec包详解85 3.5 java.security.cert包详解91 3.6 javax.net.ssl包详解100 3.7 小结107 第4章他山之石,可以攻玉109 4.1 加固你的系统109 4.2 加密组件bouncy castle 111 4.3 辅助工具commons codec 120 4.4 小结121 第二部分实践篇 第5章电子邮件传输算法—base64 134 5.1 base64算法的由来134 5.2 base64算法的定义134 5.3 base64算法与加密算法的关系135 5.4 实现原理136 5.5 模型分析137 5.6 base64算法实现138 5.7 url base64算法实现147 5.8 应用举例151 5.9 小结153 第6章验证数据完整性—消息摘要算法155 6.1 消息摘要算法简述155 6.2 md算法家族157 6.3 sha算法家族167 6.4 mac算法家族181 6.5 其他消息摘要算法195 6.6 循环冗余校验算法—crc算法206 6.7 实例:文件校验209 6.8 小结211 第7章初等数据加密—对称加密算法213 7.1 对称加密算法简述213 7.2 数据加密标准—des 214 7.3 三重des—desede 222 7.4 高级数据加密标准—aes 227 7.5 国际数据加密标准—idea 232 7.6 基于口令加密—pbe 236 7.7 实例:对称加密网络应用242 7.8 小结254 第8章高等数据加密—非对称加密算法256 8.1 非对称加密算法简述256 8.2 密钥交换算法—dh 258 8.3 典型非对称加密算法—rsa 269 8.4 常用非对称加密算法—elgamal277 8.5 实例:非对称加密网络应用284 8.6 小结296 第9章带密钥的消息摘要算法—数字签名算法297 9.1 数字签名算法简述297 9.2 模型分析298 9.3 经典数字签名算法—rsa 299 9.4 数字签名标准算法—dsa 306 9.5 椭圆曲线数字签名算法—ecdsa 311 9.6 实例:带有数字签名的加密网络应用318 9.7 小结319 第三部分综合应用篇 第10章终极武器—数字证书332 10.1 数字证书详解332 10.2 模型分析335 10.3 证书管理337 10.4 证书使用351 10.5 应用举例360 10.6 小结360 第11章终极装备—安全协议362 11.1 安全协议简述362 11.2 模型分析364 11.3 单向认证服务369 11.4 双向认证服务381 11.5 应用举例387 11.6 小结387 第12章量体裁衣—为应用选择合适的装备389 12.1 实例:常规web应用开发安全389 12.2 实例:im应用开发安全399 12.3 实例:web service应用开发安全420 12.4 小结443 附录a java 6支持的算法445 附录b bouncy castle支持的 算法447

2017-09-15

阿里开源项目fastjson

阿里开源项目fastjson源码

2017-08-23

QCon 北京 2017 业务架构篇

微信红包后台系统可用性设计实践、人人车供应链系统技术架构演进、高速发展业务的架构应对实践、菜鸟末端业务技术架构治理实践、OCTO:千亿规模下的服务治理挑战与实践

2017-08-23

china-smartcity-bigdata-applicationmarket-research-wp

china-smartcity-bigdata-applicationmarket-research-wp

2013-07-18

如何在ns中添加协议

如何在ns中添加协议

2013-07-17

ns LEACH协议源码

ns LEACH协议源码

2013-07-17

ns mflood源码

ns mflood源码

2013-07-17

几个易混淆的区别

几个易混淆的区别

2012-09-22

空空如也

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

TA关注的人

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