自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一涵的博客

一涵的博客

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

转载 程序员面试,为什么不跟我谈高并发?

作为一个看过几千份简历,面试过几百人的面试官,常常会看到简历中有如下文字:对业务逻辑解耦,高并发等有比较深入的研究和丰富的开发实战经验对解决高并发问题有深入理解熟悉大并发技术,如:反向代理、负载均衡、Keepalived而当我在面试中,问及对方的职业规划的时候,也有一大半人会回答希望将来可以处理高并发业务希望学习高并发相关技术希望开发数千万/数亿级别并发的应用但是当我问及以下问题的时候,绝大多数人...

2018-05-27 11:20:41 760

原创 UML、架构方案、业务架构、技术架构、设计文档

UML、架构方案、业务架构、技术架构、设计文档1、uml有哪五种模型?Use Case Model; Analysis Model;Design Model;Implementation Model;Deployment Model;Use Case模型(Use Case Model),分析模型(Analysis Model),设计模型(Design Model)和实现模型(Implementat...

2018-05-27 01:38:06 7198

原创 敏捷项目管理截图资料

2018-05-20 16:48:42 268

转载 有哪些通俗易懂的例子可以解释 IaaS、PaaS、SaaS 的区别?

https://www.zhihu.com/question/21641778

2018-05-20 16:30:48 23712 5

转载 基于Docker及Kubernetes技术构建容器云(PaaS)平台概述

【编者的话】目前很多的容器云平台通过Docker及Kubernetes等技术提供应用运行平台,从而实现运维自动化,快速部署应用、弹性伸缩和动态调整应用环境资源,提高研发运营效率。从宏观到微观(从抽象到具体)的思路来理解:云计算→PaaS→ App Engine→XAE[XXX App Engine] (XAE泛指一类应用运行平台,例如GAE、SAE、BAE等)。本文简要介绍了与容器云相关的几个重要...

2018-05-20 16:24:37 3901 1

原创 Java多线程编程中不变模式的详解

java多线程编程中,常用的多线程设计模式包括:Future模式、Master-Worker模式、Guarded Suspeionsion模式、不变模式和生产者-消费者模式等。这篇文章主要讲述不变模式,关于其他多线程设计模式的地址如下:关于Future模式的详解: Java多线程编程中Future模式的详解关于Master-Worker模式的详解: Java多线程编程中Master-Worker模...

2018-04-14 23:47:31 195

转载 垃圾收集器Serial 、Parallel、CMS、G1

这里介绍4个垃圾收集器,如果进行了错误的选择将会大大的影响程序的性能。    时至今日,仍然有两个事情困扰着开发人员:垃圾收集(GC)和了解异性(程序猿的悲鸣),后者我确实不太了解,因为我被前者搞的无暇顾及怎么了解异性,特别是当知道在JAVA8中对这一区域有了很大的改进和提升还有移除了PermGen和以一些新的令人兴奋的调优。    当我们谈到垃圾回收时,我们绝大多数都知道利用它的概念在我们日常的...

2018-04-14 23:34:50 179

转载 多线程

一、多线程1、操作系统有两个容易混淆的概念,进程和线程。进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。线程:表示程序的执行流程,是CPU调度执行的基本单位;线程有自己的程序计数器、寄存器、堆栈和帧。同一进程中的线程共用相同的地址空间,同时共享进进程锁拥有的...

2018-04-14 23:17:12 153

原创 GC算法与种类

一)GC的概念GC,指Ganbage Collection 垃圾回收器。GC的算法主要分为四类:引用计数法、标记清除、标记压缩、复制算法。下面将对这几种算法进行逐一说明。(二)GC的算法——引用计数法,没有被java引用引用计数器的实现很简单,对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器就减1。只要对象A的引用计数器的值为0,则对象A就不可能再被使用...

2018-04-14 23:12:31 148

原创 JVM内存管理、JVM垃圾回收机制、新生代、老年代以及永久代

     JVM运行时数据区由程序计数器、堆、虚拟机栈、本地方法栈、方法区部分组成,结构图如下所示。     JVM内存结构由程序计数器、堆、栈、本地方法栈、方法区等部分组成,结构图如下所示:                    1)程序计数器,也指pc寄存器   几乎不占有内存。用于取下一条执行的指令。   2)堆   所有通过new创建的对象的内存都在堆中分配,其大小可以通过-Xmx和-Xm...

2018-04-14 23:04:01 448

原创 JVM深入与项目中应用--JVM理解

1. JVM/JRE/JDKJVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。引入Java语言虚拟机后,Java语言在不同平台上运行时不需...

2018-04-14 22:48:17 1056

转载 express redis socket 消息提醒方案

express redis socket 消息提醒方案:本地emit 轮循服务器获取redis 再推送原创 2016年08月22日 11:00:54749在做项目时,需要实现消息提醒,因为现在有多个项目,都需要实现。为了实现多项目公用,和以后项目也可以使用。单独开了个项目,起了个node 服务来实现消息提醒。用express redis socket.io来实现的。session 都存在redis...

2018-04-08 00:36:19 449

原创 ThreadLocal

概述相信读者在网上也看了很多关于ThreadLocal的资料,很多博客都这样说:ThreadLocal为解决多线程程序的并发问题提供了一种新的思路;ThreadLocal的目的是为了解决多线程访问资源时的共享问题。如果你也这样认为的,那现在给你10秒钟,清空之前对ThreadLocal的错误的认知!more看看JDK中的源码是怎么写的:This class provides thread-loca...

2018-04-03 18:16:24 115

原创 峰值QPS/QPS/PV/UV/服务器数量/并发数/吐吞量/响应时间计算公式

TPStps是每秒内的事务数,比如执行了dml操作,那么相应的tps会增加;qps是指每秒内查询次数,比如执行了select操作,相应的qps会增加。不同的应用系统tps,qps是没有可对比性的。例如:应用A,每个select查询需要1ms, 一个connection的话,一直不停的执行,1S内 可执行1000次,也就是1000qps应用B,每个select查询需要100ms, 一个connect...

2018-03-26 11:03:47 1138

原创 分布式系统唯一ID生成方案汇总

系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会有多个ID生成的策略。下面就介绍一些常见的ID生成策略。1. 数据库自增长序列或字段最常见的方式。利用数据库,全数据库唯一。优点:1)简单,代码方便,性能可以接受。2)数字ID天然排序,对分页或者需要排序的结果很有帮助。 缺点:1)不同数据...

2018-03-25 11:48:32 206

转载 谈谈我对服务熔断、服务降级的理解

伴随着微服务架构被宣传得如火如荼,一些概念也被推到了我们面前(管你接受不接受),其实大多数概念以前就有,但很少被提的这么频繁(现在好像不提及都不好意思交流了)。想起有人总结的一句话,微服务架构的特点就是:“一解释就懂,一问就不知,一讨论就吵架”。其实对老外的总结能力一直特别崇拜,Kevin Kelly、Martin Fowler、Werner Vogels……,都是著名的“演讲家”。正好这段时间看...

2018-03-25 10:01:29 1573

原创 架构设计---技术栈02(待完善)

1、SOA核心技术之序列化与反序列化  序列化/反序列化   序列化是将对象转换为字节序列的过程称为对象的序列化,也简称为编码;   反序列化是序列化的逆过程。将字节序列恢复为对象的过程称为对象的反序 列化,也简称为解码;   protobuf,json,Messgaepack(性能好,但是坑多)   通过将对象序列化字节数组,使得通过网络连接的系统之间能够进行对象的传输;   解决远程接口调用J...

2018-03-24 22:43:01 223

转载 BIO、NIO和AIO的区别(待整理)

BIO、NIO和AIO的区别(简明版)  转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6543960.html      一:事件分离器        在IO读写时,把 IO请求 与 读写操作 分离调配进行,需要用到事件分离器。根据处理机制的不同,事件分离器又分为:同步的Reactor和异步的Proactor。        Reactor模型: -...

2018-03-24 22:05:51 193

转载 Netty序章之BIO NIO AIO演变

Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能、高可靠的网络服务器和客户端程序。Netty简化了网络程序的开发,是很多框架和公司都在使用的技术。更是面试的加分项。Netty并非横空出世,它是在BIO,NIO,AIO演变中的产物,是一种NIO框架。而BIO,NIO,AIO更是笔试中要考,面试中要问的技术。也是一个很好的加分项,加分就是加工资,你还在等什么?本章带你细细品味三者的不...

2018-03-24 21:47:22 207

转载 对Java Serializable(序列化)的理解和总结

1、序列化是干什么的?       简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。2、什么情况下需要序列化       a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候;    b)当...

2018-03-17 23:45:17 149

原创 架构设计---技术栈01

1、star模型的是哪几个单词的缩写,star具体内容是什么,为什么star能很好地考察候选人的能力?   star模型:situation(情景) task(任务) action(行动) result(结果)   定义:基于一种假设,根据候选人过去的行为表现可以预测将来的绩效表现。           特定的场景或者环境完成某一任务所采取的行为和产生的结果,判断候选人的能力和素质。  有效性:候...

2018-03-17 22:44:14 924

原创 架构设计---soa与msa的概念

1. 前言随着现在互联网行业的发展,越来越多的框架、中间件、容器等开源技术不断地涌现,更好地来服务于业务,实现业务并解决问题。然而面对众多的技术选择,我们要如何甄别出适合自己团队业务的技术呢?对于人来说,鞋子过大,可能影响奔跑的速度,鞋子过小,可能影响身体的成长。技术对于业务也是如此的关系。所以,相对于技术的学习、搭建、使用、运维等技能,我们 对技术的甄别选择更是重中之重。那么本文要讲的Dubbo...

2018-03-12 23:59:01 4103 1

原创 nodejs---浅析 Node.js 单线程模型

浅析 Node.js 单线程模型Node.js 采用事件驱动和异步 I/O 的方式,实现了一个单线程、高并发的 JavaScript 运行时环境,而单线程就意味着同一时间只能做一件事,那么 Node.js 如何通过单线程来实现高并发和异步 I/O?本文将围绕这个问题来探讨 Node.js 的单线程模型 。1、高并发策略一般来说,高并发的解决方案就是提供多线程模型,服务器为每个客户端请求分配一个线程...

2018-03-12 23:35:53 1586

翻译 nodejs---关于真正理解Node.js事件循环你需要了解的一切

原文出处 What you should know to really understand the Node.js Event LoopNode.js是一个基于事件的平台。这意味着Node中发生的任何事情都是对于事件的响应。传入Node的数据处理要经历一层层嵌套的回调。这一流程相对于开发者被抽象出来,由一个叫做libuv的库处理,就是libuv为我们提供了事件循环机制。事件循环也许是Node中最...

2018-03-12 23:33:00 756

转载 nodejs---socket.io搭配pm2(cluster)集群解决方案

socket.io搭配pm2(cluster)集群解决方案阅读目录socket.io与cluster场景重现原因何在多种实现服务端路由上帝进程路由总结socket.io与cluster在线上系统中,需要使用node的多进程模型,我们可以自己实现简易的基于cluster模式的socket分发模型,也可以使用比较稳定的pm2这样进程管理工具。在常规的http服务中,这套模式一切正常,可是一旦serve...

2018-03-12 23:26:19 3868 1

原创 Mac下intellij配置maven教程

1、下载Maven解压后我放到了这里: /Users/huangshibao/huang/soft/apache-maven-3.5.32.编辑bash_profile文件:vi ~/.bash_profile配置如下两个环境变量:export M2_HOME="/Users/huangshibao/huang/soft/apache-maven-3.5.3"export PATH="$M2_HO...

2018-03-10 22:29:38 3393 1

原创 项目问题思考之策略模式

求: 项目中一个模块需要支持对图片,PDF,文本文件的操作,需要读取他们的内容在前台显示,显示缩略图,保存他们的内容到后台,删除内容等问题与教训: 最初安排我任务时说只需要支持图片跟pdf就可以了,然后我觉得很简单,于是不加思索的开始做了,没有考虑以后会不会添加新的文件类型等等,作为一个软件开发人员应该考虑的可拓展性. 最终工作很“顺利的完成

2015-10-03 22:42:41 301

原创 数据库的事物隔离级别通俗理解

总的说,数据库事物无非就两种:读取事物(select)、修改事物(update,insert)。在没有事物隔离控制的时候,这两种事物的排列,A22, 就有四种有序的并发事物可能性(更新时又一个更新,更新时来了一个读取的,读取时来了一个更新的,读取时来了一个插入的,最后一种有点不大一样)。 这样多个事物在同一时刻对同一(数据的操作可能就会影响到最终期望的结果,通常有四种情况(1) 两个更新事

2015-10-03 22:40:36 193

转载 Spring MVC 解读——View,ViewResolver

一、概念理解    View ---View接口表示一个响应给用户的视图,例如jsp文件,pdf文件,html文件等,它的定义如下?1234567891011public interface View {    //HttpSe

2015-10-03 22:38:53 289

转载 Spring MVC 解读——@RequestMapping

Spring MVC 解读——@RequestMapping    上一篇文章中我们了解了Spring如何处理@RequestMapping注解,并将请求映射信息保存到系统中以处理客户端发送来的请求,但是Spring是怎样接受请求,并根据请求URL来匹配正确的处理器方法呢,更重要的是Spring允许我们定义签名灵活的处理器方法,也就是说你的参数类型,顺序,返回类型都可以自定义,只要你方便就

2015-10-03 22:36:49 590

转载 Spring MVC 解读——@RequestMapping

Spring MVC 解读——@RequestMapping    为了降低文章篇幅,使得文章更目标化,简洁化,我们就不例举各种@RequestMapping的用法等内容了.    文章主要说明以下问题:Spring怎样处理@RequestMapping(怎样将请求路径映射到控制器类或方法)Spring怎样将请求分派给正确的控制器类或方法

2015-10-03 22:35:11 655

转载 Spring MVC 解读---<context:component-scan/>

Spring MVC 解读---    注解是骑士魂牵梦绕的美丽公主,也是骑士的无法摆脱的噩梦...一、    想必@Component,@Repository,@Service,@Controller几个常用的Type-Level的Spring MVC注解,大家都很清楚他们的意思跟用途。标记为@Component的类,在使用注解配置的情况下,系统启动时会被

2015-10-03 22:32:09 266

转载 Spring MVC 解读——@Autowired

Spring MVC 解读——@Autowired一、@Autowired    作为一个Spring开发者对@Autowired注解必定是非常了解了, 顾名思义自动装配,应该是Spring会自动将我们标记为@Autowired的元素装配好,与其猜测不如看看它的定义:?1234567

2015-10-03 22:29:29 473

转载 Spring MVC 解读——<mvc:annotation-driven/>

Spring MVC 解读——一、AnnotationDrivenBeanDefinitionParser    通常如果我们希望通过注解的方式来进行Spring MVC开发,我们都会在***-servlet.xml中加入标签来告诉Spring我们的目的。但是我们为什么这么做呢?这个标签是什么意思呢?它做了什么呢?    同样为了弄清楚这些问题, 像标签一样,我们先找到

2015-10-03 22:27:05 276

原创 JDK+MyEclipse+Tomcat的配置

JDK+MyEclipse+Tomcat的配置1. 安装配置JDK      为了管理方便,此处安装jdk1.6.0_10到C:\Program Files\Java文件夹下,下面进行环境变量的配置。          右键我的电脑—属性—高级—环境变量:          (1) 首先,为了指定命令搜索路径,在系统变量的PATH变量中增加C:\Program Files\Java\j

2015-10-03 15:07:27 194

原创 JAVA 基础之Static关键字和类加载

问题一  : 类什么时候被加载/类加载时机???:有如下几个类,我先运行TestA,再运行TestB,那么:         class A:public class A {      public static int a = 6;  }   class TestA:public class TestA {     

2015-09-12 22:22:46 264

redis主从配置及通过keepalived实现redis自动切换

redis主从配置及通过keepalived实现redis自动切换 常用命令及故障分析

2015-10-03

空空如也

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

TA关注的人

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