摘要:
对称加密:双方使用的同一个密钥,既可以加密又可以解密,这种加密方法称为对称加密,也称为单密钥加密。 优点:速度快,对称性加密通常在消息发送方需要加密大量数据时使用,算法公开、计算量小、加密速度快、加密效率高。 缺点:在数据传送前,发送方和接收方必须商定好秘钥,然后 使双方都能保存好秘钥。其次如果一方
阅读全文
posted @ 2018-03-14 23:04
BarryW
阅读(22516)
推荐(0)
摘要:
专栏导航 HTTPS协议详解(一):HTTPS基础知识 HTTPS协议详解(二):TLS/SSL工作原理HTTPS协议详解(三):PKI 体系HTTPS协议详解(四):TLS/SSL握手过程HTTPS协议详解(五):HTTPS性能与优化 1、握手与密钥协商过程 基于RSA握手和密钥交换的客户端验证服
阅读全文
posted @ 2018-03-14 22:59
BarryW
阅读(35829)
推荐(3)
摘要:
1. 为什么使用线程池 诸如 Web 服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务。请求以某种方式到达服务器,这种方式可能是通过网络协议(例如 HTTP、FTP 或 POP)、通过 JMS 队列或者可能通过轮询数据库。不管请求如何到达
阅读全文
posted @ 2018-03-14 22:27
BarryW
阅读(16239)
推荐(0)
摘要:
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。 为了解决HT
阅读全文
posted @ 2018-03-14 20:56
BarryW
阅读(202)
推荐(0)
摘要:
随着今年 5 月 14 日 HTTP/2 协议正式版的发布,越来越多的网站开始部署 HTTP/2 了。我对 HTTP 协议一直都比较有兴趣,本文汇总一些关于 HTTP/2 的资料以及我写过的文章,会持续更新。如果大家有任何问题,欢迎留言交流探讨。 协议 HTTP/2 协议由以下两个 RFC 组成:
阅读全文
posted @ 2018-03-14 20:50
BarryW
阅读(445)
推荐(0)
摘要:
HTTP2.0作为新版协议,改动细节必然很多,不过对应用开发者和服务提供商来说,影响较大的就几点。 新的二进制格式(Binary Format) http1.x诞生的时候是明文协议,其格式由三部分组成:start line(request line或者status line),header,body
阅读全文
posted @ 2018-03-14 20:45
BarryW
阅读(8051)
推荐(0)
摘要:
HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)
阅读全文
posted @ 2018-03-14 20:33
BarryW
阅读(1052)
推荐(0)
摘要:
HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与
阅读全文
posted @ 2018-03-14 18:31
BarryW
阅读(2104)
推荐(0)
摘要:
1 概述 本文档主要介绍了Tomcat的性能调优的原理和方法。可作为公司技术人员为客户Tomcat系统调优的技术指南,也可以提供给客户的技术人员作为他们性能调优的指导手册。2 调优分类 由于Tomcat的运行依赖于JVM,从虚拟机的角度我们把Tomcat的调整分为外部环境调优和自身调优两类来描述。
阅读全文
posted @ 2018-03-14 12:02
BarryW
阅读(1112)
推荐(0)
摘要:
Dubbo的负载均衡已经是服务层面的了,和nginx的负载均衡还在http请求层面完全不同。至于二者哪个优秀,当然没办法直接比较。 涉及到负载均衡就涉及到你的业务,根据业务来选择才是最适合的。 dubbo具备了server注册,发现、路由、负载均衡的功能,在所有实现了这些功能的服务治理组件中,个人觉得dubbo还是略微笨重了,因为它本身是按照j2EE范畴所制定的中规中矩的服务治理框架。 dub...
阅读全文
posted @ 2018-03-14 11:57
BarryW
阅读(4972)
推荐(2)
摘要:
1、安装nginx和tomcat 我这里是使用docker安装的。安装流程可参照 dockerfile 这里安装了两个tomcat,端口分别是42000和42001。第二个tomcat的首页随便加了些代码区分 2、nginx配置 3、测试 刷新页面发现页面会发生变化,证明负载配置成功。因为我配的权重
阅读全文
posted @ 2018-03-14 11:51
BarryW
阅读(505)
推荐(0)
摘要:
前两种均需要使用 memcached 或 redis 存储 session ,最后一种使用 terracotta 服务器共享。 建议使用 redis ,不仅仅因为它可以将缓存的内容持久化,还因为它支持的单个对象比较大,而且数据类型丰富, 不只是缓存 session ,还可以做其他用途,一举几得啊。
阅读全文
posted @ 2018-03-14 11:48
BarryW
阅读(769)
推荐(0)
摘要:
数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而
阅读全文
posted @ 2018-03-13 23:14
BarryW
阅读(312)
推荐(0)
摘要:
一:缓存——热数据 热点数据(经常会被查询,但是不经常被修改或者删除的数据),首选是使用redis缓存,毕竟强大到冒泡的QPS和极强的稳定性不是所有类似工具都有的,而且相比于memcached还提供了丰富的数据类型可以使用,另外,内存中的数据也提供了AOF和RDB等持久化机制可以选择,要冷、热的还是
阅读全文
posted @ 2018-03-13 23:06
BarryW
阅读(382)
推荐(0)
摘要:
非脚本实现 以上代码有两点缺陷 可能会出现竞态条件: 解决方法是用 WATCH 监控 rate.limit:$IP 的变动, 但较为麻烦; 以上代码在不使用 pipeline 的情况下最多需要向Redis请求5条指令, 传输过多. Lua脚本实现 Redis 允许将 Lua 脚本传到 Redis 服
阅读全文
posted @ 2018-03-13 22:59
BarryW
阅读(13484)
推荐(2)
摘要:
方式一:使用DECR减库存 1、使用watch,采用乐观锁 2、不使用悲观锁,因为等待时间非常长,响应慢 3、不使用队列,因为并发量会让队列内存瞬间升高 Redis对事物的支持目前比较简单。Redis只能保证一个client发起的事务中的命令可以连续的执行,但后面命令出错前面不会回滚。而中间不会插入
阅读全文
posted @ 2018-03-13 22:56
BarryW
阅读(1291)
推荐(0)
摘要:
在学习Redis的常用操作时,经常看到介绍说,Redis的set、get以及hset等等命令的执行都是原子性的,但是令自己百思不得其解的是,为什么这些操作是原子性的? 原子性 原子性是数据库的事务中的特性。在数据库事务的情景下,原子性指的是:一个事务(transaction)中的所有操作,要么全部完
阅读全文
posted @ 2018-03-13 22:44
BarryW
阅读(646)
推荐(0)
摘要:
从 2.6版本 起, Redis 开始支持 Lua 脚本 让开发者自己扩展 Redis … 非脚本实现 以上代码有两点缺陷 可能会出现竞态条件: 解决方法是用 WATCH 监控 rate.limit:$IP 的变动, 但较为麻烦; 以上代码在不使用 pipeline 的情况下最多需要向Redis请求
阅读全文
posted @ 2018-03-13 22:30
BarryW
阅读(23297)
推荐(3)
摘要:
官方地址: 主站:Mycat-server@github : https://github.com/MyCATApache/Mycat-Server.git Mycat-web@github : https://github.com/MyCATApache/Mycat-Web.git Mycat-d
阅读全文
posted @ 2018-03-13 22:10
BarryW
阅读(15743)
推荐(0)
摘要:
数据存储演进思路一:单库单表 单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到。 数据存储演进思路二:单库多表 随着用户数量的增加,user表的数据量会越来越大,当数据量达到一定程度的时候对user表的查询会渐渐的变慢,从而影
阅读全文
posted @ 2018-03-13 21:26
BarryW
阅读(4024)
推荐(0)
摘要:
Remoting:网络通信框架,实现了sync-over-async和request-response消息机制。 RPC:一个远程过程调用的抽象,支持负载均衡、容灾和集群功能。 Registry:服务目录框架用于服务的注册和服务事件发布和订阅。(类似第一篇文章中的点菜宝) dubbo架构 Provi
阅读全文
posted @ 2018-03-13 00:20
BarryW
阅读(2221)
推荐(0)
摘要:
package com.algorithm;import java.util.ArrayList;import java.util.List;/** * 类功能描述: * * @author Barry * @version 1.0.0 * @auther Create by Barry * @da
阅读全文
posted @ 2018-03-13 00:16
BarryW
阅读(416)
推荐(0)
摘要:
树的遍历分两种:1、深度优先遍历 1.1 递归算法实现 2.2 非递归算法实现(使用栈存储)2、广度优先遍历(使用队列存储) import java.util.*; /** * 类功能描述: 二叉树遍历算法Java实现 * * @version 1.0.0 * @auther Create by Barry * @date Create on 2018/3/12. * @h...
阅读全文
posted @ 2018-03-12 23:45
BarryW
阅读(339)
推荐(1)
摘要:
1. 定义栈所有方法接口:package com.dataStructure.stack;/** * 类功能描述: * * @version 1.0.0 * @auther Create by Barry * @date Create on 2018/3/12. * @history */publi
阅读全文
posted @ 2018-03-12 23:40
BarryW
阅读(889)
推荐(0)
摘要:
基本的IO编程过程(包括网络IO和文件IO)是,打开文件描述符(windows是handler,java是stream或channel),多路捕获(Multiplexe,即select和poll和epoll)IO可读写的状态,而后可以读写的文件描述符进行IO读写,由于IO设备速度和CPU内存比速度会
阅读全文
posted @ 2018-03-11 23:16
BarryW
阅读(938)
推荐(0)
摘要:
完成三次握手,客户端与服务器开始传送数据 A与B建立TCP连接时:首先A向B发SYN(同步请求),然后B回复SYN+ACK(同步请求应答),最后A回复ACK确认,这样TCP的一次连接(三次握手)的过程就建立了! 一、TCP报文格式 图1 TCP报文格式 图2 TCP三次握手 图3 TCP四次挥手 图
阅读全文
posted @ 2018-03-11 22:44
BarryW
阅读(713)
推荐(0)
摘要:
AIO系列文档(1) 图解ByteBuffer中介绍了ByteBuffer用法,下面通过介绍t-io介绍如何使用: hello world例子简介 本例子演示的是一个典型的TCP长连接应用,代码位于example/helloworld目录中。 服务端和客户端的消息协议比较简单,消息头为4个字节,用以
阅读全文
posted @ 2018-03-11 22:35
BarryW
阅读(1139)
推荐(0)
摘要:
因何而写 用极易的方式认识一下bytebuffer bytebuffer之第一眼印象 bytebuffer之常用操作及各操作对内部变量带来的变化 创建bytebuffer: ByteBuffer.allocate(6) 写入一个字节: byteBuffer.put((byte)3) 读取一个字节:
阅读全文
posted @ 2018-03-11 22:23
BarryW
阅读(1098)
推荐(0)
摘要:
在Dubbo+zookeeper构建高可用分布式集群(一)-单机部署中我们讲了如何单机部署。但没有将如何配置微服务。下面分别介绍单机与集群微服务如何配置注册中心。 Zookeeper单机配置:方式一、 方式二、 Zookeeper集群配置: 方式一、 方式二、 集群配置方式一,特别适用于dubbo-
阅读全文
posted @ 2018-03-11 21:36
BarryW
阅读(6949)
推荐(3)
摘要:
不久前,我们讨论过Nginx+tomcat组成的集群,这已经是非常灵活的集群技术,但是当我们的系统遇到更大的瓶颈,全部应用的单点服务器已经不能满足我们的需求,这时,我们要考虑另外一种,我们熟悉的内容,就是分布式,而当下流行的Dubbo框架,不容我们忽视,这里,咱们一起来探讨一下这个框架的使用。 一,
阅读全文
posted @ 2018-03-11 21:33
BarryW
阅读(14857)
推荐(2)
摘要:
抢红包的需求分析 抢红包的场景有点像秒杀,但是要比秒杀简单点。因为秒杀通常要和库存相关。而抢红包则可以允许有些红包没有被抢到,因为发红包的人不会有损失,没抢完的钱再退回给发红包的人即可。另外像小米这样的抢购也要比淘宝的要简单,也是因为像小米这样是一个公司的,如果有少量没有抢到,则下次再抢,人工修复下
阅读全文
posted @ 2018-03-10 19:23
BarryW
阅读(530)
推荐(0)
摘要:
会话发起协议(Session Initiation Protocol,SIP)是一种信号传输协议,用于建立、修改和终止两个端点之间的会话。SIP 可用于建立 两方呼叫、多方呼叫,或者甚至 Internet 呼叫、多媒体呼叫和多媒体分发的多播会话。JSR 116:SIP Servlet API 是一个
阅读全文
posted @ 2018-03-10 18:35
BarryW
阅读(3635)
推荐(0)
摘要:
概述 网页HTML 静态化: 其实大家都知道网页静态化,效率最高,消耗最小的就是纯静态化的 html 页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法,但是对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现,于是出现了我们常见的信息发布系统 C
阅读全文
posted @ 2018-03-10 18:01
BarryW
阅读(1184)
推荐(0)
摘要:
先下载源码: 这里我下载的是1.8.2,因为这个是目前的最稳定版本,(虽然已经有1.9及2.0了) http://opensips.org/pub/opensips/1.8.2/src/opensips-1.8.2_src.tar.gz 编译前需要安装如下软件: apt-get install pe
阅读全文
posted @ 2018-03-10 17:45
BarryW
阅读(2874)
推荐(0)
摘要:
移动互联网的发展为整个VOIP通信行业开拓了新的战场,一时间各类即时通信软件如雨后春筝般冒了出来,再一次创造了移动互联网的发展神话。SIP协议做为音视频通信的首选标准,应用也越来越广泛。 神奇的分割线 以下内容为干货 本文以SIP协议为基础,以实现电信级VOIP运营平台为背景,结合当前中国的网络特点
阅读全文
posted @ 2018-03-10 17:37
BarryW
阅读(4594)
推荐(0)
posted @ 2018-03-09 13:18
BarryW
阅读(17262)
推荐(0)
摘要:
电商的秒杀和抢购,对我们来说,都不是一个陌生的东西。然而,从技术的角度来说,这对于Web系统是一个巨大的考验。当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要。这次我们会关注秒杀和抢购的技术实现和优化,同时,从技术层面揭开,为什么我们总是不容易抢到火车票的原因? 一、
阅读全文
posted @ 2018-03-08 23:09
BarryW
阅读(1759)
推荐(0)
摘要:
前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名 :-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总结。 毕竟受文章和理论之限,本文将
阅读全文
posted @ 2018-03-08 22:28
BarryW
阅读(438)
推荐(0)
摘要:
摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用My
阅读全文
posted @ 2018-03-08 22:20
BarryW
阅读(320)
推荐(0)
摘要:
简介 Trie树,又称为前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。 它的主要特点如下: 根节点不包含字符,除根节点外的
阅读全文
posted @ 2018-03-08 21:47
BarryW
阅读(929)
推荐(0)