自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 软件设计精粹

以下来自—— Rob Pike—— 一、终极目标软件设计的终极目标不是增加功能,而是消除需求。二、设计原则1. 你无法断定程序会在什么地方耗费运行时间。瓶颈经常出现在想不到的地方,所以别急于胡乱找个地方改代码,除非你已经证实那儿就是瓶颈所在。2. 估量。在你没对代码进行估量,特别是没找到最耗时的那部分之前,别去优化速度。3. 花哨的算法在 n 很小时通常很慢,而 n 通常很小。花哨算法的常数复杂

2017-03-15 18:30:48 266

转载 windows交叉编译golang

1、下载相关程序。  Golang下载:http://www.golangtc.com/download  Git下载:http://git-scm.com/download/  TDM-GCC下载:http://tdm-gcc.tdragon.net/download2、Go编译环境配置  安装 TDM-GCC,程序会自动设置PATH环境变量,如果没有设置成功请手动设置。  安装Go,安装完后需要

2017-01-10 15:08:14 693

转载 redis数据淘汰策略

在 redis 中,允许用户设置最大使用内存大小 server.maxmemory,在内存限定的情况下是很有用的。譬如,在一台 8G 机子上部署了 4 个 redis 服务点,每一个服务点分配 1.5G 的内存大小,减少内存紧张的情况,由此获取更为稳健的服务。redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。redis 提供 6种数据淘汰策略:volatile-

2016-06-15 19:12:26 7488 1

转载 redis持久化策略

一、Redis提供了哪些持久化机制:    1). RDB持久化:    该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘。        2). AOF持久化:    该机制将以日志的形式记录服务器所处理的每一个写操作,在Redis服务器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的数据是完整的。    3). 无持久化:    我们可以通过配置

2016-06-15 18:10:54 532

转载 kafka设计理念浅析

Kafka设计背景及原因Kafka最初被LinkedIn设计来处理活动流数据(activity stream data)和系统处理数据(operaitonal data)。活动流数据是指像page view、用户搜索关键词等等通过用户操作产生的数据,它的常见场景有时间线(time line)即新鲜事提醒、用户浏览量 搜索量排名等等。系统处理数据是服务器性能相关的数据,如CPU、负载、用户请求数等,它

2016-06-06 16:12:24 643

原创 安装nginx及tcp代理

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。(百度百科- http://www.dwz.cn

2016-06-03 13:16:24 4520

转载 再谈java内存模型

不同的平台,内存模型是不一样的,但是jvm的内存模型规范是统一的。其实java的多线程并发问题最终都会反映在java的内存模型上,所谓线程安全无非是要控制多个线程对某个资源的有序访问或修改。总结java的内存模型,要解决两个主要的问题:可见性和有序性。 我们都知道计算机有高速缓存的存在,处理器并不是每次处理数据都是取内存的。JVM定义了自己的内存模型,屏蔽了底层平台内存管理细节,对于java开发人

2016-05-19 15:00:08 281

原创 kafka消费API理解

主要消费部分API:ConsumerConnector connector = Consumer.create(consumerConfig);interface ConsumerConnector { public Map<String,List<KafkaStream>> createMessageStreams(Map<String,Int> topicCountMap); p

2016-05-12 17:29:48 4996

原创 linux部署kafka

1、关闭SELINUXvi /etc/selinux/configSELINUX=enforcing #注释掉SELINUXTYPE=targeted #注释掉SELINUX=disabled #增加:wq! #保存退出 setenforce 0 #使配置立即生效 2、配置防火墙,开启9092端口 vi /etc/sysconfig/iptables #编辑防火墙配置文件-A INPUT

2016-05-12 12:48:51 430

转载 分布式系统中的一致性协议之两阶段提交协议(2PC)

两阶段提交协议是很常见的解决分布式事务的方式,他可以保证分布式事务中,要么所有参与的进程都提交事务成功,要么都取消事务,这样做可以在分布式环境中保持ACID中A(原子性)。 在两阶段提交协议中,包含了两种角色:协调者与参与者。参与者就是实际处理事务的机器,而协调者就是其中一台单独的处理分布式事务的机器。 该算法分为两个阶段: 1.投票阶段 2.提交阶段阶段1:请

2016-04-19 17:04:26 414

转载 java泛型

一、java泛型的好处 1,类型安全。 泛型的主要目标是提高 Java 程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。没有泛型,这些假设就只存在于程序员的头脑中(或者如果幸运的话,还存在于代码注释中)。2,消除强制类型转换。 泛型的一个附带好处是,消除源代码中的许多强制类型转换。这使得代码更加可读,并且减少了出错机会。3,潜在的性能收益。 泛型为

2016-04-13 19:57:36 398

转载 Linux Shell根据进程名杀死进程

功能是给出一个进程名,就会把关联进程Id全部kill掉。Shell脚本源码如下:#!/bin/sh#根据进程名杀死进程if [ $# -lt 1 ]then echo "缺少参数:procedure_name" exit 1fiPROCESS=`ps -ef|grep $1|grep -v grep|grep -v PPID|awk '{ print $2}'`for i in $

2015-12-01 16:53:18 1595

原创 android中M页唤醒app及信息传递

一,采用openapp协议 1,在AndroidManifest.xml中声明接收请求的activity:<activity android:name=".OpenAppActivity"> <intent-filter> <action android:name="android.intent.action.VIEW"/>

2015-10-13 14:26:56 1021

原创 linux安装git

一般linux自带git版本很旧,会有一定问题,可以先卸载系统自带git: yum remove git下载及安装git:wget https://github.com/git/git/archive/v2.2.1.tar.gztar zxvf v2.2.1.tar.gzcd git-2.2.1make configure./configure --prefix=/usr/local

2015-09-15 10:31:50 473

原创 AtomicBoolean的妙用

在开发中,经常要设置开关,通常的做法如下: //这是一个全局变量 boolean isStart = false;然后在某一个需要设置开关的位置:if(!isStart ){ isStart = true; doSomething();}显然这是线程不安全的,通过使用AtomicBoolean可以这样做:private static AtomicBoolean isStart

2015-09-15 09:38:26 1122

原创 CountDownLatch和CyclicBarrier的应用场景

jdk1.5之后,java的concurrent包提供了一些并发工具类,比如CountDownLatch和CyclicBarrier,这里只讲它们的应用场景,暂不作原理剖析。 CountDownLatch:一个线程A等待其它线程都执行完毕后,线程A继续执行。这个线程A也可以是一组线程(使用同一个CountDownLatch来控制即可). CyclicBarrier:一组线程互相等待,所有线程都达

2015-09-15 09:07:49 2031

原创 ThreadLocal的个人理解

本文只讲诉实现原理用来记录。ThreadLocal的核心对象就是ThreadLocalMap,但是它却声明在Thread类里面,所以才能关联一个线程,以达到存储共享变量的作用: ThreadLocal.ThreadLocalMap threadLocals = null;它的初始化和操作都在ThreadLocal类里面,也就是说ThreadLocal只是工具类,ThreadLocalMap 才是共

2015-09-14 17:08:03 402

原创 即时通讯 - netty4纪要

netty4的NioEventLoopGroup是一个线程池,专门负责处理io事件,boss NioEventLoopGroup负责监听网络事件,worker NioEventLoopGroup负责读写,都不能发生阻塞,否则会影响并发性能,可以在handler通道ChannelPipeline中使用内置的线程池EventExecutorGroup来处理耗时业务,相关代码如下:Channel

2015-04-30 18:08:34 904

空空如也

空空如也

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

TA关注的人

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