自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(132)
  • 收藏
  • 关注

原创 系统概要设计规范

2020-07-12 21:03:53 678

原创 网关设计要点

2020-07-12 16:24:54 433

原创 应用监控项梳理

2020-07-12 16:06:35 390

原创 缓存设计要点

2020-07-12 15:19:22 212

原创 常用Linux命令

# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数# 查看物理CPU个数cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l# 查看每个物理CPU中core的个数(即核数)cat /proc/cpuinfo| grep "cpu cores...

2018-08-02 15:26:15 324

转载 JVM GC调优一则--增大Eden Space提高性能

缘起线上有Tomcat升级到7.0.52版,然后有应用的JVM FullGC变频繁,在高峰期socket连接数,Cpu使用率都暴增。思路思路是Tomcat本身的代码应该是没有问题的,有问题的可能是应用代码升级,或者环境改变了,总之Tomcat的优先级排在最后。先把应用的heap dump下来分析下:jmap -dump:format=b,file=path pi

2017-09-22 18:13:49 3063

转载 TCP连接的状态详解以及故障排查

我们通过了解TCP各个状态,可以排除和定位网络或系统故障时大有帮助。(总结网络上的内容)1、TCP状态了解TCP之前,先了解几个命令:linux查看tcp的状态命令:1)、netstat -nat  查看TCP各个状态的数量2)、lsof  -i:port  可以检测到打开套接字的状况3)、  sar -n SOCK 查看tcp创建的连接

2017-09-15 13:39:28 1101

转载 Netty百万级推送服务设计要点

1. 背景1.1. 话题来源最近很多从事移动互联网和物联网开发的同学给我发邮件或者微博私信我,咨询推送服务相关的问题。问题五花八门,在帮助大家答疑解惑的过程中,我也对问题进行了总结,大概可以归纳为如下几类:Netty是否可以做推送服务器?如果使用Netty开发推送服务,一个服务器最多可以支撑多少个客户端?使用Netty开发推送服务遇到的各种技术问题。由于

2017-09-15 11:31:19 468

转载 netty3和netty4区别

1.1. Netty 3.X系列版本现状根据对Netty社区部分用户的调查,结合Netty在其它开源项目中的使用情况,我们可以看出目前Netty商用的主流版本集中在3.X和4.X上,其中以Netty 3.X系列版本使用最为广泛。Netty社区非常活跃,3.X系列版本从2011年2月7日发布的netty-3.2.4 Final版本到2014年12月17日发布的netty-3.10.0

2017-09-12 18:18:40 4717

转载 java中queue的使用

Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue接 口。Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类型如果是Queue时,就完全只能访问Queue接口所定义的方法 了,而不能直接访问 LinkedList的非Queue的方法),以使得只有恰当的方法才可以使用。BlockingQueue 继承了Q

2017-09-11 16:47:19 317

转载 socket编程 及select poll epoll示例

1、关于字节排序    网际协议采用大端字节序,来传输多字节整数。    系统提供了转换的宏定义,如果主机与网际协议相同,则宏定义为空。2、客户端    socket -> connect(阻塞,三次握手)-> rcv3、服务器端    socket -> bind -> listen -> accept(阻塞,三次握手)-> send4、函数介绍         a..s

2017-09-09 16:15:34 276

转载 YAML入门

一、YAML是什么?YAML是YAML Ain't Markup Language递归缩写,是YAML不是标记语言的意思,读音“yamel”(或者“雅梅尔”)。YAML是便于人阅读基于unicode编码的各种语言的序列号标准。它的用途广泛,用于配置文件,日志文件,跨语言数据共享,对象持久化,复杂的数据结构。二、yaml有什么特性,为什么使用yaml?1、易于阅读;使

2017-09-04 11:26:03 516

转载 iTerm2 配色方案(oh-my-zsh& Powerline)

iTerm2 配色方案(oh-my-zsh& Powerline)公司新配的Macbook Pro第一件事就是装iTerm2,这篇文章将记录我的整个安装过程!希望大家都一次安装成功!请认真观看!看看配置完是长这样滴!别着急,带你一起配......iterm2.png先去官网下载iTerm2,打开后是全黑色的背景。S

2017-09-01 16:24:05 23633 2

转载 haproxy入门(mac)

转自:http://www.cnblogs.com/yjmyzz/p/haproxy.htmlapache、nginx之类的反向代理(转发)功能,通常只能用于http协议,其它协议就不好使了(注:nginx据说商业版的,支持tcp协议了)。haproxy可以弥补这方面的不足,haproxy支持http/tcp多种协议,可以当做rpc(thrift/gRPC/avro)框架前端的负载

2017-08-30 20:43:15 3007

转载 时间复杂度与空间复杂度

通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关推理模式,如循环不变式、数学归纳法等。而在证明算法是正确的基础上,第二部就是分析算法的时间复杂度。算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的优劣与否。因此,作为程序员,掌握基本的算法时间复杂度分析方法是很有必要的。       算法

2017-08-30 19:39:42 353

转载 JDBC为什么要使用PreparedStatement而不是Statemen

PreparedStatement是用来执行SQL查询语句的API之一,Java提供了 Statement、PreparedStatement 和 CallableStatement三种方式来执行查询语句,其中 Statement 用于通用查询, PreparedStatement 用于执行参数化查询,而 CallableStatement则是用于存储过程。同时PreparedStatement还

2017-08-30 18:07:25 420

转载 Guava文件操作

使用Files类来执行那些基本的任务,比如:移动或复制文件,或读取文件内容到一个字符串集合Closer类,提供了一种非常干净的方式,确保Closeable实例被正确的关闭ByteSource 和 CharSource类,提供了不可变的输入流(Input)和读(Reader)ByteSink 和 CharSink类,提供了不可变的输出流(Output)和写(Writer)

2017-08-25 11:31:33 1271

转载 netty之ChannelOption

一、概述  最近在写一个分布式服务框架,打算用netty框架做底层网络通信,关于netty的学习可以参考如下资料:    http://blog.csdn.net/column/details/enjoynetty.html    李林锋的《Netty权威指南》二、详情  在用netty作为底层网络通信的时候关于ChannelOption的参数让我一直模糊不

2017-08-24 11:14:27 454

转载 SSL与TLS的区别以及介绍

SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。  TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数

2017-08-24 01:10:40 31122 1

转载 使用netty开发简单样例

Netty是什么? 本质:JBoss做的一个Jar包 目的:快速开发高性能、高可靠性的网络服务器和客户端程序 优点:提供异步的、事件驱动的网络应用程序框架和工具 通俗的说:一个好使的处理Socket的东东 Netty的特性 设计 统一的API,适用于不同的协议(阻塞和非阻塞) 基于灵活、可扩展的事件驱动模型 高度可定制的线程模型 可靠

2017-08-24 01:09:24 797 1

转载 SSLContext

1. 什么是SSLSocketJDK文档指出,SSLSocket扩展Socket并提供使用SSL或TLS协议的安全套接字。这种套接字是正常的流套接字,但是它们在基础网络传输协议(如TCP)上添加了安全保护层。具体安全方面的讨论见下一篇。本篇重点关注SSLSocket及相关几个类的使用。 2. SSLSocket和相关类SSLSocket来自jsse(

2017-08-22 19:04:17 34737 3

转载 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法

在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。注:什么叫线程安全?这个首先要明确。线程安全就是说多线程访问同

2017-08-21 10:16:27 222

转载 Java NIO(1)

最近由于工作关系要做一些Java方面的开发,其中最重要的一块就是Java NIO(New I/O),尽管很早以前了解过一些,但并没有认真去看过它的实现原理,也没有机会在工作中使用,这次也好重新研究一下,顺便写点东西,就当是自己学习java NIO的笔记了。本文为NIO使用及原理分析的第一篇,将会介绍NIO中几个重要的概念。在Java1.4之前的I/O系统中,提供的都是面向流的I/O系统,系

2017-08-18 17:45:46 269

转载 ServerBootstrap

ServerBootstrap负责初始化netty服务器,并且开始监听端口的socket请求。[java] view plain copybootstrap bootstrap = new ServerBootstrap(        new NioServerSocketChannelFactory(            Exe

2017-08-18 17:02:22 607

转载 ReentrantReadWriteLock读写锁的使用

Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也应该是一个对象。两个线程执行的代码片段要实现同步互斥的效果,它们必须用同一个Lock对象。  读写锁:分为读锁和写锁,多个读锁不互斥,读锁与写锁互斥,这是由jvm自己控制的,你只要上好相应的锁即可。如果你的代码只读数据,可以很多人同时读,但不能同时写,那就上读锁;如果你的代码修改数据,只能有一个人

2017-08-18 14:27:38 197

转载 枚举单例(Enum Singleton)

枚举单例(Enum Singleton)是实现单例模式的一种新方式,尽管单例模式在java中已经存在很长时间了,但是枚举单例相对来说是一种比较新的概念,枚举这个特性是在Java5才出现的,这篇文章主要讲解关于为什么我们应该使用枚举来实现单例模式,它与传统方式实现的单例模式相比较又有哪些优势?1. 枚举写法简单写法简单这是它最大的优点,如果你先前写过单例模式,你应该知道即使有DCL(

2017-08-18 11:47:21 2980

转载 Netty开发中间件:高并发性能优化

用Netty开发中间件:高并发性能优化最近在写一个后台中间件的原型,主要是做消息的分发和透传。因为要用Java实现,所以网络通信框架的第一选择当然就是Netty了,使用的是Netty 4版本。Netty果然效率很高,不用做太多努力就能达到一个比较高的tps。但使用过程中也碰到了一些问题,个人觉得都是比较经典而在网上又不太容易查找到相关资料的问题,所以在此总结一下。1.Conte

2017-08-17 23:29:44 504

转载 brew安装zookeeper

zookeeper支持brew安装。$brew info zookeeperzookeeper: stable 3.4.6 (bottled), HEADCentralized server for distributed coordination of serviceshttps://zookeeper.apache.org//usr/local/Cellar/zookeeper/3

2017-08-17 23:19:51 639

转载 mac brew 安装mongodb

在使用mongodb过程中遇到了mongodb无法启动的情况,于是查阅各种资料,都没有解决问题,于是决定重新安装一次。这次选择用homebrew安装。步骤如下1.安装homebrew  终端输入ruby-e"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"2.

2017-08-17 22:55:30 649

转载 在mac上通过Homebrew安装redis

使用Homebrew安装Redis可以减少大量的安装和配置的工作量。安装命令 brew install redis 安装完成后的提示信息To have launchd start redis at login: ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents Then to load redis now

2017-08-17 22:18:31 637

转载 ImmutableMap

ImmutableMap源码解析为什么ImmutableMap是不可变集合,是线程安全的?首先介绍一下基本概念,什么事immutable何为Immutable对象?简单地说,如果一个对象实例不能被更改就是一个Immutable的对象,Java SDK提供的大量值对象,比如String等都是Immutable的对象。如何使对象Immutable?按照Effective J

2017-08-17 19:26:10 21363

转载 git安装与使用

转载注明出处:http://blog.csdn.net/xiaohanluo/article/details/53214933Git安装下载Git有两种方法直接下载安装包,Git下载地址用homebrew指令下载,不过首先需要安装homebrew 在终端执行后面指令安装,homebrew /usr/bin/ruby -e "$(curl -fsSL https://

2017-08-17 11:28:07 286

转载 链表问题总结

收集了一下链表常见的面试题:1、如何判断一个单链表有环2、如何判断一个环的入口点在哪里3、如何知道环的长度4、如何知道两个单链表(无环)是否相交5、如果两个单链表(无环)相交,如何知道它们相交的第一个节点是什么6、如何知道两个单链表(有环)是否相交7、如果两个单链表(有环)相交,如何知道它们相交的第一个节点是什么1、采用快慢步长法。令两个指针p和q分别指向头

2017-08-12 17:49:05 263 1

转载 LeetCode

LeetCode总结转自:http://blog.csdn.net/lanxu_yy/article/details/17848219最近完成了www.leetcode.com的online judge中151道算法题目。除各个题目有特殊巧妙的解法以外,大部分题目都是经典的算法或者数据结构,因此做了如下小结,具体的解题思路可以搜索我的博客:LeetCode题

2017-08-12 00:58:08 299

转载 spring cloud和dubbo的区别

最近一段时间不论互联网还是传统行业,凡是涉及信息技术范畴的圈子几乎都在讨论 微服务架构 。近期也看到各大技术社区开始组织一些沙龙和论坛来分享spring Cloud的相关实施经验,这对于最近正在整理Spring Cloud相关套件内容与实例应用的我而言,还是有不少激励的。目前,Spring Cloud在国内的知名度并不高,在前阵子的求职过程中,与一些互联网公司的架构师、技术VP或者CT

2017-08-02 23:20:06 66381 17

转载 dubbo入门

1. Dubbo是什么?2. Dubbo能做什么?3.dubbo的架构包含哪些内容?4.dubbo如何使用?1. Dubbo是什么?Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo

2017-07-25 23:32:59 437

转载 写hive的udf函数

最近感受了Hive的udf函数的强大威力了,不仅可以使用很多已经有的udf函数,还可以自己定义符合业务场景的udf函数,下面就说一下如何写udf/udaf/udtf函数,算是一个入门介绍吧。First, you need to create a new class that extends UDF, with one or more methods named evaluate.

2017-06-20 17:06:07 1046

转载 mysql 索引类型以及创建

关于MySQL索引的好处,如果正确合理设计并且使用索引的mysql是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型网站单日就可能会产生几十万甚至几百万的数据,没有索引查询会变的非常缓慢。还是以WordPress来说,其多个数据表都会对经常被查询的字段添加索引,比如wp_comments表中针对5个字段设计了BTR

2017-06-20 16:52:21 245

转载 Oracle中rownum、rowid、row_number()、rank()、dense_rank()的区别

首先来说一下rownum与rowid含义:顾名思义rownum就是行数/行号,而rowid就是编码/编号/唯一识别号,所以他是类似“AAAR8gAAEAAAAErAAK”的编号,注意他是没有先后顺序的,也就是说他和数据入库时间没有任何关系,打个比方:他就像磁盘、内存存储数据用的是16进制的地址一样。 他们都是伪列,可以理解成表中的一个列只是他们并不是你创建的。同样是伪列区别是什么呢?

2017-06-20 16:06:15 365

转载 mybatisl中#和$区别

在mybatis接口mapper文件中引用传入的参数是通过#{param}或者${param}来使用的。至于mybatisl中#{}和${}的区别其实很简单,但是之前一直没有理解清楚,网上一堆错误的理解。所以在这里记录一下其实这个问题很简单。select * from t_user where name = #{param}使用#{}就等于使用了PrepareStatement

2017-06-20 10:08:18 1180

空空如也

空空如也

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

TA关注的人

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