分布式技术

15个nosql数据库

喜欢而已 提交于 2020-01-20 00:39:16
1、MongoDB 介绍 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。主要解决的是海量数据的访问效率问题,为WEB应用提供可扩展的高性能数据存储解决方案。当数据量达到50GB以上的时候,MongoDB的数据库访问速度是MySQL的10倍以上。MongoDB的并发读写效率不是特别出色,根据官方提供的性能测试表明,大约每秒可以处理0.5万~1.5万次读写请求。MongoDB还自带了一个出色的分布式文件系统GridFS,可以支持海量的数据存储。 MongoDB也有一个Ruby的项目MongoMapper,是模仿Merb的DataMapper编写的MongoDB接口,使用起来非常简单,几乎和DataMapper一模一样,功能非常强大。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 所谓“面向集合”(Collenction-Orented),意思是数据被分组存储在数据集中,被称为一个集合(Collenction)。每个 集合在数据库中都有一个唯一的标识名

HBase 0.98 分布式集群安装详解

亡梦爱人 提交于 2020-01-19 20:36:22
概述 HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。 前言 这篇博客应该很早就发表了,只是当时环境搭建好了之后没有及时做笔记,后来又不想重新搭建,所以才拖到今天。还有就是这篇博客安装的是 Hbase-0.98 的版本,与之前说要安装 0.96 的说明不吻合,这里统一说明,之前的博客就不更改了。还有一点就是,本文的安装过程很顺,没有出现什么启动不了,或是运行异常的行为。如果你在安装的过程出现了一些不好的事情,那么你可能会在本文中找到一些蛛丝马迹,也可能一无所获。只是我希望你可以理解到,本文并非胡编乱邹。 版权说明 著作权归作者所有。 商业转载请联系作者获得授权,非商业转载请注明出处。 本文作者: Q-WHai 发表日期: 2016年6月8日 本文链接: http://blog.csdn.net/lemon_tree12138

基于全业务统一数据中心的配电分析应用研究

橙三吉。 提交于 2020-01-19 01:05:04
转载自: http://dq.shejis.com/dqlw/201610/article_142755.html 国网电力科学研究院 张子仲   1 目标与架构   1.1 需求   随着信息系统应用的不断深入,加快构建全球能源互联网和全面建成“一强三优”现代公司的目标以及大数据、云计算等新技术的日趋成熟,同时在企业级数据资源管理应用方面也暴露出了不足。数据是信息化的核心,建设全业务统一数据中心是源端全业务融合、后端大数据分析的必然选择,对建设信息化企业具有重要意义。 图1   1.2 目标与原则   到“十三五”末,基本建成“数据干净透明、模型规范统一、分析灵活智能”的全业务统一数据中心,实现面向全业务范围、全数据类型、全时间维度数据的统一存储、管理与服务。 图2   全业务统一数据中心主要包括数据处理中心、数据分析中心和数据管理中心三部分 图3   ①数据处理中心   数据处理中心为公司各业务应用提供逻辑统一的数据访问支撑,是原有业务系统各个分散数据库的归并、发展与提升,主要包括业务处理数据库与统一数据访问服务两个部分。 图4   (1)实现跨专业数据统一访问,促进跨部门的信息共享与业务数据融合;   (2)改变业务集成方式,消除数据复制,促进跨部门业务协同;   (3)隔离应用与数据库的直接连接,为统一数据模型的应用与数据管控提供技术支撑。   ②数据分析中心  

spring cloud 基础 - 【转载】

吃可爱长大的小学妹 提交于 2020-01-17 12:50:07
【转载】URL: http://www.cnblogs.com/ityouknow/p/6791221.html 研究了一段时间spring boot了准备向spirng cloud进发,公司架构和项目也全面拥抱了Spring Cloud。在使用了一段时间后发现Spring Cloud从技术架构上降低了对大型系统构建的要求,使我们以非常低的成本(技术或者硬件)搭建一套 高效、分布式、容错 的平台,但Spring Cloud也不是没有缺点, 小型独立的项目不适合使用,另外对分布式事物的支持暂时也没有。 Spring Cloud是什么鬼? Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。 微服务是可以独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元,springcloud就是这些微服务的大管家,采用了微服务这种架构之后,项目的数量会非常多,springcloud做为大管家需要管理好这些微服务,自然需要很多小弟来帮忙。 主要的小弟有: Spring Cloud Config 、 Spring Cloud Netflix ( Eureka 、 Hystrix 、 Zuul 、

怎么理解分布式、高并发、多线程?

我怕爱的太早我们不能终老 提交于 2020-01-17 08:03:53
是不是很多人都认为分布式=高并发=多线程? 当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼? 一开始,不少人都会将三者混淆,误以为所谓的分布式高并发的系统就是能同时供海量用户访问,而采用多线程手段不就是可以提供系统的并发能力吗?实际上, 他们三个总是相伴而生,但侧重点又有不同。 什么是分布式? 分布式更多的一个概念, 是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段 。该领域需要解决的问题极多,在不同的技术层面上,又包括:分布式文件系统、分布式缓存、分布式数据库、分布式计算等,一些名词如Hadoop、zookeeper、MQ等都跟分布式有关。从理念上讲,分布式的实现有两种形式: 水平扩展: 当一台机器扛不住流量时,就通过添加机器的方式,将流量平分到所有服务器上,所有机器都可以提供相当的服务; 垂直拆分: 前端有多种查询需求时,一台机器扛不住,可以将不同的需求分发到不同的机器上,比如A机器处理余票查询的请求,B机器处理支付的请求。 什么是高并发? 相对于分布式来讲,高并发在解决的问题上会集中一些,其反应的是同时有多少量 :比如在线直播服务,同时有上万人观看。 高并发可以通过分布式技术去解决,将并发流量分到不同的物理服务器上。但除此之外,还可以有很多其他优化手段:比如使用缓存系统,将所有的,静态内容放到CDN等

分布式系统

放肆的年华 提交于 2020-01-17 05:40:26
什么是分布式架构 分布式系统(distributed system)是建立在网络之上的软件系统。 分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。 内聚性是指每一个数据库分布节点高度自治,有本地的数据库管理系统。 透明性是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。 在分布式数据库系统中,用户感觉不到数据是分布的,即用户不须知道关系是否分割、有无副本、数据存于哪个站点以及事务在哪个站点上执行等。 简单来讲:在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个系统似的。 1-3-01-jpg 分布式系统作为一个整体对用户提供服务,而整个系统的内部的协作用户来说是透明的,用户就像是在使用一个MySQL一样。 如分布式MySQL中间件-Mycat,来处理大并发大数据量的构架。 分布式架构的应用 有 分布式文件系统,分布式缓存系统,分布式数据库,分布式WebService,分布式计算 我们来举例说明: 分布式文件系统: 出名的有 Hadoop 的HDFS ,还有 google的 GFS , 淘宝的 TFS 等 分布式缓存系统:memcache , hbase ,

分布式之消息队列

旧巷老猫 提交于 2020-01-16 10:58:21
1、为什么要使用消息队列? 主要有三个原因: 解耦、异步、削峰 (1)解耦 传统模式: 传统模式的 缺点 : 系统间耦合性太强,如上图所示,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦! 中间件模式: 中间件模式的的 优点 : 将消息写入消息队列,需要消息的系统自己从消息队列中订阅,从而系统A不需要做任何修改。 (2)异步 传统模式: 传统模式的 缺点 : 一些非必要的业务逻辑以同步的方式运行,太耗费时间。 中间件模式: 中间件模式的的 优点 : 将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度 (3)削峰 传统模式 传统模式的 缺点 : 并发量大的时候,所有的请求直接怼到数据库,造成数据库连接异常 中间件模式: 中间件模式的的 优点 : 系统A慢慢的按照数据库能处理的并发量,从消息队列中慢慢拉取消息。在生产中,这个短暂的高峰期积压是允许的。 2、使用了消息队列会有什么缺点? 分析 :一个使用了MQ的项目,如果连这个问题都没有考虑过,就把MQ引进去了,那就给自己的项目带来了风险。我们引入一个技术,要对这个技术的弊端有充分的认识,才能做好预防。 要记住,不要给公司挖坑! 回答 :回答也很容易,从以下两个个角度来答 系统可用性降低 :你想啊,本来其他系统只要运行好好的,那你的系统就是正常的。现在你非要加个消息队列进去

对话阿里云智能数据库事业部总负责人李飞飞:云数据库战争已经进入下半场

久未见 提交于 2020-01-16 05:35:59
【编者按】DTCC 2019已经结束,云栖社区沉淀了很多阿里巴巴所分享的优质演讲 整理稿件 。这篇转载自IT168&ITPUB执行总编老鱼的公众号,分享给大家。 李飞飞,现任阿里巴巴集团副总裁、高级研究员,阿里云智能数据库事业部总负责人。加入阿里巴巴之前为美国犹他大学计算机系终身教授。研究成果多次获得了IEEE ICDE、ACM SIGMOD最佳论文奖等重要学术奖项。 2018年,李飞飞加入阿里巴巴达摩院,带领团队投入到具有自主知识产权的研究当中。目前,带领的阿里云智能数据库事业部所研发的新一代分布式数据库系统,支撑了阿里巴巴集团的复杂业务、海量数据和双11交易洪峰的挑战,已经被应用于多个城市的智能城市交通网络管理,并服务了金融、零售、物流、制造等行业企业。 2018年,阿里云数据库成功进入Gartner数据库魔力象限,这是该榜单首次出现中国公司,近日,阿里云数据库再次入选Forrester数据库评估报告,成为国内首个获得两大顶级机构认可的科技公司。 2019年5月10日,DTCC 2019(第十届中国数据库技术大会)在北京举办,李飞飞来到现场发表了精彩的主题演讲,并在大会期间接受了IT168&ITPUB执行总编老鱼的深度专访,众多独特观点精彩纷呈。 透露两条信息: 1、PolarDB从去年10月开始商业化到目前,已经成为阿里云上增长最快的数据库产品; 2

电商平台架构

感情迁移 提交于 2020-01-15 03:39:56
设计理念 1 时间换空间 1.1 多级缓存,静态化 客户端页面缓存(http header中包含Expires/Cache of Control,last modified(304,server不返回body,客户端可以继续用cache,减少流量),ETag), 反向代理缓存,应用端的缓存(memcache),内存数据库,Buffer、cache机制(数据库,中间件等)。 1.2 索引 哈希、B树、倒排、bitmap 哈希索引:适合综合数组的寻址和链表的插入特性,可以实现数据的快速存取。 B树索引:适合于查询为主导的场景,避免多次的IO,提高查询的效率。 倒排索引:实现单词到文档映射关系的最佳实现方式和最有效的索引结构,广泛用在搜索领域。 Bitmap:是一种非常简洁快速的数据结构,他能同时使存储空间和速度最优化(而不必空间换时间),适合于海量数据的的计算场景。 2. 并行与分布式计算 2.1 任务切分、分而治之(MR) 在大规模的数据中,数据存在一定的局部性的特征,利用局部性的原理将海量数据计算的问题分而治之。 MR模型是无共享的架构,数据集分布至各个节点。处理时,每个节点就近读取本地存储的数据处理(map),将处理后的数据进行合并(combine)、排序(shuffle and sort)后再分发(至reduce节点),避免了大量数据的传输,提高了处理效率。 2.2 多进程

2020年常见面试问题

大兔子大兔子 提交于 2020-01-14 19:50:09
1. 基础知识:HashMap,ConcurrentHashMap,锁(Synchronized,ReentrantLock,自旋锁),AQS,线程池,volatile,异常处理,Error和Exception,CountDownLatch和CyclicBarrier 2. 并发知识:高并发怎么办,rpc,舱壁模式,NIO,分布式ID生成,大QPS拦截(布隆过滤器,本地布隆过滤器),随机踢出 3. 缓存:击穿、更新策略,数据结构,常用场景,redission,tryLock 4. 项目介绍、遇到的问题、有什么优化的地方 5. 中间件:dubbo(序列化,源码),MQ(作用,负载),zookeeper(zabx) 6. 如果你来设计一个系统 7. 算法 8. JVM模型、垃圾收集器优化选择 9. 对公司的了解 10. 你有什么想问的 11. 自我介绍 12. 常用linux命令:AWK 13. 数据库:索引,慢查询,主从复制,log日志,分库分表,mysql分层,jdbcShare,查询执行顺序,索引和其他where条件在哪过滤 14. 监控:异常,每层调用时间(听云),服务器负载,注册中心,慢查询 15. 常见异常问题处理:OOM,CPU100% 16. 设计模式、六大原则 17. 一个请求 18. 框架:Spring(启动过程,事务传播特性,事务,AOP,IOC,动态代理