分布式架构

大型分布式网站架构设计与实践5

不打扰是莪最后的温柔 提交于 2020-03-28 17:42:30
第5章 数据分析 5.1 日志收集 5.1.1 inotify机制 通过inotify机制,能够对文件系统的变化进行监控,如对文件进行删除,修改等操作,可以及时通知应用程序进行相关事件的处理。 5.1.2 ActiveMQ-CPP C++接口的消息订阅系统 5.1.3 架构和存储 数据需要经过inotify客户端,经由ActiveMQ进行转发,通过storm进行实时处理,再存储到Mysql、HDFS、Hbase或者Memcache这些存储系统当中,最后再进行深度分析或者实时的展现 5.1.4 Chukwa 5.2 离线数据分析 5.2.1 Hadoop项目简介 Hadoop:HDFS,MapReduce,Zookeeper、Hbase、Hive、Pig、Mahout 5.2.2 Hadoop环境搭建 略 5.2.3 MapReduce编写 5.2.4 Hive的使用 略 5.3 流式数据分析 5.3.1 Storm的介绍 1、Storm是一个开源的分布式实时计算系统,可以简单,可靠地对大量的流式数据进行分析。 2、通过zeroMQ作为底层的消息队列,可以保证消息能得到很快的处理 5.3.2 安装部署storm 略 5.3.3 storm的使用 5.4 数据同步 在线的OLTP 或 日志系统-----OLAP系统----->多维度复杂的数据分析和汇总操作 5.4.1 离线数据同步 1

分布式专题——详解Google levelDB底层原理

亡梦爱人 提交于 2020-03-28 10:50:15
本文始发于个人公众号: TechFlow ,原创不易,求个关注 今天是 分布式专题的第10篇 文章,我们继续来聊聊LSMT这个数据结构。 LSMT是一个在分布式系统当中应用非常广泛,并且原理直观简单的数据结构。在上一篇文章当中我们进行了详细的讨论,有所遗忘或者是新关注的同学可以点击下方的链接回顾一下上一讲的内容。 分布式——吞吐量巨强、Hbase的承载者 LSMT leveldb简介 上一篇的内容我们介绍的算是最基础版本的LSMT,在这一篇当中,我们来具体看下levelDB这个经典的KV数据库引擎当中LSMT的使用以及优化。 leveldb,既然是叫做db,显然和数据库有关。和一般的关系型数据库不同,它内部的数据全部以KV也就是key-value形式存储,并且不支持结构化的SQL进行数据查询,只支持api调用。也就是说它就是一个典型的我们常说的noSQL数据引擎库。它最早由 google 开发并且开源, Facebook 在此基础上进行优化,推出了更普及的RocksDB,后来包括TiDB等多种分布式noSQL数据库的底层都是基于leveldb。 如果上面这些名词你都没听说过,也没有关系,对于这些库而言,上手去用容易,但是了解原理难。搞懂了原理再实际上手去用,除了更加简单之外,也会有更多的体会。 leveldb架构 这是一张leveldb的架构图

保证分布式系统数据一致性的6种方案

冷暖自知 提交于 2020-03-27 04:03:22
https://www.cnblogs.com/soundcode/p/5590710.html 编者按:本文由「高可用架构后花园」群讨论整理而成。 有人的地方,就有江湖 有江湖的地方,就有纷争 问题的起源 在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致性? 具体业务场景如下,比如一个业务操作,如果同时调用服务 A、B、C,需要满足要么同时成功;要么同时失败。A、B、C 可能是多个不同部门开发、部署在不同服务器上的远程服务。 在分布式系统来说,如果不想牺牲一致性,CAP 理论告诉我们只能放弃可用性,这显然不能接受。为了便于讨论问题,先简单介绍下数据一致性的基础理论。 强一致 当更新操作完成之后,任何多个后续进程或者线程的访问都会返回最新的更新过的值。这种是对用户最友好的,就是用户上一次写什么,下一次就保证能读到什么。根据 CAP 理论,这种实现需要牺牲可用性。 弱一致性 系统并不保证续进程或者线程的访问都会返回最新的更新过的值。系统在数据写入成功之后,不承诺立即可以读到最新写入的值,也不会具体的承诺多久之后可以读到。 最终一致性 弱一致性的特定形式。系统保证在没有后续更新的前提下,系统 最终 返回上一次更新操作的值。在没有故障发生的前提下,不一致窗口的时间主要受通信延迟,系统负载和复制副本的个数影响。DNS 是一个典型的最终一致性系统。 在工程实践上

全网最全微服务架构—Spring Cloud详解,没有比这更详细的了!

懵懂的女人 提交于 2020-03-26 22:51:24
软件是有生命的,你做出来的架构决定了这个软件它这一生是坎坷还是幸福。 本文不是讲解如何使用Spring Cloud的教程,而是探讨Spring Cloud是什么,以及它诞生的背景和意义。 一、背景 2008年以后,国内互联网行业飞速发展,我们对软件系统的需求已经不再是过去”能用就行”这种很low的档次了,像 抢红包、双十一这样的活动 不断逼迫我们去突破软件系统的性能上限,传统的IT企业”能用就行”的开发思想已经不能满足互联网 高并发、大流量的性能要求 。系统架构 走向分布式 已经是服务器开发领域解决该问题唯一的出路,然而分布式系统由于天生的复杂度,并不像开发单体应用一样把框架一堆就能搞定,因此各大互联网公司都在投入技术力量研发自己的基础设施。这里面比较有名的如 阿里的开源项目dubbo, Netflix开发的一系列服务框架 。在这种“百花齐放”、重复造轮子的状况下,必然要出现一种统一的标准来简化分布式系统的开发, Spring Cloud 应运而生。 二、Spring Cloud是什么 Spring Cloud是一系列框架的有序集合 。它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如 服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控 等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring并没有重复制造轮子

JAVA架构师必备词汇和知识点

江枫思渺然 提交于 2020-03-26 08:00:50
01 高可用 负载均衡(负载均衡算法) 反向代理 服务隔离 服务限流 服务降级(自动优雅降级) 失效转移 超时重试(代理超时、容器超时、前端超时、中间件超时、数据库超时、NoSql超时) 回滚机制(上线回滚、数据库版本回滚、事务回滚) 02 高并发 应用缓存 HTTP 缓存 多级缓存 分布式缓存 连接池 异步并发 03 分布式事务 二阶段提交(强一致) 三阶段提交(强一致) 消息中间件(最终一致性),推荐阿里的 RocketMQ。 04 队列 任务队列 消息队列 请求队列 05扩容 单体垂直扩容 单体水平扩容 应用拆分 数据库拆分 数据库分库分表 数据异构 分布式任务 06 网络安全 SQL 注入 XSS 攻击 CSRF 攻击 拒绝服务(DoS,Denial of Service)攻击 架构师必备工具 01 操作系统 Linux(必备)、某软的 02 负载均衡 DNS、F5、LVS、Nginx、OpenResty、HAproxy、负载均衡SLB 03 分布式框架 Dubbo、Motan、Spring-Could 04 数据库中间件 DRDS 、Mycat、360 Atlas、Cobar (不维护了) 05 消息队列 RabbitMQ、ZeroMQ、Redis、ActiveMQ、Kafka 06 注册中心 Zookeeper、Redis 07 缓存 Redis、Oscache

一站式微服务架构解决方案:Spring Cloud 微服务实战.pdf

流过昼夜 提交于 2020-03-25 17:31:55
引言 “微服务”架构在这几年被广泛传播,变得非常火热,以至于关于微服务架构相关的开源框架和工具都变得越来越活跃,比如: Netlix osS. Dubbo. Apache Thrift等。Spring Cloud也因为Spring社区在企业应用领域的广泛知名度和强大影响力,受到了广大架构师与开发者的高度关注。 主页 书本目录 微服务构建:Spring Boot 服务治理:Spring Cloud Eureka 客户端负载均衡:Spring Cloud Ribbon 服务容错保护:Spring Cloud Hystrix 声明式服务调用:Spring Cloud Feign API网关服务:Spring Cloud Zuul 分布式配置中心:Spring Cloud Config 消息总线:Spring Cloud Bus 消息驱动的微服务:Spring Cloud Stream 分布式服务跟踪:Spring Cloud Sleuth 如何获取 点点这个链接免费获取:本人免费整理了Java高级资料,涵盖了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo高并发分布式等教程,一共30G,需要自己领取。 传送门: https://mp.weixin.qq.com/s/osB-BOl6W-ZLTSttTkqMPQ 来源: https:

分布式架构之Zookeeper安装测试说明

大兔子大兔子 提交于 2020-03-25 14:58:30
3 月,跳不动了?>>> 1. Zookeeper安装 1.1测试JDK 1.2上传压缩包 zookeeper官网 : https://zookeeper.apache.org/releases.html 1.3解压压缩包 tar -xvf zookeeper-3.4.8.tar.gz 1.4 删除压缩包,将解压文件改名为zookeeper(自定义) 1.5 创建data和log文件 1.6 修改zoo.cfg配置文件 1.6.1 进入data文件, pwd ,复制其路径 1.6.2更改zoo_sample.cfg文件名为zoo.cfg 1.6.3 修改dataDir路径,也就是刚才的data路径(dataLogDir类似) 1.7 检测Zooleeper是否安装成功 1.7.1 进入bin文件目录下,通过 sh zkServer.sh start 开启 1.7.2 开启后 ,通过 sh zkServer.sh status 检测状态 , 状态显示为standalone说明开启成功,你的Zookeeper安装成功!!! 来源: oschina 链接: https://my.oschina.net/u/4115134/blog/3211175

Codis作者黄东旭细说分布式Redis架构设计和踩过的那些坑们

点点圈 提交于 2020-03-25 09:57:37
3 月,跳不动了?>>> 本次分享的内容主要包括五个大部分: Redis、RedisCluster和Codis; 我们更爱一致性; Codis在生产环境中的使用的经验和坑们; 对于分布式数据库和分布式架构的一些看法; Q & A环节。   Codis是一个分布式Redis解决方案,与官方的纯P2P的模式不同,Codis采用的是Proxy-based的方案。今天我们介绍一下Codis及下一个大版本RebornDB的设计,同时会介绍一些Codis在实际应用场景中的tips。最后抛砖引玉,会介绍一下我对分布式存储的一些观点和看法,望各位首席们雅正。 一、 Redis,RedisCluster和Codis    Redis :想必大家的架构中,Redis已经是一个必不可少的部件,丰富的数据结构和超高的性能以及简单的协议,让Redis能够很好的作为数据库的上游缓存层。但是我们会比较担心Redis的单点问题,单点Redis容量大小总受限于内存,在业务对性能要求比较高的情况下,理想情况下我们希望所有的数据都能在内存里面,不要打到数据库上,所以很自然的就会寻求其他方案。 比如,SSD将内存换成了磁盘,以换取更大的容量。更自然的想法是将Redis变成一个可以水平扩展的分布式缓存服务,在Codis之前,业界只有Twemproxy,但是Twemproxy本身是一个静态的分布式Redis方案,进行扩容

Codis 分布式缓存部署

丶灬走出姿态 提交于 2020-03-25 09:17:40
3 月,跳不动了?>>> 环境介绍: 1:机器三台 ,IP/hostname 如下, hostname的设置很重要zookeeper / codis的通信都会用到,所以要配置好三台机器的hosts文件. 10.221.8. 220 机器的hostname为 Redis1 10.221.8 .221 机器的hostname为 Redis2 10.221.8 .222 机器的hostname为 Redis3 三台机器的/etc/hosts 文件添加如下解析 10.221.8. 220 Redis1 10.221.8.1. 221 Redis2 10.221.8.1. 222 Redis3 2: 三台机器的系统都是centos 6.5 已经安装基本服务. yum -y install gcc gcc-c++ make glibc glibc-devel glib2 glib2-devel patch autoconf automake(安装基本编译工具) yum -y install ntp wget unzip vixie-cron ntsysv openssh-clients sysstat irqbalance subversion(安装常用系统软件,按需) yum update -y (更新软件包) 3:使用三台机器做codis集群的服务部署如图: 服务的部署 第一步:

金融信创丨神州信息构建分布式“应用+数据库”体系,树金融信创标杆

℡╲_俬逩灬. 提交于 2020-03-24 16:44:51
3 月,跳不动了?>>> 2019年中国人民银行发布《金融科技(FinTech)发展规划(2019-2021年)》,提出要持续加强分布式数据库领域底层和前沿技术研究,有计划、分步骤地稳步推动分布式数据库产品先行先试,形成可借鉴、能推广的典型案例和解决方案,为分布式数据库在金融领域的全面应用探明路径。 ​ 近期,神州信息再次打造分布式“应用+数据库”典型案例,助推金融信创。其为北京某城商行建设的分布式网贷平台与TiDB分布式数据库完成适配并平稳运行,实现授信客户数近千万,日均渠道数据处理超百万笔,账务交易日处理量数十万笔,日批处理量达百万笔,满足其未来五到十年线上网贷业务发展需求。双方基于分布式技术,携手构建了“分布式应用+分布式数据库”的全行级分布式应用体系,推进该行IT系统由“集中”向“分布”转型,为新形势下业务创新夯实基础,保证金融服务行稳致远。至此,继百信银行分布式核心、天津银行分布式核心、吉林亿联分布式核心等项目后,神州信息金融分布式应用系统基本完成与平凯星辰TiDB、华为GaussDB、阿里OceanBase、百度数据库等国内主流分布式数据库的适配,为国内各商业银行结合自身实际选型、落地分布式数据库提供了有力支撑。 ​神州信息金融科技分布式架构专家薛春雨介绍:“神州信息早在2015年启动分布式应用研发,制定了‘先应用、后架构、再存储’的分布式应用路径,助力银行由‘集中式