自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(99)
  • 资源 (1)
  • 收藏
  • 关注

转载 关于Node.js后端架构的一点后知后觉

前言上周有幸和淘宝前端团队的七念老师做了一些NodeJS方面上的交流(实际情况其实是他电话面试了我╮(╯-╰)╭),我们主要聊到了我参与维护的一个线上NodeJS服务,关于它的现状和当下的不足。他向我提出的一些问题带给了我很大启发,尽管回答的不是很好。问题大意是,对于你意识到的这些不足,你将尝试怎样去改进它们?甚至,如果给你一个机会来重新设计这个系统服务,你将如何做?相比现在有什么的改进?为什么说...

2018-02-28 21:22:36 186

转载 记最近一次Nodejs全栈开发经历

背景:前段时间大部门下新成立了一个推广百度OCR、文字识别、图像识别等科技能力在金融领域应用的子部门。因为部门刚成立,基础设施和人力都是欠缺的。当时分到我们部门的任务是抽调一个人做新部门主站前端开发工作。本来说的是只负责页面的开发工作。当我参加过需求品审会后,了解到新部门人力不足,而我今年主要任务又是在我们部门做基于Nodejs的前端后端分离的架构升级工作。在这之前就是用Nodejs写了两个内部系...

2018-02-28 21:20:31 367

转载 图解 交集(join)和 合并(union)

假设我们有两张表。Table A 是左边的表。Table B 是右边的表。其各有四条记录,其中有两条记录是相同的,如下所示:id name       id  name1  Pirate        1   Rutabaga2  Monkey     2   Pirate3  Ninja         3   Darth Vader4  Spaghetti   4   Ninja下面让我们来看...

2018-02-28 18:36:30 4575

转载 Java中导入、导出Excel

Java中导入、导出Excel一、介绍当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统、银行系统)。或者是:我们已经习惯用Excel打印。这样在我们实际的开发中,很多时候需要实现导入、导出Excel的应用。目前,比较常用的实现Java导入、导出Excel的技术有两种Jakarta POI和Java Excel下面我就分别讲...

2018-02-28 18:30:33 168

转载 java 分页导出百万级数据到excel,分页实现

最近修改了一个导出员工培训课程的历史记录(一年数据),导出功能本来就有的,不过前台做了时间限制(只能选择一个月时间内的),还有一些必选条件, 导出的数据非常有局限性。心想:为什么要做出这么多条件限制呢?条件限制无所谓了,能限制导出数据的准确性,但是时间? 如果我想导出一年的数据,还要一月一月的去导出,这也太扯了。于是我试着放开时间js限制,让用户自己随便选好了,然后自己选了一段时间,选了几门课程,...

2018-02-28 18:26:24 13636 3

转载 JAVA使用POI如何导出百万级别数据

 用过POI的人都知道,在POI以前的版本中并不支持大数据量的处理,如果数据量过多还会常报OOM错误,这时候调整JVM的配置参数也不是一个好对策(注:jdk在32位系统中支持的内存不能超过2个G,而在64位中没有限制,但是在64位的系统中,性能并不是太好),好在POI3.8版本新出来了一个SXSSFWorkbook对象,它就是用来解决大数据量以及超大数据量的导入导出操作的,但是SXSSFWorkb...

2018-02-28 18:20:13 269

转载 lua简单操作sqlite3

转载地址:http://www.cnblogs.com/windtail/archive/2012/01/08/2623191.htmlluasql模块支持sqlite3,可以完成最基本的数据库功能,不过官方文档上写得不是很详细。扫了下源代码,外加实验了下,得出了点经验。环境Windows XP,LuaForWindows代码require"luasql.sqlite3"    function ...

2018-02-28 17:56:40 2180

转载 网络篇——七层协议、四层协议、TCP、HTTP、SOCKET、长短连接

OSI(Open System Interconnection)是一个开放性的通行系统互连参考模型,他是一个定义的非常好的协议规范,共包含七层协议。OSI七层协议是由ISO (International Standards Organization)在1978(maybe 1979)年为网络通信制定的。 OSI的7层从上到下分别是 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数...

2018-02-28 15:41:53 11129

原创 网络七层协议、TCP/IP、UDP、HTTP、Socket

谈到任何联网的协议,我们就必须要谈到OSI(网络七层协议模型),必须遵循这个协议模型,我们的手机和电脑才可以联网通信,首先来看一下OSIOSIOSI是一个开放性的通信系统互连参考模型,他是一个定义得非常好的协议规范。OSI模型有7层结构,每层都可以有几个子层。应用层示例:TELNET,HTTP,FTP,NFS,SMTP等。表示层示例:加密,ASCII等。会话层示例:RPC,SQL等。传输层示例:T...

2018-02-28 15:36:02 261

转载 你真的会写java吗?

导语自2013年毕业后,今年已经是我工作的第4个年头了,总在做java相关的工作,终于有时间坐下来,写一篇关于java写法的一篇文章,来探讨一下如果你真的是一个java程序员,那你真的会写java吗?笔者是一个务实的程序员,故本文绝非扯淡文章,文中内容都是干货,望读者看后,能有所收获。文章核心其实,本不想把标题写的那么恐怖,只是发现很多人干了几年java以后,都自认为是一个不错的java程序员了,...

2018-02-28 15:12:19 281

转载 Dubbox 环境搭建

第一章:Dubbox简介 Dubbox是一个开源的RPC(Remote ProcedureCall Protocol)远程调用框架,是由dangdang对阿里的Dubbo的升级,可以被视为Dubbo的增强版,基本架构没有变动,升级spring2.x到spring3.x,支持restful风格的调用调试方式,丰富了序列化的方式,提高了序列化的性能。 Dubbox的Github官网:https://g...

2018-02-28 15:01:58 875

转载 分布式服务框架 dubbo/dubbox 入门示例

dubbo是一个分布式的服务架构,可直接用于生产环境作为SOA服务框架。官网首页:http://dubbo.io/ ,官方用户指南 http://dubbo.io/User+Guide-zh.htm上面的几张图画得不错,完全可以当做SOA架构的学习资料淘宝将这个项目开源出来以后,得到了不少同行的支持,包括:当当网的扩展版本dubbox :https://github.com/dangdangdot...

2018-02-28 14:57:19 143

原创 JStorm-介绍-阿云栖社区

摘要: 1.概述   JStorm 是一个类似于 Hadoop 的MapReduce的计算系统,它是由Alibaba开源的实时计算模型,它使用Java重写了原生的Storm模型(Clojure和Java混合编 写的),并且再原来的基础上做了许多改进。1.概述  JStorm 是一个类似于 Hadoop 的MapReduce的计算系统,它是由Alibaba开源的实时计算模型,它使用Java重写了原生...

2018-02-28 14:53:05 2291

原创 阿里的STORM——JSTORM

看介绍文档貌似挺好:https://github.com/alibaba/jstorm 阿里拥有自己的实时计算引擎类似于hadoop 中的MR开源storm响应太慢开源社区的速度完全跟不上Ali的需求降低未来运维成本提供更多技术支持,加快内部业务响应速度现有Storm无法满足一些需求现有storm调度太简单粗暴,无法定制化Storm 任务分配不平衡RPC OOM一直没有解决监控太简单对ZK 访问频...

2018-02-28 11:49:49 1332

原创 spring事物配置,声明式事务管理和基于@Transactional注解的使用

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

2018-02-28 11:44:02 182

原创 Java工作流引擎:jBPM、Activiti以及SWF

http://zhouliang.pro/2013/07/06/bpm-jbpm-activiti/这只是一篇非常粗浅的记录我对工作流引擎认识的文章。知道工作流引擎是很久之前了,但是一直都没有机会尝试,一是没有业务上的需要,二是感觉工作流入门不容易。最近,项目中用到了一点工作流的东西,虽然我没有具体参与,但是了解一下还是好的。于是抽周末两天时间读了一些文章和jBPM以及Activiti的User ...

2018-02-28 11:11:24 662

原创 Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式)介绍

一、普通同步方式二、事务方式(Transactions)三、管道(Pipelining)四、管道中调用事务五、分布式直连同步调用六、分布式直连异步调用七、分布式连接池同步调用八、分布式连接池异步调用九、需要注意的地方十、测试十一、完整的测试代码                        地址:http://www.open-open.com/lib/view/open1410485827242...

2018-02-28 11:07:23 185

转载 利用多写Redis实现分布式锁原理与实现分析

在我写这篇文章的时候,其实我还是挺纠结的,因为我这个方案本身也是雕虫小技拿出来显眼肯定会被贻笑大方,但是我最终还是拿出来与大家分享,我本着学习的态度和精神,希望大家能够给与我指导和改进方案。一、关于分布式锁关于分布式锁,可能绝大部分人都会或多或少涉及到。 我举二个例子:场景一:从前端界面发起一笔支付请求,如果前端没有做防重处理,那么可能在某一个时刻会有二笔一样的单子同时到达系统后台。场景二:在Ap...

2018-02-28 11:05:02 303

转载 从0到1起步-跟我进入堆外内存的奇妙世界

堆外内存一直是Java业务开发人员难以企及的隐藏领域,究竟他是干什么的,以及如何更好的使用呢?那就请跟着我进入这个世界吧。一、什么是堆外内存1、堆内内存(on-heap memory)回顾堆外内存和堆内内存是相对的二个概念,其中堆内内存是我们平常工作中接触比较多的,我们在jvm参数中只要使用-Xms,-Xmx等参数就可以设置堆的大小和最大值,理解jvm的堆还需要知道下面这个公式:堆内内存 = 新生...

2018-02-28 11:02:56 418

转载 用Redis轻松实现秒杀系统

导论曾经被问过好多次怎样实现秒杀系统的问题。昨天又在CSDN架构师微信群被问到了。因此这里把我设想的实现秒杀系统的价格设计分享出来。供大家参考。秒杀系统的架构设计秒杀系统,是典型的短时大量突发访问类问题。对这类问题,有三种优化性能的思路: 写入内存而不是写入硬盘 异步处理而不是同步处理 分布式处理 用上这三招,不论秒杀时负载多大,都能轻松应对。更好的是,Redis能够满足上述三点。因此,用Redi...

2018-02-28 10:57:46 268

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

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

2018-02-28 10:56:27 209

转载 Redis入门及在商城案例中的使用

自学那么多月以来学到的知识点挺多几乎每天都在接受新东西,接受的多忘的也多,想回头再去找也不知道从哪里找了,所以决定执行好几个月前就决定的事情-写博客,用来记录自己每次所学习到的东西。由于自己实习的时候,自己做的项目的数据库就是用的MySql跟Redis。所以先写下以前在做商城案例的时候用的redis。redis属于NoSql分类,它把数据都是缓存在内存中的,我们都知道内存的读写效率跟硬盘不是一个级...

2018-02-28 10:54:09 332

原创 Redis加入服务层缓存

1. 需要做的事情1、 Redis服务搭建2、 为功能添加缓存功能2. redis介绍2.1. 什么是redisRedis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下:字符串类型散列类型列表类型集合类型有序集合类型。2.2. redis的应用场景缓存(数据查询、短连接、新闻内容、商...

2018-02-28 10:53:47 1160

转载 微服务就是一把双刃剑

微服务是银弹吗?自2014年“微服务”一词真是越来越火,不谈Microservices彷佛就out了,那么我们先来看微服务具有哪些特点:组件以服务的形式提供围绕业务功能进行组织强化终端与弱化管道产品而不是项目独立布署单一职责去中心化DevOps与组织架构我要讲的故事开始了A公司的技术架构体系目前还是以集群扩展体系为主,我们可以看下图所示,在这种体系结构中,可以看到应用都是单块结构,但是单块结构的应...

2018-02-28 10:21:32 263

转载 缓存穿透、缓存并发、缓存失效之思路变迁

我们在用缓存的时候,不管是Redis或者Memcached,基本上会通用遇到以下三个问题:缓存穿透缓存并发缓存失效一、缓存穿透Paste_Image.pngPaste_Image.pngPaste_Image.png注:上面三个图会有什么问题呢?我们在项目中使用缓存通常都是先检查缓存中是否存在,如果存在直接返回缓存内容,如果不存在就直接查询数据库然后再缓存查询结果返回。这个时候如果我们查询的某一个...

2018-02-28 10:16:44 155

原创 redis的缓存穿透和缓存雪崩

缓存穿透和缓存失效的预防和解决缓存穿透:认识缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。解决办法:对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃。还有最常见的则是采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会...

2018-02-28 10:14:21 2829

原创 OpenResty学习笔记(十) 登录验证

web端也不需要什么页面了,直接发一个http的get请示,把user跟pwd作为参数传过来,nginx接收,然后走一下数据库验证并给出返回,这应该是个简单得不能再简单的登录了吧。既然那么简单那么就直接上代码啦。 首先是Nginx的配置:http { lua_package_path '/opt/nginx/openresty-test/lua/?.lua;/opt/nginx/openr...

2018-02-27 19:04:07 827

原创 nginx+lua实现登陆验证

用于在多台服务器上单点登录SSO、无SESSION,用户身份的验证。1、安装luayum install readline.x86_64 readline-devel.x86_64wget http://www.lua.org/ftp/lua-5.1.5.tar.gzmake linuxmake install注意:不要使用5.2版本,5.2版本的lua和nginx的整合有问题,编译会报错:LUA...

2018-02-27 18:57:28 2252

原创 nginx+lua授权+fastcgi

标题起的不太好,但是一时也想不到简单的句子来概括这个问题。 解释问题之前,先描述一下我的需求吧。原始需求我用django开发了一个运维管理平台(后简称opsmgr),希望把Nagios的管理集成进去, 用iframe内嵌。但是问题来了,nagios有自己的认证,opsmgr有自己的认证, 两套认证很麻烦,因此希望nagios能够借用opsmgr的认证,但是由于跨域, 且不方便修改nagios的代码...

2018-02-27 18:49:37 209

转载 史上最简单的 SpringCloud 教程 | 终章

错过了这一篇,你可能再也学不会 Spring Cloud 了!Spring Boot做为下一代 web 框架,Spring Cloud 作为最新最火的微服务的翘楚,你还有什么理由拒绝。赶快上船吧,老船长带你飞。终章不是最后一篇,它是一个汇总,未来还会写很多篇。案例全部采用Spring Boot 1.5.x ,Spring Cloud版本为Dalston.RELEASE我为什么这些文章?一是巩固自己...

2018-02-27 18:30:21 260

转载 Spring Cloud全家桶主要组件及简要介绍

一、微服务简介微服务是最近的一两年的时间里是很火的一个概念。感觉不学习一下都快跟不上时代的步伐了,下边做一下简单的总结和介绍。何为微服务?简而言之,微服务架构风格这种开发方法,是以开发一组小型服务的方式来开发一个独立的应用系统的。其中每个小型服务都运行在自己的进程中,并经常采用HTTP资源API这样轻量的机制来相互通信。这些服务围绕业务功能进行构建,并能通过全自动的部署机制来进行独立部署。这些微服...

2018-02-27 15:13:47 284

原创 SpringCloud分布式的五大重点

SpringCloud分布式的五大重点的基本介绍服务器的注册与发现—Netflix Eureka客户端负载均衡—Netflix Ribbon断路器—Netflix Hystrix服务网关—Netflix Zuui分布式配置—Spring Cloud ConfigEureka:一个RESTful服务,用来定位运行在AWS地区(Region)中的中间层服务。 它由两个组件组成:Eureka服务器和Eu...

2018-02-27 15:02:49 3679

原创 SpringBoot入门最详细教程

网上有很多springboot的入门教程,自己也因为项目要使用springboot,所以利用业余时间自学了下springboot和springcloud,使用下来发现springboot还是挺简单的,体现了极简的编程风格,大部分通用都是通过注解就可以完成,下面就来详细讲解下如何使用springboot来开发一个简单的restful api网关功能,可以提供给H5或者android、ios进行接口开...

2018-02-27 11:11:23 292743 29

原创 本地项目上传Github简易教程

在日常的开发过程中,我们一般都会有些组件或者框架代码的积累,但是组件代码如何分享开源出去是个比较麻烦的问题,但是自从有了Github一下子就简单多了,大家可以很方便的将代码挂到网上供大家学习和提简易,本文就介绍下如何将本地的项目上传到Github上,整个过程其实很简单请给我十分钟,你就能轻松上手。1. 在Gtihub新建一个Repo首先注册一个Github帐号,然后进入到自己的profile页面,...

2018-02-27 11:07:55 429

原创 如何优雅的写日志

前言在代码中编写日志是日常开发中的基本要求,记录日志一方面是方便日后通过日志能够查找问题原因,另一方面也可以用于后续的审计工作。我以前对团队编写日志的要求是,通过打印的日志就可以看出整个代码的业务逻辑,所以我们团队的代码可以做到没有注释,通过代码中的日志就可以了解到整个代码的业务逻辑。这样要求的好处是看日志查问题的时候,通过看日志就知道代码的处理逻辑,而不用再翻出代码来看业务处理逻辑了。我相信很多...

2018-02-27 11:02:08 5110

转载 springcloud入门系列(2)-Feign、Ribbon实现Rest接口请求和负载均衡

前面我们介绍了通过springcloud的eureka服务注册组件实现,并且实现了多机互备的HA,同时也将之前写的springboot的服务注册到了eureka上,今天我们主要来介绍下作为服务使用者如何去使用这些服务接口并且实现基于服务化的软负载均衡。对于之前实现的springboot的rest接口服务,一般来说进行restful接口的接收和拆组包,可以通过apache的httpclient、jd...

2018-02-27 10:54:57 341

原创 MyBatis和Hibernate相比,优势在哪里?

作者:乌拉拉链接:https://www.zhihu.com/question/21104468/answer/58579295来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。1、开发对比开发速度Hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。个人觉得要用好Mybatis还是首先要先理解好Hibernate...

2018-02-27 10:37:36 981

原创 MyBatis Generator 自动生成Dao、Bean、Mapping相关

1、配置eclipse使用MyBatis Generator[java] view plain copy从 https://github.com/mybatis/generator/releases 下载MyBatis Generator  把解压后的MyBatis Generator放入eclipse对应的目录中(features/plugins)    重启eclipse,在 File-&gt...

2018-02-27 10:27:14 292

原创 什么是索引?Mysql目前主要的几种索引类型

一、索引MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。创建索引时,你需要确保该索引是应用在 SQ...

2018-02-27 10:11:16 179124 34

转载 数据库索引的类型

首先请查看不同引擎支持的索引类型:存储引擎简介 。聚集索引和非聚集索引概念见:聚集索引与非聚集索引 和 聚集索引 。 覆盖索引见:覆盖索引 。1. InnoDB的每一个表都会有一个聚集索引(第一索引,主键索引)。InnoDB按照主键进行聚集,如果没有定义主键,InnoDB会试着使用唯一的非空索引来代替。如果没有这种索引,InnoDB就会定义隐藏的主键然后在上面进行聚集。2. InnoDB不支持非主...

2018-02-27 10:08:08 349

C语言课程设计

C语言课程设计,经调试,无Bug,希望大家多多下载,多评论,铀资源一起交流交流!

2014-05-26

空空如也

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

TA关注的人

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