资源链接:
Java分布式架构的演变及解决方案
http://www.cnblogs.com/malcome/articles/5909632.html
分布式
1、单机裸跑:
LAMP = [Linux + Apache + MySQL + PHP]
2、分开部署:
应用程序、数据库、文件 分别部署在独立的服务器上
3、数据缓存:
二八定律(80%的业务访问集中在20%的数据上),从而引入缓存
缓存:本地缓存(速度快、争用应用程序内存)
远程缓存(速度慢、独立服务)
4、应用服务器集群:
多台服务器通过负载均衡同时向外提供服务,解决单服务器处理能力和存储空间上限问题
5、数据库读写分离:
6、反向代理和CDN加速(基于缓存)
7、使用NoSQL和搜索引擎
8、业务插分
按照业务进行插分改造,应用服务器按照业务区分进行分别部署
9、分布式服务
Java分布式应用技术基础:
1、消息队列框架
2、服务框架架构
3、服务总线架构
Dubbo
分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册)
核心部分:
1、远程通讯:
提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型、序列化、以及“请求-响应”模式的信息交换方式。
2、集群容错:
提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持
3、自动发现:
基于注册中心目录服务,使服务消费方能动态查找服务提供方,使地址透明,使服务提供方可以平滑或减少机器。
安全机制:
Dubbo通过Token令牌防止用户绕过注册中心直连,然后在注册中心上管理授权。Dubbo还提供服务黑白名单,来控制服务所允许的调用方。
引入方式:
Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需要用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载
HSF XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
非开源
需要JBoss容器
Zookeeper
https://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/
5个强大的Java分布式缓存框架
http://developer.51cto.com/art/201411/457423.htm
1、Ehcache – Java分布式缓存框架
Ehcache是一个Java实现的开源分布式缓存框架,EhCache 可以有效地减轻数据库的负载,可以让数据保存在不同服务器的内存中,在需要数据的时候可以快速存取。同时EhCache 扩展非常简单,官方提供的Cache配置方式有好几种。你可以通过声明配置、在xml中配置、在程序里配置或者调用构造方法时传入不同的参数。
官方网站:http://ehcache.org/
使用教程:http://www.codeceo.com/article/java-ehcache.html
2、Cacheonix – 高性能Java分布式缓存系统
Cacheonix同样也是一个基于Java的分布式集群缓存系统,它同样可以帮助你实现分布式缓存的部署。
官方网站:http://www.cacheonix.com/
使用教程:http://www.codeceo.com/article/java-cacheonix.html
3、ASimpleCache – 轻量级Android缓存框架
ASimpleCache是一款基于Android的轻量级缓存框架,它只有一个Java文件,ASimpleCache基本可以缓存常用的Android对象,包括普通字符串、JSON对象、经过序列化的Java对象、字节数组等。
官方网站:https://github.com/yangfuhai/ASimpleCache
使用教程:http://www.codeceo.com/article/asimplecache-android-cache.html
4、JBoss Cache – 基于事物的Java缓存框架
JBoss Cache是一款基于Java的事务处理缓存系统, 它的目标是构建一个以Java框架为基础的集群解决方案,可以是服务器应用,也可以是Java SE应用。
官方网站:http://jbosscache.jboss.org/
使用教程:http://www.codeceo.com/article/jboss-cache-java.html
5、Voldemort – 基于键-值(key-value)的缓存框架
Voldemort是一款基于Java开发的分布式键-值缓存系统,像JBoss Cache一样,Voldemort同样支持多台服务器之间的缓存同步,以增强系统的可靠性和读取性能。
官方网站:http://www.project-voldemort.com/voldemort/
使用教程:http://www.codeceo.com/article/voldemort-java-key-value-catch.html
WSDL : Web Services Description Language
NIO : Non-blocking IO
HSF
Zookeeper
Hadoop
负载均衡:
1、硬件负载均衡(F5 昂贵)
2、软件负载均衡(LVS、Nginx)
CDN加速:
分布式和集群的区别:
一句话:分布式是并联工作,集群是串联工作
分布式:一个业务拆分多个子业务,部署在不同的服务器
集群:同一个业务,部署在多个服务器
集群是个物理形态,分布式是个工作方式
使用Node编写一个分布式服务调用框架
使用Node做一个静态化网页
Java分布式架构的演变及解决方案
http://www.cnblogs.com/malcome/articles/5909632.html
分布式
1、单机裸跑:
LAMP = [Linux + Apache + MySQL + PHP]
2、分开部署:
应用程序、数据库、文件 分别部署在独立的服务器上
3、数据缓存:
二八定律(80%的业务访问集中在20%的数据上),从而引入缓存
缓存:本地缓存(速度快、争用应用程序内存)
远程缓存(速度慢、独立服务)
4、应用服务器集群:
多台服务器通过负载均衡同时向外提供服务,解决单服务器处理能力和存储空间上限问题
5、数据库读写分离:
6、反向代理和CDN加速(基于缓存)
7、使用NoSQL和搜索引擎
8、业务插分
按照业务进行插分改造,应用服务器按照业务区分进行分别部署
9、分布式服务
Java分布式应用技术基础:
1、消息队列框架
2、服务框架架构
3、服务总线架构
Dubbo
分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册)
核心部分:
1、远程通讯:
提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型、序列化、以及“请求-响应”模式的信息交换方式。
2、集群容错:
提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持
3、自动发现:
基于注册中心目录服务,使服务消费方能动态查找服务提供方,使地址透明,使服务提供方可以平滑或减少机器。
安全机制:
Dubbo通过Token令牌防止用户绕过注册中心直连,然后在注册中心上管理授权。Dubbo还提供服务黑白名单,来控制服务所允许的调用方。
引入方式:
Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需要用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载
HSF XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
非开源
需要JBoss容器
Zookeeper
https://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/
5个强大的Java分布式缓存框架
http://developer.51cto.com/art/201411/457423.htm
1、Ehcache – Java分布式缓存框架
Ehcache是一个Java实现的开源分布式缓存框架,EhCache 可以有效地减轻数据库的负载,可以让数据保存在不同服务器的内存中,在需要数据的时候可以快速存取。同时EhCache 扩展非常简单,官方提供的Cache配置方式有好几种。你可以通过声明配置、在xml中配置、在程序里配置或者调用构造方法时传入不同的参数。
官方网站:http://ehcache.org/
使用教程:http://www.codeceo.com/article/java-ehcache.html
2、Cacheonix – 高性能Java分布式缓存系统
Cacheonix同样也是一个基于Java的分布式集群缓存系统,它同样可以帮助你实现分布式缓存的部署。
官方网站:http://www.cacheonix.com/
使用教程:http://www.codeceo.com/article/java-cacheonix.html
3、ASimpleCache – 轻量级Android缓存框架
ASimpleCache是一款基于Android的轻量级缓存框架,它只有一个Java文件,ASimpleCache基本可以缓存常用的Android对象,包括普通字符串、JSON对象、经过序列化的Java对象、字节数组等。
官方网站:https://github.com/yangfuhai/ASimpleCache
使用教程:http://www.codeceo.com/article/asimplecache-android-cache.html
4、JBoss Cache – 基于事物的Java缓存框架
JBoss Cache是一款基于Java的事务处理缓存系统, 它的目标是构建一个以Java框架为基础的集群解决方案,可以是服务器应用,也可以是Java SE应用。
官方网站:http://jbosscache.jboss.org/
使用教程:http://www.codeceo.com/article/jboss-cache-java.html
5、Voldemort – 基于键-值(key-value)的缓存框架
Voldemort是一款基于Java开发的分布式键-值缓存系统,像JBoss Cache一样,Voldemort同样支持多台服务器之间的缓存同步,以增强系统的可靠性和读取性能。
官方网站:http://www.project-voldemort.com/voldemort/
使用教程:http://www.codeceo.com/article/voldemort-java-key-value-catch.html
WSDL : Web Services Description Language
NIO : Non-blocking IO
HSF
Zookeeper
Hadoop
负载均衡:
1、硬件负载均衡(F5 昂贵)
2、软件负载均衡(LVS、Nginx)
CDN加速:
分布式和集群的区别:
一句话:分布式是并联工作,集群是串联工作
分布式:一个业务拆分多个子业务,部署在不同的服务器
集群:同一个业务,部署在多个服务器
集群是个物理形态,分布式是个工作方式
使用Node编写一个分布式服务调用框架
使用Node做一个静态化网页