- 博客(386)
- 资源 (82)
- 收藏
- 关注
原创 Netty 实例学习一
通过前面的文章我们,可以了解Nio以及Nio中使用的Reactor模式和多路复用器,这是非常必要的因为netty是java编写的一个通讯框架,底层也是使用jdk提供的api来和操作系统交互的,所以这么来说前面两章其实也是学习了netty最底层的实现,下面来看看netty实现通讯……
2017-09-22 11:38:08 1216
原创 java Bio Demo
刚开始学的时候我们看到的就是Bio模式的socket、serverSocket 这也是java最早提供的,其实早期的tomcat对请求的处理方式也是这种多线程模式的,下面看看代码……
2017-09-21 11:48:20 955
原创 java Nio Demo
之前的文章主要讲解了Reactor模式、多路复用器select、以及Netty框架,这篇文章主要是java Nio的代码,但我们知道java的Nio是使用了Reactor模式和多路复用器来实现的,所以下面看看java nio的demo。一、java Nio 客户端package com.test2;import java.io.IOException;import java.
2017-09-21 00:11:59 2134
转载 ChannelHandler和ChannelPipeline
原文地址:http://www.cnblogs.com/leesf456/p/6901189.html一、ChannelHandler和ChannelPipeline 2.1 ChannelHandler 在ChannelPipeline中,ChannelHandler可以被链在一起处理用户逻辑。 1. Channel生命周期 Channel接口
2017-09-20 11:54:01 636
转载 Netty精粹之基于EventLoop机制的高效线程模型
原文地址:http://www.cnblogs.com/heavenhome/articles/6554262.html摘要: Infoq有篇文章提到通过Netty4+Thrift压缩二进制编码技术有人实现了10W TPS(1K的复杂POJO对象)跨节点远程服务调用,对于RPC应用来说高性能的三个主题永远是IO模型、数据协议、线程模型,10W TPS的测试结果一方面归功于Thrift方面压
2017-09-20 11:22:39 616
转载 读懂 Netty 的高性能架构之道
原文地址:http://www.cnblogs.com/Irving/p/5709130.htmlNetty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。作为当前最流行的NIO框
2017-09-18 16:11:58 993
原创 git tag创建、远程推送、回退以及强推push -f
一、给本地仓库分支打轻量级tag标签1、在Git中打标签非常简单,首先,切换到需要打标签的分支上:$ git branch devwhd gray* master optimize_sel_driver_20170911 pre_production2、然后,敲命令git tag 就可以打一个新标签:$ git tag v1.0
2017-09-14 16:39:12 119707 2
转载 git命令之git fetch的用法
真正理解 git fetch, git pull要讲清楚git fetch,git pull,必须要附加讲清楚git remote,git merge 、远程repo, branch 、 commit-id 以及 FETCH_HEAD。1. 【git remote】首先, git是一个分布式的结构,这意味着本地和远程是一个相对的名称。本地的repo仓库要与远程的repo配合完成版本对应必须...
2017-09-13 17:52:54 120710 8
转载 浅谈IO的多路复用技术之一(select和epoll实质)
JAVA的NIO技术从1.5开始,一直到现在的JDK8,这套JDK自带的API几乎填充了了整个java端服务器的代码实现,人们都是大谈特谈这些接口,但是很少有人深究操作系统实现的底层细节,这篇文章带你简单浏览一下这些底层的细节。JDK 1.5 中NIO出来后,搞出了几个类,Selector,Channel,Buffer,关心的事件如read/write等这些内容,实质这些类是j
2017-09-13 15:38:34 812
原创 git 拉新分支、分支关联、合并分支、分支删除
在开发中,我们可能要做这些工作,从master分支拉一个开发分支dev ,开发、单测完合并到test分支测试测试完了上线1、从master分支拉一个dev分支到本地2、将dev分支合并到test分支第一步在这篇文章中已经有解释:点击打开链接2、就是将dev分支合并到test分支(开发完,单测后将代码合并到test分支提测)分支合并步骤(将dev分支合并到test分支)(1)
2017-09-05 18:02:40 39644 3
转载 深入理解 Python 异步编程
原文地址:点击打开链接来源:阿驹(微信公号:驹说码事) 如有好文章投稿,请点击 → 这里了解详情前言很多朋友对异步编程都处于“听说很强大”的认知状态。鲜有在生产项目中使用它。而使用它的同学,则大多数都停留在知道如何使用 Tornado、Twisted、Gevent 这类异步框架上,出现各种古怪的问题难以解决。而且使用了
2017-09-03 18:06:45 4713
转载 git 工作区、暂存区、版本库之间的关系案例
原文地址: http://www.cnblogs.com/lilongsheng1125/p/4978479.html区分三者关系 Git最让你迷惑的无非是它里面的各种概念了,如果是刚开始接触Git希望看完本篇介绍之后有一个清晰的认识,笔者认识也有限这里只说说个人对使用Git的感受,说一下它里面的几个最常用的概念的理解。 在初始化git版本库之后会生
2017-09-03 17:46:33 888
转载 Git中创建与合并分支
原文地址:http://blog.csdn.net/gao_chun/article/details/72499890为什么需要使用分支?在总结Git中创建与合并分支前,我们必须要对为什么使用分支,它有什么用,为什么不能在主分支上直接干活,…. 等等一些列问题做一个阐述,不然我们都不知道用这个东西干嘛,以及为什么要用它。这里从两点进行阐述:一、分支的作用分支
2017-09-02 18:09:00 620
转载 redis分布式锁-SETNX实现
原文地址:https://my.oschina.net/u/1995545/blog/366381摘要: redis分布式锁-SETNX实现Redis有一系列的命令,特点是以NX结尾,NX是Not eXists的缩写,如SETNX命令就应该理解为:SET if Not eXists。这系列的命令非常有用,这里讲使用SETNX来实现分布式锁。 用SETNX实现分布
2017-09-01 01:50:22 2086
转载 git从已有分支拉新分支开发
原文地址:http://www.cnblogs.com/lingear/p/6062093.html开发过程中经常用到从master分支copy一个开发分支,下面我们就用命令行完成这个操作:1. 切换到被copy的分支(master),并且从远端拉取最新版本$git checkout master$git pull2. 从当前分支拉copy开发分
2017-09-01 00:46:35 68619 2
原创 git 查看远程分支、本地分支、创建分支、把分支推到远程repository、删除本地分支
git安装连接可以查看廖雪峰的文章简单明了 地址:点击打开链接原文地址:http://blog.csdn.net/arkblue/article/details/9568249/1、查看远程分支[plain]view plaincopy$gitbranch-a *br-2.1.2.2 master remotes/origi...
2017-09-01 00:25:07 18189
转载 Reactor 模式+代码讲解
原文链接:http://www.cnblogs.com/luxiaoxun/p/4331110.htmlScalable IO in Javahttp://gee.cs.oswego.edu/dl/cpjslides/nio.pdf基本上所有的网络处理程序都有以下基本的处理过程:Read requestDecode requestProcess servic
2017-08-19 13:10:38 1726
转载 Reactor模式详解
在学习netty的时候是不是就会看到Reactor模式,多路复用等词眼,其实很多网络通信都有用到,比如redis的网络通信就是使用的多路复用但是,看到了很多书和博客没有深入或者说详细的分析什么是Reactor模式以及多路复用,这里看到了一篇文章感觉不错就转载备份一下一遍学习原文地址:http://www.blogjava.net/DLevin/archive/2015/09/02/427045
2017-08-19 12:22:31 740 2
原创 python入门学习四(csv数据导出导入)
这个就是使用csv模块中提供的对象的方法来实现的就没什么好说(其实也没什么说的,没有深入学习)、那就看代码!import csvyz=(("1","a"),("2","b"),("3","c"),("4","d"),("5","e"),("6","f"))config={"fdir":"E:/test.csv","rwx":"w","r":"r"}class csvtest: d
2017-07-05 10:45:36 1013
原创 python入门三(多线程,多进程)
python语言提供了对多线程、多进程的支持,下面来看看相关知识一、python多线程python的多线程提供了两个模块即thread和threading,threading这个模块提供了更多的功能和更高级的使用方式所以thread我们就不学了,只学threading模块!1、python多线程模块2、该模块常用属性、方法(线程阻塞、锁、)3、python多线程demo4、
2017-07-05 10:31:31 907
原创 python入门二(数据库操作)
python对数据库的支持很多比如小的有sqllite、大的服务关系型数据库 mysql、非关系型数据库mongodb等,这里我们就来看看python和mysql的适配使用,本人安装的python是3.6版本的所以使用的是pymysql模块,具体安装在第一篇文章中有哦……下面来看看代码:import pymysqlfrom test.test_robotparser import Pas
2017-07-02 02:32:06 463
原创 python 入门一(数据结构)
通过几天的学习了解了一下python,发现python很多同能使用很方便,这篇文章作为python入门的一篇介绍文章,里面涉及到的具体内容会在之后的文章会进行深入学习,下面就来看看python因为语法很多语言很相似,所以这里就不说语法了,只看所支持的数据结构、类、方法、变量、多线程、多进程、python数据库操作、python文件操作、python网络爬虫一、python支持的数据结构:
2017-07-01 10:00:19 547
转载 windows下Python安装pymysql
# 安装pymysql命令# 从github 下载pymysql 安装包# 下载地址:https://github.com/PyMySQL/PyMySQL# 解压下载文件,不用打开python交互界面,cd到解压文件所在目录# 运行 python setup.py install# 打开python交互界面,# 运行 import pymysql,如果不报错,说明安装成功!
2017-06-26 23:22:22 31542 2
转载 MySQL使用profile分析SQL执行状态
打开profilemysql> select @@have_profiling; +------------------+ | @@have_profiling | +------------------+ | YES | +------------------+ 1 row in set (0.00 sec)
2017-06-03 14:59:50 1074
原创 Hashtable 、ConcurrentHashMap源码学习
一、简介HashTable是线程安全的HashMap,两个实现原理都是一样的,只是HashTable集合的所有方法都是synchronized方法,而ConcurrentHashMap就不一样了,他最底层的存储使用的也是和HashMap一样的但是,在线程安全处理上有很大区别,他使用了分段的概念,来减小锁的范围,而且在获取时就没有加锁,而是使用了volatile变量来修饰V和Next,总的来说C...
2017-05-07 20:07:17 471
转载 MySQL慢查询(一) - 开启慢查询
一、简介开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。二、参数说明slow_query_log 慢查询开启状态slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)long_query_time 查询超过多少
2017-05-05 23:46:31 1403
转载 MySQL优化
一、SQL语句优化(1)使用limit对查询结果的记录进行限定(2)避免select *,将需要查找的字段列出来(3)使用连接(join)来代替子查询(4)拆分大的delete或insert语句二、选择合适的数据类型(1)使用可存下数据的最小的数据类型,整型 (2)使用简单的数据类型,整型比字符处理开销更小,因为字符串的比较更复杂。如,int类型存储时间类型
2017-05-05 23:44:03 451
转载 MySQL索引类型
一、简介MySQL目前主要有以下几种索引类型:1.普通索引2.唯一索引3.主键索引4.组合索引5.全文索引二、语句CREATE TABLE table_name[col_name data type][unique|fulltext][index|key][index_name](col_name[length])[asc|desc]1.u
2017-05-05 23:41:57 498
转载 MySQL锁详解
一、概述数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则。对于任何一种数据库来说都需要有相应的锁定机制,所以MySQL自然也不能例外。MySQL数据库由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎所针对的应用场景特点都不太一样,为了满足各自特定应用场景的需求,每种存储引擎的锁定机制都是为各自所面对的特定场景而优化设计,所以各...
2017-05-05 23:40:15 760
转载 MySQL事务
一、事务(Transaction)及其ACID属性事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的ACID属性:1.原子性(Atomicity):事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。2.一致性(Consistent):在事务开始和完成时,数据都必须保持一致状态。这意味着所有相关的数据规则都必须应用于事务的修改,以保持
2017-05-05 23:39:02 562
转载 MySQL各存储引擎
MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型)。MySQL默认配置了许多不同的存储引擎,可以预先设置或者在MySQL服务器中启用。你可
2017-05-05 23:36:28 401
原创 CountDownLatch和CyclicBarrier的区别
在网上看到很多人对于CountDownLatch和CyclicBarrier的区别简单理解为CountDownLatch是一次性的,而CyclicBarrier在调用reset之后还可以继续使用。那如果只是这么简单的话,我觉得CyclicBarrier简单命名为ResetableCountDownLatch好了,显然不是的。CountDownLatch: A synchronizati
2017-04-09 22:06:03 580
原创 ZooKeeper分布式排它锁实现
ZooKeeper的安装和znode的增删改查这里就不说了,这些大家可以看看《从Paxos到ZooKeeper》这本书,讲的很详细,下面只看代码:package com.test6.zookeeper;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;import ja
2017-04-07 20:26:04 1026
原创 kafka集群实例
使用kafka我们需要先安装zookeeper、kafka其中zookeeper的安装可以参考这篇文章:点击打开链接,而kafka的安装很简单,只需要解压缩包就可以了,所以这里就不说了,如果不会就google、百度!!!废话少说来看代码:一、
2017-04-02 11:01:54 1986
转载 Kafka的Log存储解析
引言Kafka中的Message是以topic为基本单位组织的,不同的topic之间是相互独立的。每个topic又可以分成几个不同的partition(每个topic有几个partition是在创建topic时指定的),每个partition存储一部分Message。借用官方的一张图,可以直观地看到topic和partition的关系。partition是以文件的形式存储在文件
2017-03-29 11:42:04 450
转载 kafka消息服务的producer、broker、consumer的配置
server.properties配置:server.properties中所有配置参数说明(解释)如下列表:参数说明(解释)broker.id =0每一个broker在集群中的唯一表示,要求是正数。当该服务器的IP地址发生改变时,broker.id没有变化,则不会影响consumers
2017-03-29 11:40:10 4850
转载 kafka入门:简介、使用场景、设计原理、主要配置及集群搭建
问题导读:1.zookeeper在kafka的作用是什么?2.kafka中几乎不允许对消息进行“随机读写”的原因是什么?3.kafka集群consumer和producer状态信息是如何保存的?4.partitions设计的目的的根本原因是什么?一、入门 1、简介 Kafka is a distribu
2017-03-27 21:22:41 446
原创 jquery 中的ajax总结
jquery对ajax请求进行了封装,在jquery中$.ajax()方法属于最底层的方法,第2层是load()、$.get()、$.post()方法而第3层是$.getScript()和$.getJSON()方法,这篇文章就来看看这些方法一、load()方法1、load()方法能远程获取页面并插入到DOM中指定的节点。2、load()方法结构:load(url[,data][,cal
2017-03-23 19:27:47 1627 1
原创 JMS学习十三(ActiveMQ安全)
在第二篇文章中提到了修改用户名密码的方式,下面来看看ActiveMQ连接安全问题:一、客户端连接服务端如果消息服务器activemq.xml中设置了用户名、密码则消息生产者和消息消费者连接到消息服务器是如果用户名密码和消息服务器设定的不一样则不能发送或消息消息的。1、activemq.xml 配置文件中进行配置:
2017-03-16 11:04:07 1130
转载 JMS学习十二(Spring+ActiveMQ集群配置)
ActiveMQ集群 ActiveMQ具有强大和灵活的集群功能,但在使用的过程中会发现很多的缺点,ActiveMQ的集群方式主要由两种:Master-Slave和Broker Cluster。1、Master-Slave Master-Slave方式中,只能是Master提供服务,Slave是实时地备份Master的数据,以保证消息的可靠性。当Master失
2017-03-14 18:20:28 4389
dao层动态代理实现demo
2016-06-07
commons-pool.jar
2016-05-19
org.apache.commons.httpclient相关架包
2016-02-27
spring+activemq topic持久化订阅
2017-03-14
dubbo demo
2016-10-16
commons-lang
2016-08-30
使用springmvc 实现文件上传
2016-07-19
文件上传demo
2016-07-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人