
Distributed Processing
文章平均质量分 83
分布式计算是计算机科学中一个研究方向,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给多个计算机进行处理,最后把这些计算结果综合起来得到最终的结果。
No Silver Bullet
业精于勤荒于嬉,行成于思毁于随。
学业由于勤奋而专精,由于玩乐而荒废;德行由于独立思考而有所成就,由于因循随俗而败坏。
——出自(唐)韩愈《进学解》
展开
-
分布式进阶(二十三):Nginx 服务器应用配置
一、前言Nginx作为一个异步框架的 Web服务器,也可以用作反向代理,负载平衡器 和 HTTP缓存,下面本篇文章就来介绍一下Nginx反向代理、SSL及域名配置。基于公司中标某公司项目,作为项目产品组一员,前期负责服务器环境搭建部分。技术架构如下:其中,主要实现点如下:基于外网APP访问内网Web服务需求,应用nginx反向代理解决。随着访问并发量的增加,反向代理服务器会逐渐成为整个系统架构中的瓶颈点,容易出现单点故障,故考虑做方向代理服务器集群。同时考虑到网络安全,对报文进行SSL传输原创 2022-02-13 09:17:39 · 1457 阅读 · 0 评论 -
分布式进阶(二十二)Zipkin基础知识介绍
为分布式跟踪系统,是Twitter开源而来。它可以帮助收集时间数据,解决在microservice架构下的延迟问题;它管理这些数据的收集和查找;的设计是基于谷歌的Google Dapper论文。每个应用程序向Zipkin报告定时数据,Zipkin UI呈现了一个依赖图表来展示多少跟踪请求经过了每个应用程序;如果想解决延迟问题,可以过滤或者排序所有的跟踪请求,并且可以查看每个跟踪请求占总跟踪时间的百分比。随着业务越来越复杂,系统也随之进行各种拆分,特别是随着微服务架构和容器技术的兴起,看似简单的一个应用,后台原创 2019-12-25 08:53:40 · 3928 阅读 · 0 评论 -
分布式进阶(二十一)Flume的基础介绍
一、背景Hadoop业务的整体开发流程: 从Hadoop的业务开发流程图中可以看出,在大数据的业务处理过程中,对于数据的采集是十分重要的一步,也是不可避免的一步.许多公司的平台每天会产生大量的日志(一般为流式数据,如,搜索引擎的pv,查询等),处理这些日志需要特定的日志系统,一般而言,这些系统需要具有以下特征:(1) 构建应用系统和分析系统的桥梁,并将它们之间的关联解耦;(2) 支持...原创 2019-12-24 20:42:44 · 1840 阅读 · 0 评论 -
分布式进阶(二十) Kafka简介
一、简介1.1 概述Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。主要应用场景是:日志收集系统和消息系统。Kafka主要设计目标如下:以时间复杂度为...原创 2019-12-24 20:10:53 · 1659 阅读 · 1 评论 -
分布式进阶(九)Ubuntu下使用nsenter进入Docker容器
使用nsenter进入Docker容器Docker容器运行后,如何进入容器进行操作呢?起初我是用SSH。如果只启动一个容器,用SSH还能应付,只需要将容器的22端口映射到本机的一个端口即可。当我启动了五个容器后,每个容器默认是没有配置SSHServer的,安装配置SSHD,映射容器SSH端口,实在是麻烦。我发现很多Docker镜像都是没有安装SSHD服务的,难道有其他方法进入Doc原创 2015-05-25 09:18:39 · 52644 阅读 · 0 评论 -
分布式进阶(一)Windows 7下硬盘安装Ubuntu 14.04图文教程
Windows7下硬盘安装Ubuntu14.04图文教程本人下载的是ubuntu-14.04.2-desktop-amd64.iso,经本人亲自测试的,折腾了一天的时间。1)首先还是分区,在计算机上右键--管理--磁盘管理(也可以先格式化,后面再分区)装Ubuntu分配的硬盘大小最好是(20G以上)不要太小。这里请注意,Ubuntu和Windows文件系统完全不同,所以我们划原创 2015-05-11 20:15:37 · 54171 阅读 · 0 评论 -
分布式进阶(十六)Zookeeper入门基础
Zookeeper入门基础前言 在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据。如果在创建znode时Flag设置为EPHEMERAL,那么当创建这个znode的节点和Zookeeper失去连接后,这个znode将不再存在在Zookeeper里,Zookeeper使用Watcher察觉事件信息。当客户端接收到事件信息,比如原创 2016-03-04 17:36:26 · 48616 阅读 · 0 评论 -
分布式进阶(十七)分布式设计介绍
分布式设计介绍前言 分布式设计与开发在IDF05(IntelDeveloperForum2005)上,Intel首席执行官CraigBarrett就取消4GHz芯片计划一事,半开玩笑当众单膝下跪致歉,给广大软件开发者一个明显的信号,单纯依靠垂直提升硬件性能来提高系统性能的时代已结束,分布式开发的时代实际上早已悄悄地成为了时代的主流,吵得很热的云计算实际上只是包...原创 2016-03-04 18:00:19 · 50136 阅读 · 3 评论 -
分布式进阶(十八) 分布式缓存之Memcached
分布式缓存 分布式缓存出于如下考虑:首先是缓存本身的水平线性扩展问题,其次是缓存大并发下本身的性能问题,再次避免缓存的单点故障问题(多副本和副本一致性)。 分布式缓存的核心技术包括首先是内存本身的管理问题,包括了内存的分配,管理和回收机制。其次是分布式管理和分布式算法,然后是缓存键值管理和路由。 Memcached是一个高性能的分布式内存对象缓存系统,用原创 2016-03-14 09:16:16 · 47891 阅读 · 0 评论 -
分布式进阶(十九) 基于集群的动态反馈负载均衡策略
基于集群的动态反馈负载均衡策略基于动态反馈机制的集群负载均衡算法研究 目前应用最为广泛的集群计算技术主要分为三大类:高可用性集群技术、高性能计算集群技术和负载均衡集群技术。 德国的CarlAdamPetri于1962年在他的博士论文《自动机通信》中提出了Petri网的概念,它是一种适合于描述异步、并发、分布式系统的图形数学工具。动态WRR调度算法...原创 2016-03-14 16:16:36 · 52780 阅读 · 6 评论 -
服务端技术进阶(五)分布式系统解决之道:目录、消息队列、事务系统及其他
服务端技术进阶(五)分布式系统解决之道:目录、消息队列、事务系统及其他目录服务(ZooKeeper) 分布式系统是一个由很多进程组成的整体,这个整体中每个成员部分,都会具备一些状态,比如自己的负责模块,自己的负载情况,对某些数据的掌握等等。而这些和其他进程相关的数据,在故障恢复、扩容缩容的时候变得非常重要。 简单的分布式系统,可以通过静态的配置文件来记录这些数据:进程之间的连接对应关系,它们原创 2016-12-05 11:35:56 · 44439 阅读 · 0 评论 -
服务端技术进阶(四)一文读懂分布式系统本质:高吞吐、高可用、可扩展
服务端技术进阶( 四)一篇文读懂分布式系统本质:高吞吐、高可用、可扩展承载量是分布式系统存在的原因 当一个互联网业务获得大众欢迎的时候,最显著碰到的技术问题,就是服务器非常繁忙。当每天有1000万个用户访问你的网站时,无论你使用什么样的服务器硬件,都不可能只用一台机器就承载的了。因此,在互联网程序员解决服务器端问题的时候,必须要考虑如何使用多台服务器,为同一种互联网应用提供服务,这就是所谓“分布式原创 2016-12-05 10:05:33 · 46807 阅读 · 0 评论 -
分布式进阶(八)Linux提示Unable to locate package该如何处理?
Linux提示Unabletolocatepackage该如何处理? 当你在修改Linux软件源的时候,提示Unabletolocatepackage错误,这是由什么原因导致的呢?又该如何解决,下面就给大家介绍下Linux下遇到Unabletolocatepackage错误的情况该如何解决,一起来学习下吧。Linux提示Unabletolocatepackage原创 2015-05-25 09:17:05 · 53987 阅读 · 1 评论 -
分布式进阶(七)Ubuntu下如何进入 Docker 容器
如何进入Docker容器英文原文:HowtoenteraDockercontainer在这篇文章里,我将讨论四种连接Docker容器并与其进行交互的方法。例子中所有的代码都可以在GitHub中找到,你可以亲自对它们进行测试。nsenter从util-linux版本2.23开始,nsenter工具就包含在其中。它用来访问另一个进程的名字空间。nsenter要正常工作需要原创 2015-05-25 09:13:46 · 52390 阅读 · 0 评论 -
分布式进阶(六)之集群控制管理
现行的Linux主流的有两种init方式:一种是广为流传的SystemVinitialization,它来源于Unix并且至今仍被各种Linux所采用;另一种是近几年提出的Upstart方式,基于事件机制,系统的所有服务,任务都是由事件驱动的。据我所知,采用后一种方式的目前有Ubuntu(6.10andlater),Fedora(9.10andlater),Debian(optio原创 2015-05-21 10:02:34 · 52327 阅读 · 0 评论 -
分布式进阶(二)Ubuntu 14.04下安装Dockr图文教程(一)
当前,完全硬件虚拟化技术(KVM、Xen、Hyper-V等)能在一个物理主机上很好地运行多个互相独立的操作系统,但这也带来一些问题:性能不佳,资源浪费,系统反应迟缓等。有时候对用户来说,完全的硬件虚拟化并不是最好的选择。一种替代方案是使用轻量级虚拟化技术——所谓的LinuXContainer容器(LXC),它提供的是系统级虚拟化。与跑虚拟机相比,LXC可以在一个轻量级沙箱原创 2015-05-15 15:57:14 · 53951 阅读 · 0 评论 -
分布式进阶(十四)分布式开发学习感触
经过一段时间的分布式学习,自己在此过程中受益匪浅。几点感触总结如下:1.在做较大或生疏系统的时候,一定先要将系统的架构图设计出来,架构图要力求做到尽可能的详尽(包括其用到的各种技术,数据传输方式等等)。做到这样才能在后期的系统开发中显得游刃有余。软件工程的开发思想其实还是很重要的,自己对这一点也颇有感触。2.通过与技术大牛徐师兄进行不断的交流,发觉自己对新技术的敏感度太低了,以前的自己这样原创 2015-06-03 07:35:34 · 52295 阅读 · 1 评论 -
分布式进阶(五)之JSVC配置
应用场景:在linux系统上进行项目开发,在部署java项目时,常用方法就是写一个shell脚本,但当服务器重启了,经常会忘了启动shell脚本了。所以我们需要把自己的应用变成linux的服务,当服务器启动的时候就自行启动自己的应用。使用JSVC就能够实现上面的功能。Jsvc是用来启动tomcat的,在linux下面使用。在linux上以服务的方式启动java程序步骤:原创 2015-05-20 19:30:31 · 58744 阅读 · 0 评论 -
分布式进阶(十三)Docker Container间实现数据共享
sudodockerrun-it-v/usr/lib:/usr/lib/dbdata--namedbcontainer-192.168.1.184ubuntu:14.04sudodockerrun-it--volumes-fromdbcontainer-192.168.1.184--namemastercontainer-192.168.1.180ubunt原创 2015-06-03 09:37:45 · 52410 阅读 · 0 评论 -
分布式进阶(三)Ubuntu 14.04 之JDK安装
Ubuntu10.04之JDK安装1.从官网(http://www.Oracle.com/technetwork/java/javase/downloads/jdk6u35-downloads-1836443.html)下载安装文件(如:jdk-6u45-linux-x64.bin)。复制该文件到/usr/lib/java下,如果没有java文件夹,则创建它。sudomkdir-原创 2015-05-19 08:44:47 · 52728 阅读 · 0 评论 -
分布式进阶(十五)ZMQ
我们为什么需要ZMQ目前的应用程序很多都会包含跨网络的组件,无论是局域网还是因特网。这些程序的开发者都会用到某种消息通信机制。有些人会使用某种消息队列产品,而大多数人则会自己手工来做这些事,使用TCP或UDP协议。这些协议使用起来并不困难,但是,简单地将消息从A发给B,和在任何情况下都能进行可靠的消息传输,这两种情况显然是不同的。让我们看看在使用纯TCP协议进行消息传输时会遇到的一些典型问...原创 2015-06-06 10:32:43 · 54282 阅读 · 0 评论 -
分布式进阶(十二)Docker固定Container IP
使用pipework工具。前提:每个Container所做的工作现在还很少,可以不用save、commit。为了便于通信,自定义一个网桥(192.168.1.180/24),使之IP与宿主主机IP在同一网段内。bridge模式bridge模式是Docker默认的网络设置,此模式会为每一个容器分配NetworkNamespace、设置IP等,并将一个主机上的Docker原创 2015-05-30 20:27:45 · 54809 阅读 · 0 评论 -
分布式进阶(十一) Docker 常见错误汇总
NO.1以上添加网桥的命令在Ubuntu14.04中是不可行的。正确的命令如下:brctladdbrbr0ifconfigbr0192.168.1.188netmask255.255.255.0NO.2造成以上错误的原因是Dockerdaemon守护进程默认不启动,这也蛮奇葩的,按照提示启动deamon:$sudoHTTP_原创 2015-05-30 20:22:37 · 52638 阅读 · 2 评论 -
分布式进阶(十) linux命令行下载文件以及常用工具:wget、Prozilla、MyGet、Linuxdown、Curl、Axel
linux命令行下载文件以及常用工具:wget、Prozilla、MyGet、Linuxdown、Curl、Axel本文介绍常用的几种命令行式的下载工具:wget、Prozilla、MyGet、Linuxdown、Curl、Axel下面就为大家详细介绍一下这些工具。1.WgetWget是一个十分常用命令行下载工具,多数Linux发行版本都默认原创 2015-05-25 09:49:39 · 52464 阅读 · 1 评论 -
分布式进阶(四)Ubuntu 14.04下安装Tomcat 6
Ubuntu10.04下安装Tomcat61,下载apache-tomcat6,地址链接:http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.28/bin/选择UbuntuLinux适用版本,即apache-tomcat-6.0.28.tar.gz文件,2,复制安装文件到/usr/local/目录下面,在控制台cons原创 2015-05-19 09:19:54 · 52386 阅读 · 0 评论 -
分布式进阶(二)Ubuntu 14.04下安装Dockr图文教程(二)
4.1构建我们自己的映像构建Docker映像有两种方法:•通过dockercommit(提交)命令•通过dockerbuild(构建)命令以及Docker文件(Dockerfile)目前并不推荐docker提交方法,因为借助Docker文件进行构建要灵活得多、强大得多,但为了力求完整起见,我会向你演示提交方法。之后,我将重点介绍推荐的Docker映原创 2015-05-15 16:06:07 · 53561 阅读 · 0 评论