- 博客(30)
- 资源 (5)
- 收藏
- 关注
转载 zookeeper和dubbo的关系
Dubbo建议使用Zookeeper作为服务的注册中心。1. Zookeeper的作用: zookeeper用来注册服务和进行负载均衡,哪一个服务由哪一个机器来提供必需让调用者知道,简单来说就是ip地址和服务名称的对应关系。当然也可以通过硬编码的方式把这种对应关系在调用方业务代码中实现,但是如果提供服务的机器挂掉调用者无法知晓,如果不更改代码会继续请求挂掉的机器提供服务。
2016-09-19 17:40:18 1947
转载 Dubbo是什么
1. Dubbo是什么?Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消
2016-09-19 15:07:34 319
转载 网站安全认证系统的设计变迁
网站在从小到大的发展历程中,安全认证系统是如何变迁的?下面我们从其发展的几个阶段来分下: 阶段1: 起步,注册用户很少,两台服务器,一台应用服务器,一台数据库服务器。 用户登陆后在应用服务器记录用户 session (通常就是 tomcat session)。 当用户请求受保护资源(网页)时,首先请求经过一个安全认证过滤器进行...
2016-09-19 14:44:23 316
原创 Java提高篇(十一):一个tomcat有几个jvm
1、一个tomcat是一个进程,其中有很多线程(与有多少个application无关) 2、一个tomcat启动一个JVM,其中可以有很多application3、一个tomcat中部署的多个app,虽然同处一个JVM里,但是由于无法相互调用,所以也可以认为是分布式的 Question: 在一个servlet容器(比如说tomcat)里部署了3个.war,那么启动后会有几个JVM存在呢,是一个JV...
2016-09-19 14:02:10 5027
转载 Java提高篇(十):java单例模式的误导性
“单例一个最常见的设计模式。 既简单,又复杂。“周末几个同事聚在一起聊天,回顾起当初面试时经常问起的关于 java 的单例模式。有同事提出单例类的对象在 jvm 中只存在一个,这个观点是否正确?其实这种观点看似正确,给人很强的误导性,但并不准确。因为 java 的对象实例化与 classloader 密切相关。每个 classloader 都有自身的命名空间,在同一命名空间中是不允许同名类...
2016-09-19 14:00:02 277
转载 京东咚咚架构演进
:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]咚咚是什么?咚咚之于京东相当于旺旺之于淘宝,它们都是服务于买家和卖家的沟通。 自从京东开始为第三方卖家提供入驻平台服务后,咚咚也就随之诞生了。 我们首先看看它诞生之初是什么样的。1.0 诞生(2010 - 2011)为了业务的快速上线,1.0 版本的技术架构实现是非常直接且简
2016-09-19 13:42:30 356
转载 RPC 的概念模型与实现解析
今天分布式应用、云计算、微服务大行其道,作为其技术基石之一的 RPC 你了解多少?一篇 RPC 的技术总结文章,数了下 5k+ 字,略长,可能也不适合休闲的碎片化时间阅读,可以先收藏抽空再细读:)全文目录如下:定义起源目标分类结构 模型拆解组件实现 导出导入协议 编解码消息头消息体传输执行异常总结参考两年前写过两篇关于 RPC 的文章
2016-09-19 13:34:43 591
转载 Java程序优化思路
程序代码优化要点:字符串优化:分析String源码,了解String常用方法,使用StringBuffer、StringBuilder。 List、Map、Set优化:分析常用ArrayList、LinkedList、HashMap、TreeMap、LinkedHashMap、Set接口、集合常用方法优化。 使用NIO:Buffered、Channel操作和原理,使用零拷贝。 引用优化:...
2016-09-18 17:27:32 414
转载 Java设计优化思路
设计优化手段:设计模式:使用常用设计模式改善代码,优化运行时产生的对象、对象生命周期等。 Value-Object:合并网络请求,减少网络请求。 业务代理:对业务模块封装代理层,代理层缓存远程调用的请求数据。 缓存和缓冲区:缓存热区数据,对延时比较大的功能使用缓冲技术。 池技术:使用线程池、连接池、对象池等技术减少对象、连接的重新创建。 并行化:充分利用cpu资源,采用多进程、多线程...
2016-09-18 17:25:19 269
转载 Ubuntu 删除缓存(转载)
原文链接:http://fox-leon.iteye.com/blog/1305501linux和windows系统不同,linux不会产生无用垃圾文件,但是在升级缓存中,linux不会自动删除这些文件,还是很占硬盘的!一、删除缓存1,非常有用的清理命令:sudo apt-get autoclean 清理旧版本的软件缓存sudo apt-get cle...
2016-09-05 13:38:11 916
转载 Java NIO系列教程(十二) Java NIO与IO
原文地址:http://tutorials.jenkov.com/java-nio/nio-vs-io.html作者:Jakob Jenkov 译者:郭蕾 校对:方腾飞当学习了Java NIO和IO的API后,一个问题马上涌入脑海:我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差异、它们的使用场景,以及它们如何影响您的代码设计。...
2016-09-05 13:26:14 286
转载 Java NIO系列教程(十一) Pipe
原文链接 作者:Jakob Jenkov 译者:黄忠 校对:丁一Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。这里是Pipe原理的图示:创建管道通过Pipe.open()方法打开管道。例如:Pipe pipe =
2016-09-03 18:52:39 202
转载 Java NIO系列教程(十) Java NIO DatagramChannel
原文链接 作者:Jakob Jenkov 译者:郑玉婷 校对:丁一Java NIO中的DatagramChannel是一个能收发UDP包的通道。因为UDP是无连接的网络协议,所以不能像其它通道那样读取和写入。它发送和接收的是数据包。打开 DatagramChannel下面是 DatagramChannel 的打开方式:DatagramChan
2016-09-03 18:51:42 299
转载 Java NIO系列教程(九) ServerSocketChannel
原文链接 作者:Jakob Jenkov 译者:郑玉婷 校对:丁一Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样。ServerSocketChannel类在 java.nio.channels包中。这里有个例子:ServerSocketChanne
2016-09-03 18:51:07 205
转载 Java NIO系列教程(八) SocketChannel
原文链接 作者:Jakob Jenkov 译者:郑玉婷 校对:丁一Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道。可以通过以下2种方式创建SocketChannel:打开一个SocketChannel并连接到互联网上的某台服务器。一个新连接到达ServerSocketChannel时,会创建一个SocketChannel。
2016-09-03 18:50:16 457
转载 Java NIO系列教程(七) FileChannel
原文链接 作者:Jakob Jenkov 译者:周泰 校对:丁一Java NIO中的FileChannel是一个连接到文件的通道。可以通过文件通道读写文件。FileChannel无法设置为非阻塞模式,它总是运行在阻塞模式下。打开FileChannel在使用FileChannel之前,必须先打开它。但是,我们无法直接打开一个FileC
2016-09-03 18:49:43 220
转载 Java NIO系列教程(六) Selector
原文链接 作者:Jakob Jenkov 译者:浪迹v 校对:丁一Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个channel,从而管理多个网络连接。下面是本文所涉及到的主题列表:为什么使用Selector?Selector的创建向Selector注册通道Select
2016-09-03 18:42:46 314
转载 Java NIO系列教程(五) 通道之间的数据传输
原文地址:http://tutorials.jenkov.com/java-nio/scatter-gather.html作者:Jakob Jenkov 译者:郭蕾 校对:周泰在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个channel。transf
2016-09-02 11:44:46 257
转载 Java NIO系列教程(四) Scatter/Gather
原文地址:http://tutorials.jenkov.com/java-nio/scatter-gather.html作者:Jakob Jenkov 译者:郭蕾 Java NIO开始支持scatter/gather,scatter/gather用于描述从Channel(译者注:Channel在中文经常翻译为通道)中读取或者写入到Channel的操作。分散(sca
2016-09-02 11:34:27 324
转载 Java NIO系列教程(三) Buffer
原文链接 作者:Jakob Jenkov 译者:airu 校对:丁一Java NIO中的Buffer用于和NIO通道进行交互。如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的。缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。下面是NIO Buffe
2016-09-02 11:17:51 303
转载 Java NIO系列教程(二) Channel
原文链接 作者:Jakob Jenkov 译者:airu 校对:丁一Java NIO的通道类似流,但又有些不同:既可以从通道中读取数据,又可以写数据到通道。但流的读写通常是单向的。 通道可以异步地读写。 通道中的数据总是要先读到一个Buffer,或者总是要从一个Buffer中写入。正如上面所说,从通道读取数据到缓冲区,从缓冲区写入数据到通道。如下图所示:...
2016-09-02 10:59:12 254
转载 Java NIO系列教程(一) Java NIO 概述
原文链接 作者:Jakob Jenkov 译者:airu 校对:丁一Java NIO 由以下几个核心部分组成:ChannelsBuffersSelectors虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Buffer 和 Selector 构成了核心的API。其它组件,如Pipe和FileLock,只不过是与三个核心组
2016-09-02 10:46:53 222
转载 Java NIO系列教程
原文地址:http://tutorials.jenkov.com/java-nio/index.html作者:Jakob Jenkov 译者:郭蕾 校对:方腾飞Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式。Java NIO: Channels a
2016-09-02 10:21:45 289
转载 Java提高篇(二):asList的缺陷
在实际开发过程中我们经常使用asList讲数组转换为List,这个方法使用起来非常方便,但是asList方法存在几个缺陷:一、避免使用基本数据类型数组转换为列表使用8个基本类型数组转换为列表时会存在一个比较有味的缺陷。先看如下程序:public static void main(String[] args) { int[] ints = {1,2,3,4,5
2016-09-01 11:24:39 344
转载 Java提高篇(九):保持compareTo和equals同步
在Java中我们常使用Comparable接口来实现排序,其中compareTo是实现该接口方法。我们知道compareTo返回0表示两个对象相等,返回正数表示大于,返回负数表示小于。同时我们也知道equals也可以判断两个对象是否相等,那么他们两者之间是否存在关联关系呢?public class Student implements Comparable{ private Str
2016-09-01 10:55:52 709
转载 Java提高篇(八):实现多重继承
多重继承指的是一个类可以同时从多于一个的父类那里继承行为和特征,然而我们知道Java为了保证数据安全,它只允许单继承。有些时候我们会认为如果系统中需要使用多重继承往往都是糟糕的设计,这个时候我们往往需要思考的不是怎么使用多重继承,而是您的设计是否存在问题.但有时候我们确实是需要实现多重继承,而且现实生活中也真正地存在这样的情况,比如遗传:我们即继承了父亲的行为和特征也继承了母亲的行为和特征。可幸的
2016-09-01 10:41:42 302
转载 Java提高篇(七):强制类型转换
在java中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换。 在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换。因为子类拥有比父类更多的属性、更强的功能,所以父类转换为子类需要强制。那么,是不是只要是父类转换为子类就会成功呢?其实不然,他们之间的强制类型转换是有条件的。
2016-09-01 10:39:49 652
转载 Java提高篇(六):详解内部类
可以将一个类的定义放在另一个类的定义内部,这就是内部类。 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二)。第一次见面 内部类我们从外面看是非常容易理解的,无非就是在一个类的内部在定义一个类。public class OuterClass { private String
2016-09-01 10:29:27 216
转载 Java提高篇(五):使用序列化实现对象的拷贝
我们知道在Java中存在这个接口Cloneable,实现该接口的类都会具备被拷贝的能力,同时拷贝是在内存中进行,在性能方面比我们直接通过new生成对象来的快,特别是在大对象的生成上,使得性能的提升非常明显。然而我们知道拷贝分为深拷贝和浅拷贝之分,但是浅拷贝存在对象属性拷贝不彻底问题。关于深拷贝、浅拷贝的请参考这里:渐析java的浅拷贝和深拷贝一、浅拷贝问题我们先看如下代码:
2016-09-01 09:57:36 255
转载 Java提高篇(四):渐析java的浅拷贝和深拷贝
首先来看看浅拷贝和深拷贝的定义: 浅拷贝:使用一个已知实例对新创建实例的成员变量逐个赋值,这个方式被称为浅拷贝。 深拷贝:当一个类的拷贝构造方法,不仅要复制对象的所有非引用成员变量值,还要为引用类型的成员变量创建新的实例,并且初始化为形式参数实例值。这个方式称为深拷贝 也就是说浅拷贝只复制一个对象,传递引用,不能复制实例。而深拷贝对对象内部的引
2016-09-01 09:45:29 349
Des前后台加解密
2016-03-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人