
服务器相关
zbuger
这个作者很懒,什么都没留下…
展开
-
分布式文件系统下的本地缓存
在分布式文件系统中,为了提高系统的性能,常常会引入不同类型的缓存存储系统(算法优化所带来的的效果可能远远不如缓存带来的优化效果)。在软件中缓存存储系统一般可分为了两类:一、分布式缓存,例如:Memcached、Redis、淘宝的Tair等,二、本地缓存,例如:Facebook的flushcache等,其中本地缓存又可以分为两种:本地磁盘缓存(现在一般都采用读写性能比较优异的SSD来做存储)和本地内转载 2017-04-26 23:32:47 · 1097 阅读 · 0 评论 -
数据库的主从架构
这段时间,一直在总结电商系统的相关基础技术和架构,写了很多东西。但是还是发现一个很重要,很基础的方面没有讲到,那就是数据库读写分离的主从架构。可能发展到大型成熟的公司之后,主从架构已经落伍了,取而代之的是更加复杂的数据库集群。但是作为一个小型电商公司,数据库的主从架构应该是最基础的。任何大型的系统架构,都是不断演进的。主从架构便是数据库架构中,最基础的架构。所以研究完主从架构,也就能看懂更加复杂的转载 2016-08-28 16:53:30 · 6519 阅读 · 0 评论 -
关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究
本文原文连接: http://blog.youkuaiyun.com/bluishglc/article/details/7612811 ,转载请注明出处!1.XAXA是由X/Open组织提出的分布式事务的规范。XA规范主要定义了(全局)事务管理器(Transaction Manager)和(局部)资源管理器(Resource Manager)之间的接口。XA接口是双向转载 2016-08-02 21:02:31 · 919 阅读 · 0 评论 -
淘宝开源Key/Value结构数据存储系统Tair技术剖析
作者 余刚 发布于 2010年9月8日Tair是由淘宝网自主开发的Key/Value结构数据存储系统,在淘宝网有着大规模的应用。您在登录淘宝、查看商品详情页面或者在淘江湖和好友“捣浆糊”的时候,都在直接或间接地和Tair交互。Tair于2010年6月30号在淘宝开源平台上正式对外开源,本文较详细地介绍了Tair提供的功能及其实现的细节,希望对大家进一步了解Tai转载 2016-06-19 21:34:21 · 497 阅读 · 0 评论 -
HTTP 代理原理及实现(一)
Web 代理是一种存在于网络中间的实体,提供各式各样的功能。现代网络系统中,Web 代理无处不在。我之前有关 HTTP 的博文中,多次提到了代理对 HTTP 请求及响应的影响。今天这篇文章,我打算谈谈 HTTP 代理本身的一些原理,以及如何用 Node.js 快速实现代理。HTTP 代理存在两种形式,分别简单介绍如下:第一种是 RFC 7230 - HTTP/1.1: Messag转载 2016-06-20 13:29:34 · 5071 阅读 · 1 评论 -
HTTP响应报文与工作原理详解
超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是应用层协议。HTTP 是一种请求/响应式的协议,即一个客户端与服务器建立连接后,向服务器发送一个请求;服务器接到请求后,给予相应的响应信息。 HTTP 请求报文 HTTP 请求报文由请求行、请求头部、空行 和 请求包体 4 个部分组成,如下图所示: 下面对请求报文格式进行简转载 2016-08-04 10:38:22 · 1495 阅读 · 0 评论 -
HTTP 代理原理及实现(二)
在上篇《HTTP 代理原理及实现(一)》里,我介绍了 HTTP 代理的两种形式,并用 Node.js 实现了一个可用的普通 / 隧道代理。普通代理可以用来承载 HTTP 流量;隧道代理可以用来承载任何 TCP 流量,包括 HTTP 和 HTTPS。今天这篇文章介绍剩余部分:如何将浏览器与代理之间的流量传输升级为 HTTPS。上篇文章中实现的代理,是一个标准的 HTTP 服务,针对浏览器转载 2016-06-20 13:30:26 · 639 阅读 · 0 评论 -
SSL卸载技术对于HTTPS应用的优化与思考
迅猛发展的互联网为我们提供了丰富的信息资源,在带来便利的同时也影响着人们工作和生活方式。而让我们无法忽视的是,在开放的互联网所带来的繁荣背后,同时也潜藏着安全方面的隐患。随着人们对网络的依赖愈渐加深,各种加密技术应运而生,用以保障网络信息的安全性。SSL(Secure Sockets Layer)协议,便是在互联网上广泛应用于交易安全性保障的一种主导技术。 SSL属于加密通讯协议,工作在转载 2016-07-31 15:30:52 · 10209 阅读 · 0 评论 -
四层和七层负载均衡的区别
(一) 简单理解四层和七层负载均衡: ① 所谓四层就是基于IP+端口的负载均衡;七层就是基于URL等应用层信息的负载均衡;同理,还有基于MAC地址的二层负载均衡和基于IP地址的三层负载均衡。 换句换说,二层负载均衡会通过一个虚拟MAC地址接收请求,然后再分配到真实的MAC地址;三层负载均衡会通过一个虚拟IP地址接收请求,然后再分配到真实的IP地址;四层通过虚拟IP+端口接收请求转载 2016-08-03 14:13:27 · 943 阅读 · 0 评论 -
wireshark抓包分析
wireshark介绍wireshark的官方下载网站: http://www.wireshark.org/wireshark是非常流行的网络封包分析软件,功能十分强大。可以截取各种网络封包,显示网络封包的详细信息。wireshark是开源软件,可以放心使用。 可以运行在Windows和Mac OS上。 使用wireshark的人必须了解网络协议,否则就看不转载 2016-06-19 20:04:51 · 817 阅读 · 0 评论 -
tomcat安装ssl证书[推荐]
一、 生成证书请求 1. 安装JDK 安装Tomcat需要JDK支持。JDK1.6默认只支持 SSLv3 和 TLSv1 两个版本的https协议,JDK 1.7 版本默认禁用SSLv3,并支持 TLSv1、TLSv1.1及TLSv1.2。Tomcat 6及以下版本在使用 JDK 1.6及以下版本的运行环境时,可能存在无法禁用 SSLv3的情况。此时建议您升级 Tom转载 2016-06-16 20:34:23 · 603 阅读 · 0 评论 -
关于分布式系统的思考(一)
【摘要】本文谈及一些分布式系统的理论和思想,包括CAP、BASE、NWR等。并简单分析一些主流数据库分布式方案的利弊,以便我们在开发时更深入全面地进行思考、选择和设计。以下为正文:在讨论常见架构前,先简单了解下CAP理论:CAP是Consistency、Availablity和Partition-tolerance的缩写。分别指:一致性(Consistency):每次读操作转载 2016-08-30 14:02:09 · 577 阅读 · 0 评论 -
关于同步异步非阻塞阻塞[推荐]
这里面有篇文章非常牛逼,说的很清楚(注意这句话System I/O can be blocking, or non-blocking synchronous, or non-blocking asynchronous)http://www.artima.com/articles/io_design_patternsP.html(看这一篇足够了)包括下面这篇http://ww转载 2016-08-12 14:35:15 · 411 阅读 · 0 评论 -
分布式多副本一致性问题 [推荐]
1. 强一致性:所有的副本更新成功才返回。 如上图C表示Client,【P、S1、S2】构成一个同步组,P表示Primary node,S1,S2是两个secondary node,强同步模型的工作流程为C向P写数据,P向S1,S2转发,只有3个都写成功,才向C返回成功,否则写失败。这种模型对于append操作很容易实现,如果副本没有全部更新成功,向C转载 2016-08-13 16:58:26 · 2508 阅读 · 0 评论 -
关于java中的本地缓存-总结概
为什么要有本地缓存?在系统中,有些数据,数据量小,但是访问十分频繁(例如国家标准行政区域数据),针对这种场景,需要将数据搞到应用的本地缓存中,以提升系统的访问效率,减少无谓的数据库访问(数据库访问占用数据库连接,同时网络消耗比较大),但是有一点需要注意,就是缓存的占用空间以及缓存的失效策略。 为什么是本地缓存,而不是分布式的集群缓存? 目前的数据,大转载 2017-04-25 23:03:57 · 2082 阅读 · 0 评论 -
直接内存和堆内存的性能比较
背景知识在JDK 1.4中新加入了NIO(New Input/Output)类,引入了一种基于通道(Channel)与缓冲区(Buffer)的I/O方式,它可以使用Native函数库直接分配堆外内存,然后通过一个存储在Java堆里面的DirectByteBuffer对象作为这块内存的引用进行操作。这样能在一些场景中显著提高性能,因为避免了在Java堆和Native堆中来回复制数据。 显转载 2017-04-23 21:33:12 · 745 阅读 · 0 评论 -
使用sun.misc.Cleaner或者PhantomReference实现堆外内存的自动释放
Java NIO包是通过sun.misc.Cleaner和PhantomReference来实现堆外内存的自动释放的。现在我们来学习下Cleaner和PhantomReference的使用,自己封装实现堆外内存的自动释放。sun.misc.Cleaner是JDK内部提供的用来释放非堆内存资源的API。JVM只会帮我们自动释放堆内存资源,但是它提供了回调机制,通过这个类能方便的释放系统的转载 2017-04-23 16:16:01 · 665 阅读 · 0 评论 -
java堆外内存
JVM可以使用的内存分外2种:堆内存和堆外内存. 堆内存完全由JVM负责分配和释放,如果程序没有缺陷代码导致内存泄露,那么就不会遇到java.lang.OutOfMemoryError这个错误。 使用堆外内存,就是为了能直接分配和释放内存,提高效率。JDK5.0之后,代码中能直接操作本地内存的方式有2种:使用未公开的Unsafe和NIO包下ByteBuffer。转载 2017-04-23 15:12:07 · 838 阅读 · 0 评论 -
Netty之Java堆外内存扫盲贴
Java的堆外内存本来是高贵而神秘的东西,只在一些缓存方案的收费企业版里出现。但自从用了Netty,就变成了天天打交道的事情,毕竟堆外内存能减少IO时的内存复制,不需要堆内存Buffer拷贝一份到直接内存中,然后才写入Socket中;而且也没了烦人的GC。好在,Netty所用的堆外内存只是Java NIO的 DirectByteBuffer类,通读一次很快。还有一些sun.misc.*的类转载 2017-04-23 15:17:25 · 2116 阅读 · 0 评论 -
ubuntu安装nodejs
~# wget https://nodejs.org/dist/v4.1.1/node-v4.1.1-linux-x64.tar.gz~# tar -vxf node-v4.1.1-linux-x64.tar.gz~# mv node-v4.1.1-linux-x64 nodejs~# vi /etc/profile.d/node.shexport NODE_HOME=~/node原创 2016-12-06 19:05:26 · 449 阅读 · 0 评论 -
四层负载均衡——LVS
LVS 参考:http://zh.linuxvirtualserver.org/几个术语:Director:也可以称为调度器,LVS前端设备;realserver:也称为真实内部服务器,是真正在提供服务的;VIP:对外公布的IP,即客户请求进来的IP地址;DIP:调度器和realserver之间通信的地址;LVS的三种工作方式转载 2016-08-03 15:09:05 · 1499 阅读 · 0 评论 -
一致性模型
强一致性当更新操作完成之后,任何多个后续进程或者线程的访问都会返回最新的更新过的值。这种是对用户最友好的,就是用户上一次写什么,下一次就保证能读到什么。但是这种实现对性能影响较大。弱一致性系统并不保证续进程或者线程的访问都会返回最新的更新过的值。系统在数据写入成功之后,不承诺立即可以读到最新写入的值,也不会具体的承诺多久之后可以读到。但会尽可能保证在某个时间级别(比如秒级别原创 2016-08-13 16:50:36 · 1436 阅读 · 0 评论 -
聊聊分布式事务
事务就是一个会话过程中,对上下文的影响是一致的,要么所有的更改都做了,要么所有的更变都撤销掉。就要么生,要么死。没有半死不死的中间不可预期状态。参考下薛定谔的猫。事务是为了保障业务数据的完整性和准确性的。分布式事务,常见的两个处理办法就是两段式提交和补偿。两段式提交典型的就是XA,有个事务协调器,告诉大家,来都准备好提交,大家回复,都准备好了,然后协调器告诉转载 2016-09-07 14:35:31 · 506 阅读 · 0 评论 -
关于分布式事务、两阶段提交协议、三阶提交协议
随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构,不得不提的就是分布式。在《分布式系统的一致性探讨》一文中主要介绍了分布式系统中存在的一致性问题。本文将简单介绍如何有效的解决分布式的一致性问题,其中包括什么是分布式事务,二阶段提交和三阶段提转载 2016-09-06 20:52:59 · 960 阅读 · 0 评论 -
Apache搭建代理服务器
版权声明 :可以任意转载,但转载时必须标明原作者charlee、原始链接http://tech.idv2.com/2004/12/04/create-proxy-with-apache/ 以及本声明。 众所周知Apache是目前最优秀的HTTP服务器。实际上它不仅能当作服务器使用,也能够被用来架设代理服务器。本文就如何使用Apache架设HTTP代理服务器进行说明。本文将基转载 2016-06-12 18:01:09 · 10576 阅读 · 0 评论 -
密钥对,公钥,证书,私钥,jks,keystore,truststore,cer,pfx名词说明
密钥:我理解是公钥+私钥的统称。密钥对:公钥(证书)和私钥成对存在。通信双方各持有自己的私钥和对方的公钥。自己的私钥需密切保护,而公钥是公开给对方的。在windows下,单独存在的公钥一般是后缀为.cer的文件A用自己的私钥对数据加密,发给B,B用A提供的公钥解密。同理B用自己的私钥对数据加密,发送给A后,A用B的公钥解开。公钥的两个用途:1。验证对原创 2016-06-16 16:53:48 · 5397 阅读 · 0 评论 -
java实现ssl单/双向认证通信[推荐]
有关SSL的原理和介绍在网上已经有不少,对于Java下使用keytool生成证书,配置SSL通信的教程也非常多。但如果我们不能够亲自动手做一个SSL Sever和SSL Client,可能就永远也不能深入地理解Java环境下,SSL的通信是如何实现的。对SSL中的各种概念的认识也可能会仅限于可以使用的程度。本文通过构造一个简单的SSL Server和SSL Client来讲解Java环境下SS原创 2016-06-17 00:30:48 · 15834 阅读 · 4 评论 -
为什么在12306买火车票要装根证书?
12306主页上有一段很显眼的文字—--“为保障您顺畅购票,请下载安装根证书。”这段文字和12306很多的其他问题一起成为网友诟病12306的话题,但是这个看似安全的根证书确可能会成为让12306用户们的安全受到严重威胁的东西。 为什么在12306上买火车票要装根证书?想要回答这个问题,那么我们就必须先要提前回答说几个定义: 电脑在与服务器交换敏感信息时会使用一种叫做SSL的加转载 2016-06-15 10:28:03 · 1555 阅读 · 0 评论 -
流量牵引在抗DDOS中的应用
什么是流量牵引 下图中的Defender就是我们熟悉的抗DDoS设备,Probe是一个专门用来分析网络流量的预警设备。对于这些网络安全设备我们并不陌生,但对于这样的拓扑结构恐怕就不常见了。两个路由器之间是两条并行的线路,在以往部署抗DDoS攻击设备的时候通常是把它直接串联在网络中,正常流量和攻击流量都穿过抗DDoS设备。让我们先根据这个简单的拓扑来解释一下什么是流量牵引。原创 2016-06-13 10:05:16 · 4920 阅读 · 0 评论 -
数字证书原理
公钥机制面临的问题-假冒身份发布公钥采用公钥机制进行加密传输面临的一个问题是公钥的发布。任何一个用户都可以通过网络向所有人发布伪造的公钥,如果某个用户假冒真正用户的名义发布一个公钥,在该假冒者被揭穿以前,他可以解读所有发向真正用户的加密消息,还可以通过签名冒充真正用户的身份。 用户A假冒用户B的身份发布一个公钥 其他用户使用假冒的公钥与用户B通信,信息内容被用户A窃取转载 2016-06-06 14:22:41 · 3495 阅读 · 0 评论 -
数字证书原理[推荐]
文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。如果发现文中有错误的地方,或者有什么地方说得不够清楚,欢迎指出! 1、基础知识 这部分内容主要解释一些概念和术语,最好是先理转载 2016-06-06 14:16:40 · 482 阅读 · 0 评论 -
反向代理服务器的工作原理
最近有打算研读nginx源代码,看到网上介绍nginx可以作为一个反向代理服务器完成负载均衡。所以搜罗了一些关于反向代理服务器的内容,整理综合。 一 概述 反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器;并将从服务器上得到的结果返回给Interne转载 2016-06-06 13:21:49 · 404 阅读 · 0 评论 -
正向代理与反向代理
一、正向代理的概念1. 正向代理:是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理转载 2016-06-06 13:16:17 · 795 阅读 · 0 评论 -
基于 Token 的身份验证
最近了解下基于 Token 的身份验证,跟大伙分享下。很多大型网站也都在用,比如 Facebook,Twitter,Google+,Github 等等,比起传统的身份验证方法,Token 扩展性更强,也更安全点,非常适合用在 Web 应用或者移动应用上。Token 的中文有人翻译成 “令牌”,我觉得挺好,意思就是,你拿着这个令牌,才能过一些关卡。传统身份验证的方法HTTP 是一种没转载 2016-06-08 17:52:09 · 1543 阅读 · 0 评论 -
Shell入门
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一。Linux的Shell转载 2016-06-24 11:55:57 · 368 阅读 · 0 评论 -
java ssl编程
实现技术:JSSE(Java Security Socket Extension)是Sun为了解决在Internet上的实现安全信息传输的解决方案。它实现了SSL和TSL(传输层安全)协议。在JSSE中包含了数据加密,服务器验证,消息完整性和客户端验证等技术。通过使用JSSE,可以在Client和Server之间通过TCP/IP协议安全地传输数据。为了实现消息认证。Server转载 2016-06-15 16:29:02 · 609 阅读 · 0 评论 -
java导入cer证书
在项目开发中,有时会遇到与SSL安全证书导入打交道的,如何把证书导入java中的cacerts证书库呢? 其实很简单,方法如下: 每一步:进入某个https://www.xxx.com开头的网站,把要导入的证书下载过来, 在该网页上右键 >> 属性 >> 点击"证书" >> 再点击上面的"详细信息"切换栏 >> 再点击右下角那个"复制到文件"的按钮转载 2016-06-15 16:53:37 · 8869 阅读 · 0 评论 -
JAVA利用HttpClient进行POST请求(HTTPS)
为了避免需要证书,所以用一个类继承DefaultHttpClient类,忽略校验过程。1.写一个SSLClient类,继承至HttpClient[java] view plain copy import java.security.cert.CertificateException; import java.security.c转载 2016-06-18 20:30:40 · 3479 阅读 · 0 评论 -
注意设置httpclient连接数
在使用Httpclient的过程中,当访问量增大的时候,会发现本地的连接等待时间急剧增加,例如从400ms增加到 78000ms,之前一直以为是航信系统问题,后面经过检查才发现,原来是本地httpclient设置时,最大连接数采用了默认设置的原因,而默认的最 大连接数只有2个,所以当有大量连接需要建立时,大多数连接只有等待。后面将连接数设置修改成32个之后,这个响应时间就基本上很少出现很大的时候。转载 2016-06-18 20:51:15 · 9075 阅读 · 0 评论 -
HttpClient使用详解(ssl)
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会转载 2016-06-18 22:24:44 · 7138 阅读 · 0 评论