自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张肖的博客

男人,累点没什么

  • 博客(218)
  • 资源 (1)
  • 收藏
  • 关注

转载 thrift server模式

最近在项目中需要把客户端的一些信息发送到服务器上,听起来是个很简单的需求,但是实际考虑下,觉得如果自己手工实现,工作量也不小,而且尽是些繁琐且无聊的事情,遂考虑用现成的库来实现。对比了protocol buffer与thrift后,本着偷懒到底的原则,选择了thrift,因为thrift本身提供了RPC框架,而protocol buffer仅是个序列化的库而已。   首先是编译thrift

2016-08-26 17:34:25 952

转载 常用的跨语言通信方案

传统的跨语言通信方案:基于SOAP消息格式的WebService基于JSON消息格式的RESTful 服务主要弊端:XML体积太大,解析性能极差JSON体积相对较小,解析相对较快,但表达能力较弱现在比较流行的跨语言通信方案:Google protobuf (http://code.google.com/p/protobuf)Apach

2016-08-26 15:30:46 1003

转载 ExecutorService创建多线程步骤

ExecutorService 建立多线程的步骤:1。定义线程类class Handler implements Runnable{}2。建立ExecutorService线程池ExecutorService executorService = Executors.newCachedThreadPool();或者int

2016-07-27 20:31:18 1843

原创 JAVA8之collect总结(给自己)

一,collect是一个终端操作,它接收的参数是将流中的元素累积到汇总结果的各种方式(称为收集器)二,预定义收集器包括将流元素归约和汇总到一个值.如下工厂方法返回类型用于toListList把流中所有元素收集到List中示例:List menus=Menu.getMenus.stre

2016-07-18 17:23:44 39681 3

原创 JAVA8之Stream总结(给自己)

一,Stream API 可以表达复杂的数据处理查询.常用操作如下二,可以使用filter,distinct,skip和limit对流进行筛选和切片三,可以使用map和flatMap提取或转换流中的元素四.可以使用findFirst和findAny方法查找流中的元素.你可以用allMatch,noneMatch和anyMatch方法让流匹配给定的谓语五,上述方法都利用了短路:找到结

2016-07-15 12:05:00 3098

原创 java8之lambda总结

一,lambda表达式可以理解为一种匿名函数:它没有名称,但是有参数列表,函数主体,返回值类型,甚至可能还有可以抛出的异常的列表二,lambda表达式可以让你简洁的完成函数参数化三,函数式接口就是有且仅有一个抽象方法的接口四,只有在接受函数式接口的地方才能使用lambda表达式五,lambda表达式允许你直接内联,为函数式接口的抽象方法提供实现,并且将整个表达式作为函数式接口的一个

2016-07-13 21:03:40 490

原创 复合lambda表达式

复习:public static void main(String[] args) { List list=new ArrayList(); //java8之前做法 Collections.sort(list, new Comparator() { public int compare(Apple o1, Apple o2) { return o1.getColor(

2016-07-13 20:52:59 392

原创 JAVA8之方法引用和构造引用

其实关于方法引用和构造引用大家可以简单理解为lambda的简写形式一.方法引用方法引用分为三类:1.指向静态方法的方法引用例子:public static void main(String[] args) { String num="122"; int parse = parse(Integer::parseInt,num); System.out.println(

2016-07-13 18:08:01 3776 3

原创 JAVA8之lambda表达式

一:lambda环绕执行模式也许你们像我一样,目前对lambda表达式只是浅显的认为是,匿名内部类的简写形式,有点仅仅是看着好看点,可读性更强一点.其实不然,lambda表达式是java8中函数参数化的一种重要体现.让我们看下面一个小小的例子: public static String getChar(ListProcess l){ List list=new ArrayLis

2016-07-13 14:05:46 753

原创 java8之行为参数化(函数为值化)

试想一下刚学面向对象的时候,我们常常会定义一个person类这个对象有自己的属性----------------年龄,性别,身高....这个对象也有自己对应的属性-------吃饭,睡觉,打豆豆.....美中不足的是,比如我们调用吃饭的方法.这个对象只会执行相同的操作,说直观一点.我想在他吃饭的之前喝点小酒,吃饭之后走几步消消食.大家一定想到了代理.这是一种解决方式.但是有没有其他

2016-07-12 17:19:14 2661

原创 JAVA8之初见

一:方法引用方法引用是java8中引入的新的概念--方法参数化的一种应用.即可以把方法当成参数进行传递.注意:方法中请慎重勿使用共享资源例子: //以往写法 File[] listFiles = new File(".").listFiles(new FileFilter() { public boolean accept(File file) { return fi

2016-07-12 14:55:47 415

原创 MQTT和spring的整合(生产者)

消息发送,这边不算是和spring完美结合,有同学那边有好的案例的话 ,希望能共享下.谢谢==================================================================================一,maven依赖 org.springframework.integration spring-integr

2016-07-10 16:17:20 14672 13

原创 MQTT和spring的整合(消费端)

一,maven依赖 org.springframework.integration spring-integration-mqtt 4.1.0.RELEASE org.eclipse.paho mqtt-client org.fusesource.mqtt-client mqtt

2016-07-10 16:01:09 18446 36

转载 logback简要介绍(三)

:是的子节点,是负责写日志的组件。有两个必要属性name和class。name指定appender名称,class指定appender的全限定名。 1.ConsoleAppender:把日志添加到控制台,有以下子节点::对日志进行格式化。(具体参数稍后讲解 ):字符串 System.out 或者 System.err ,默认 System.o

2016-07-07 10:23:45 300

转载 logback简要介绍(二)

在配置过滤器是报错:Java.lang.ClassNotFoundException: org.codehaus.janino.ScriptEvaluator,网上查找资料才发现需要额外的两个jar包,见下文。原文地址:http://aub.iteye.com/blog/1110008logback 简介logback 常用配置详解(一) and

2016-07-07 10:13:45 625

转载 logback简要介绍(一)

一:根节点包含的属性: scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。debug:当此属性设置为true时,将打印出logback内部日志信

2016-07-07 09:42:07 364

转载 大型网站架构之道

1 大型网站的特点用户多,分布广泛大流量,高并发海量数据,服务高可用安全环境恶劣,易受网络攻击功能多,变更快,频繁发布从小到大,渐进发展以用户为中心免费服务,付费体验2 大型网站架构目标高性能:提供快速的访问体验。高可用:网站服务一直可以正常访问。可伸缩:通过硬件增加/减少,提高/降低处理能

2016-07-06 17:04:20 696

转载 电商项目架构

1 电商案例原因分布式大型网站,目前看主要有几类1.大型门户,比如网易,新浪等;2.SNS网站,比如校内,开心网等;3.电商网站:比如阿里巴巴,京东商城,国美在线,汽车之家等。大型门户一般是新闻类信息,可以使用CDN,静态化等方式优化,开心网等交互性比较多,可能会引入更多的NOSQL,分布式缓存,使用高性能的通信框架等。电商网站具备以上两类的特点,比如产品详情可以采用CDN,静态化,交互性高的

2016-07-06 15:36:58 20320 3

转载 我们在网页上轻轻点击一下,发生了些什么(上)

1 B/S网络架构概述我们先了解下B/S网络架构是什么?B/S网络架构从前端到后端都得到了简化,都基于统一的应用层协议HTTP来交互数据,HTTP协议采用无状态的短链接的通信方式,通常情况下,一次请求就完成了一次数据交互,通常也对应一个业务逻辑,然后这次通信连接就断开了。采用这种方式是为了能够同时服务更多的用户,因为当前互联网应用每天都会处理上亿的用户请求,不可能每个用户访问一次后就一直保持住

2016-06-30 15:20:35 1875

转载 Chrome 开发工具之Network

经常会听到比如"为什么我的js代码没执行啊?","我明明发送了请求,为什么反应?","我这个网站怎么加载的这么慢?"这类的问题,那么问题既然存在,就需要去解决它,需要解决它,首先我们得找对导致问题的原因,才能"对症下药"。每个文件的载入、每次发送的请求也都是一次网络交互,所以在这个面板中,我们能够看到我们所需要的js文件是否被加载?我们所请求的接口到底返回了没有?我们能够知道哪个文件拖慢了

2016-06-30 11:23:41 509

转载 zookeeper 简单介绍

最终目的:保证事务的顺序一致性(分布式系统,个客户端与服务端的数据一致,顺序同步)basic paxos,fast paxosZookeeper集群部署 initLimit=5 syncLimit=2 server.1=192.168.211.1:2888:3888 server.2=192.168.211.2:2888:3888

2016-06-29 09:29:47 357

转载 session和cookie 回顾

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session。Cookie机制Cookie技术是客

2016-06-28 16:38:31 319

转载 秒杀系统

秒杀业务分析正常电子商务流程(1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订单;(5)付款;(6)卖家发货秒杀业务的特性(1)低廉价格;(2)大幅推广;(3)瞬时售空;(4)一般是定时上架;(5)时间短、瞬时并发量高;2 秒杀技术挑战假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对的技术挑战有:

2016-06-25 16:42:58 3068

转载 linux系统Ubuntu下简易安装mqtt

MQTT是“Message QueuingTelemetry Transport”的英文缩写意思是“消息队列遥测传输”是IBM开发的一个即时通讯协议。它是一种轻量级的、基于代理的“发布/订阅”模式的消息传输协议。其具有协议简洁、小巧、可扩展性强、省流量、省电等优点,而且已经有PHP,JAVA,Python,C,C#等多个语言版本,基本可以使用在任何平台上,几乎可以把所有联网物品和外部连接起来,所以

2016-06-22 15:21:41 7855

转载 索引什么时候创建

以下情况可以创建索引:•列中数据值分布范围很广•列中包含大量空值•列经常在•表经常被访问而且数据量很大,访问的数据大概占数据总量的2%到4%下列情况不要创建索引:•表很小•列不经常作为连接条件或出现在WHERE子句中•查询的数据大于2%到4%•表经常更新•加索引的列包含在表达式中

2016-06-22 09:18:00 595

转载 Spring+Quartz实现定时任务的配置方法(初级)

1、Scheduler的配置     说明:Scheduler包含一个Trigger列表,每个Trigger表示一个作业。2、Trigger的配置

2016-06-21 17:18:45 224

转载 redis开启认证

朋友的一个项目说接到阿里云的告警,提示服务器已沦为肉鸡,网络带宽被大量占用,网站访问很慢,通过SSH远程管理服务器还频繁断开链接。朋友不知如何下手,便邀请我帮忙处理。阿里云的安全告警邮件内容:在没有查到异常进程之前我是先把操作系统的带宽&端口用iptables 做了限制这样能保证我能远程操作服务器才能查找原因.在各种netstat –ntlp  的查看下没有任何异常。在top

2016-06-20 11:35:25 3006

转载 Redis.conf中配置全面说明

# By default Redis does not run as a daemon. Use 'yes' if you need it.# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.#Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程

2016-06-15 15:04:25 1499

转载 电商项目中的售后项目规划

电商的售后业务影响到消费者的体验,需要考虑的问题如下:一、主要业务点,分为必填和选填(必填是简化后的功能,能满足基本要求,但不完善,选填参考京东实现)       1、申请售后对象:订单为单位,不能选择数量(必填)、订单中某个商品为对象,可选择数量(选填)       2、用户申请售后时机:已支付未发货/已收货(必填)、除退款后任何情况都可以申请售后(选填)   

2016-06-15 14:59:42 2606

转载 电商项目中的秒杀

秒杀业务一、秒杀价格(参考京东)1、秒杀开始前,秒杀商品显示原价(涉及除秒杀活动页面外所有商品的显示页面,包括购物车、收藏、足迹等页面)2、秒杀开始前,可以使用原价购买商品3、秒杀开始前,秒杀活动中的商品显示秒杀价,而非原价。进入商品详细可显示原价 4、秒杀开始后,秒杀商品显示秒杀价(所有商品显示页面)5、秒杀结束后,秒杀商品恢复原价(涉及除秒杀活动页面外所有商品的显示

2016-06-15 14:58:50 3452 1

转载 电商项目中库存管理(问答式)

【今日话题】电商项目的库存设计,如何不卖超,取消订单把库存加回去,不能多加 - 沈括号1. 这个说一个之前处理并发的经验哈,情况应该是类似的,写sql的时候多加一个条件,用update tbl set col = col - num where col ≥ num,这样子吧 - 骑马爬树2. 再加个定时任务去检查用户是否下单 没有的话 update

2016-06-15 11:28:26 8366

原创 RestTemplate发送中文参数乱码问题

HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); headers.setContentType(type); headers.add("Accept", MediaType.APP

2016-06-12 09:05:55 11548

原创 一起来学springSecurity安全框架(二)

spring springsecurity div ul{ padding: 0px; margin: 0px; } .box{ height: 300px; wi

2016-06-02 17:59:54 549

原创 一起来学springSecurity安全框架(一)

开头:springSecurity很强大,也很方便,可以赋予登录用户不同的角色,用来决定这些用户可以访问那些资源好处很多...下面我们简易搭建起来springSecurity.一遍搭建 一边学第一步:搭建maven项目 maven坐标(只引入了springsecurity的一些必须坐标) javax.servlet javax.servlet-api

2016-05-31 15:17:33 727

转载 java hotspot内存管理机制

1  简介         依托JavaTM 2平台的力量,标准版(J2SETM)实现了内存的自动管理,将开发人员从复杂的显式内存管理中解放出来。         本文将对Sun公司的J2SE发行版中的Java HotSpot虚拟机中的内存管理进行一次综述。文中将会对用来进行内存管理的GC进行讲解,并对选择配置GC、设置执行GC时的内存区域给出一些意见。本文也可以用作资源文档,文中

2016-05-26 13:59:49 1126

转载 JVM虚拟机基础

提纲• HotSpot• ClassFile• ClassLoader• 内存模型、锁、同步• JVM内存管理和垃圾收集  HotSpot介绍• Java发展历程 1995年,Sun发布Java 1.0,承诺:Write Once,Run Anywhere   Hot

2016-05-26 13:43:30 276

转载 JVM内存管理(详)

目录 内存管理简介 GC简介 好的Collector的特性 设计或选择Collector GC性能指标 分代GC Java Collector 快速内存分配 GC根集合 Serial Collector Parallel Collector/Throughput Collector Parallel Compacting Collector Co

2016-05-26 11:58:42 245

转载 classloader介绍以及自定义classloader的初步认知

java应用环境中不同的class分别由不同的ClassLoader负责加载。一个jvm中默认的classloader有Bootstrap ClassLoader、Extension ClassLoader、App ClassLoader,分别各司其职:Bootstrap ClassLoader     负责加载java基础类,主要是 %JRE_HOME/lib/ 目录

2016-05-26 09:17:38 317

转载 GC运行流程以及申请创建对象流程

先看一下JVM的内存模型:  从大的方面来讲,JVM的内存模型分为两大块: 永久区内存( Permanent space )和堆内存(heap space)。 栈内存(stack space)一般都不归在JVM内存模型中,因为栈内存属于线程级别。每个线程都有个独立的栈内存空间。 Permanent sp

2016-05-25 17:31:39 391

转载 JAVA 三大GC(java6.0)

说到GC,首先要对Java 的内存模型有所了解。Java 的内存模型各个代的默认排列有如下图(适用JDK1.4.*  到 JDK6):Java 的内存模型分为Young(年轻代)Tenured(终身代)Perm(永久代)   在堆内存中的GC可以分为Minor GC(次要GC)和 Major GC(主要GC),次要

2016-05-25 17:30:52 390

空空如也

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

TA关注的人

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