分布式技术

分布式cookie-session的实现(spring-session)

房东的猫 提交于 2019-12-03 07:05:29
1 session存储策略 存储,即在后台使用session的setAttribute,getAttribute等方法时,这些内部存放的数据最终存储至什么位置。比如在默认的tomcat实现中,相应的数据即存储在内存中,并在停止之后会序列化至磁盘中。 可以使用内存存储和第三方存储,如redis。对于集群式的session存储,那么肯定会使用第三方存储的实现。 在spring-session中,对session存储单独作了一个定义,但定义上基本保证与http session一致,主要的目的在于它可以支持在非http的环境中模拟使用。因此不直接使用http session接口。 先看定义: public interface Session { /** 获取惟一的id,可以理解为即将每个session当作一个实体对象 */ String getId(); <T> T getAttribute(String attributeName); Set<String> getAttributeNames(); void setAttribute(String attributeName, Object attributeValue); void removeAttribute(String attributeName); } 从这个定义来看,如果要使用httpSession

Hadoop家族学习路线图(转)

纵然是瞬间 提交于 2019-12-03 06:09:27
Hadoop家族学习路线图 Hadoop家族系列文章 ,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括,YARN, Hcatalog, Oozie, Cassandra, Hama, Whirr, Flume, Bigtop, Crunch, Hue等。 从2011年开始,中国进入大数据风起云涌的时代,以Hadoop为代表的家族软件,占据了大数据处理的广阔地盘。开源界及厂商,所有数据软件,无一不向Hadoop靠拢。Hadoop也从小众的高富帅领域,变成了大数据开发的标准。在Hadoop原有技术基础之上,出现了Hadoop家族产品,通过“大数据”概念不断创新,推出科技进步。 作为IT界的开发人员,我们也要跟上节奏,抓住机遇,跟着Hadoop一起雄起! 关于作者: 张丹(Conan), 程序员Java,R,PHP,Javascript weibo:@Conan_Z blog: http://blog.fens.me email: bsspirit@gmail.com 转载请注明出处: http://blog.fens.me/hadoop-family-roadmap/ 前言 使用Hadoop已经有一段时间了,从开始的迷茫

Hinton胶囊网络后最新研究:用“在线蒸馏”训练大规模分布式神经网络

醉酒当歌 提交于 2019-12-03 05:24:13
Hinton胶囊网络后最新研究:用“在线蒸馏”训练大规模分布式神经网络 朱晓霞 发表于 目标检测和深度学习 订阅 457 广告 关闭 11.11 智慧上云 云服务器企业新用户优先购,享双11同等价格 立即抢购 新智元报道 来源:arXiv 编译:肖琴、克雷格 【新智元导读】 深度学习领域的大牛、多伦多大学计算机科学教授Geoffrey Hinton近年在distillation这一想法做了一些前沿工作。今天我们介绍的是Hinton作为作者之一,谷歌大脑、DeepMind等的研究人员提交的distillation的更进一步工作:通过online distillation进行大规模分布式神经网络训练。该工作提出了Codistillation的概念,通过大规模实验,发现codistillation方法提高了准确性并加快了训练速度,并且易于在实践中使用。 论文地址:https://arxiv.org/pdf/1804.03235.pdf 在提出备受瞩目的“胶囊网络”(Capsule networks)之后,深度学习领域的大牛、多伦多大学计算机科学教授Geoffrey Hinton近年在 distillation 这一想法做了一些前沿工作,包括Distill the Knowledge in a Neural Network等。今天我们介绍的是Hinton作为作者之一,谷歌大脑

分布式应用

北城以北 提交于 2019-12-03 04:53:08
基于SOA的分布式高可用架构和微服务架构,是时下如日中天的互联网企业级系统开发架构选择方案。在核心思想上,两者都主张对系统的横向细分和扩展,按不同的业务功能模块来对系统进行分割并且使用一定的手段实现服务之间的通信,并且基于弹性云服务搭建高可用的分布式解决方案。 但它们之间的区别可能比相似的地方要多,特别是体现在对服务的使用和与云服务的深度结合上。在具体实践中,微服务的架构也可以与其它互联网中间件组合在一起,组成规模更为庞大的SOA分布式系统。本文主要对一个典型的SOA分布式应用的架构和组件做详细的说明。 企业级系统架构的演变 单体式 单体架构即所有系统功能和模块基于MVC的设计模式耦合在一个单体服务器单元中。基于传统的MVC思想,单体应用基于前后端分离的原则,通过Model、Control和View共同来完成一个特点的服务请求。这种传统的架构模式带了了多人团队合作、代码更新和维护、持续部署方面的困难,更重要的是,这种架构无法支持互联网行业对高并发的需求。下图为一个典型商城应用的单体架构及其SSM实现架构: 关于单体式应用的更多资料,可参看: JavaWeb开发之详解Servlet及Servlet容器 基于SSM的Java Web应用开发原理初探 集群 至少在高并发的需求上,单体应用的缺陷是行业所无法忍受的, 那如何提升并发性能呢?一个直接的思路是,把单体应用变成多体,变成集群

企业分布式事务经典方案综述汇总

会有一股神秘感。 提交于 2019-12-03 02:56:41
基本概念 本地事务 事务由资源管理器(如DBMS)本地管理 优点:严格的ACID 缺点:不具备分布事务处理能力 全局事务(DTP模型) TX协议:应用或应用服务器与事务管理器的接口 XA协议:全局事务管理器与资源管理器的接口 优点:严格的ACID 缺点:效率非常低 两阶段提交 优点 准备后,仍可提交或回滚 准备时,一致性检查必须OK 准备后,事务结果仍然只在事务内可见 准备后,事务结果已经持久化 缺点: 潜在故障点多带来的脆弱性 准备后,提交前的故障引发一系列隔离与恢复难题 http://book.51cto.com/art/201309/410608.htm 跨域的全局事务(DTP模型) 缺点 更高的协议成本 脆弱,故障点多 故障影响大,恢复困难 复杂,更多架构与平台约束 java企业平台中的分布式事务实现 JTA 面向应用、应用服务器与资源管理器的高层事务接口 JTS JTA事务管理器的实现标准,向上支持JTA,向下通过CORBA OTS实现跨事务域的互操作性 EJB 优点 简单一致的编程模型 跨域分布处理的ACID保证 局限 DTP模型本身的局限 缺少充分公开的大规模、高可用、密集事务应用的成功案例 JMS与分布式事务: http://techv5.com/topic/1371/ 其它资源 ws-transaction标准 jbossTransaction系统 Paxos算法

微服务分布式企业框架 Springmvc+mybatis+shiro+Dubbo+ZooKeeper+Redis+KafKa

匿名 (未验证) 提交于 2019-12-03 00:44:02
主要定位于互联网企业架构,已内置企业信息化系统的基础功能和高效的代码生成工具,包括:系统权限组件、数据权限组件、数据字典组件、核心工具 组件、视图操作组件、工作流组件组件、代码生成等。采用分层设计、双重验证、提交数据安全编码、密码加密、访问验证、数据权限验证。 平台简介 是一个 分布式框架 ,提供项目模块化、服务化、热插拔的思想,高度封装安全性的Java EE快速开发平台。本身集成Dubbo服务管控、 Zookeeper注册中心 、Redis分布式缓存技术、 FastDFS分布式 文件系统、ActiveMQ异步消息中间件、 Nginx负载均衡 等分布式技术,使用Maven做项目管理,项目模块化,提高项目的易开发性、扩展性,以Spring Framework为核心容器,Spring MVC为模型视图控制器,MyBatis为数据访问层, Apache Shiro为权限授权层,Ehcahe对常用数据进行缓存,Activit为工作流引擎等。前端集成Bootstrap4 metronic框架,UI响应式、扁平化布局,适应所有PC、Pad、Anroid、ios 移动设备等。 主要定位于互联网企业架构,已内置企业信息化系统的基础功能和高效的代码生成工具,包括:系统权限组件、数据权限组件、数据字典组件、核心工具 组件、视图操作组件、工作流组件、代码生成等。采用分层设计、双重验证、提交数据安全编码

分布式大型互联网企业架构

匿名 (未验证) 提交于 2019-12-03 00:41:02
开发工具 1.Eclipse IDE:采用Maven项目管理,模块化。 2.代码生成:通过界面方式简单配置,自动生成相应代码,目前包括三种生成方式(增删改查):单表、一对多、树结构。生成后的代码如果不需要注意美观程度,生成后即可用。 技术选型(只列了一部分技术) 1、后端 服务框架:Dubbo、zookeeper、Rest服务 缓存:Redis、ehcache 消息中间件:ActiveMQ 负载均衡:Nginx 分布式文件:FastDFS 框架简介--主要定位于互联网企业架构,已内置企业信息化系统的基础功能和高效的代码生成工具,包括:系统权限组件、数据权限组件、数据字典组件、核心工具 组件、视图操作组件、工作流组件组件、代码生成等。采用分层设计、双重验证、提交数据安全编码、密码加密、访问验证、数据权限验证。平台简介 是一个分布式的框架,提供项目模块化、服务化、热插拔的思想,高度封装安全性的Java EE快速开发平台。 本身集成Dubbo服务管控、Zookeeper注册中心、Redis分布式缓存技术、FastDFS分布式文件系统、ActiveMQ异步消息中间件、Nginx负载均衡等分布式技术 使用Maven做项目管理,项目模块化,提高项目的易开发性、扩展性 以Spring Framework为核心容器,Spring MVC为模型视图控制器,MyBatis为数据访问层, Apache

分布式大型互联网企业架构

匿名 (未验证) 提交于 2019-12-03 00:41:02
开发工具 1.Eclipse IDE:采用Maven项目管理,模块化。 2.代码生成:通过界面方式简单配置,自动生成相应代码,目前包括三种生成方式(增删改查):单表、一对多、树结构。生成后的代码如果不需要注意美观程度,生成后即可用。 技术选型(只列了一部分技术) 1、后端 服务框架:Dubbo、zookeeper、Rest服务 缓存:Redis、ehcache 消息中间件:ActiveMQ 负载均衡:Nginx 分布式文件:FastDFS 框架简介--主要定位于互联网企业架构,已内置企业信息化系统的基础功能和高效的代码生成工具,包括:系统权限组件、数据权限组件、数据字典组件、核心工具 组件、视图操作组件、工作流组件组件、代码生成等。采用分层设计、双重验证、提交数据安全编码、密码加密、访问验证、数据权限验证。平台简介 是一个分布式的框架,提供项目模块化、服务化、热插拔的思想,高度封装安全性的Java EE快速开发平台。 本身集成Dubbo服务管控、Zookeeper注册中心、Redis分布式缓存技术、FastDFS分布式文件系统、ActiveMQ异步消息中间件、Nginx负载均衡等分布式技术 使用Maven做项目管理,项目模块化,提高项目的易开发性、扩展性 以Spring Framework为核心容器,Spring MVC为模型视图控制器,MyBatis为数据访问层, Apache

深入理解分布式系统中的缓存架构(上)

匿名 (未验证) 提交于 2019-12-03 00:41:02
本文主要介绍大型分布式系统中缓存的相关理论,常见的缓存组件以及应用场景。 1 缓存概述! 2 缓存的分类 缓存主要分为以下四类! 2.1 CDN缓存 基本介绍 CDN(Content Delivery Network 内容分发网络)的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求 应用场景 主要缓存静态资源,例如图片,视频 应用图 优点 2.2 反向代理缓存 基本介绍 反向代理位于应用服务器机房,处理所有对WEB服务器的请求。 如果用户请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户。如果没有缓冲则先向WEB服务器发出请求,取回数据,本地缓存后再发送给用户。通过降低向WEB服务器的请求数,从而降低了WEB服务器的负载。 应用场景 一般只缓存体积较小静态文件资源,如css、js、图片 应用图 开源实现 2.3 本地应用缓存 基本介绍 指的是在应用中的缓存组件,其最大的优点是应用和cache是在同一个进程内部,请求缓存非常快速,没有过多的网络开销等,在单应用不需要集群支持或者集群情况下各节点无需互相通知的场景下使用本地缓存较合适; 同时,它的缺点也是应为缓存跟应用程序耦合,多个应用程序无法直接的共享缓存

区块链初步认识

匿名 (未验证) 提交于 2019-12-03 00:36:02
的区块链技术正在全球金融领域引发颠覆性变革,并且这一革命也将像互联网革命一样深刻影响其他所有行业.区块链的本质上是所有交易参与则已经执行并共享的交易或数字事件的分布式记录或分布式公共分类账数据库.公共分类账中的每个交易都是通过系统中大多数参与者的共识来验证的,并且,交易信息一旦完成,信息就永远存在,也就是说,区块链包含每一交易的确凿丶可验证记录. 区块链的技术原理 文章来源: 区块链初步认识