分布式
文章平均质量分 63
xxxcyzyy
这个作者很懒,什么都没留下…
展开
-
1002--并发
=================原文=================== 1 什么是并发问题。 多个进程或线程同时(或着说在同一段时间内)访问同一资源会产生并发问题。 银行两操作员同时操作同一账户就是典型的例子。比如A、B操作员同时读取一余额为1000元的账户, A操作员为该账户增加100元,B操作员同时为该账户减去 50元,A先提交,B后提交。 最后实际账户余额为1000-5转载 2015-09-09 21:05:45 · 280 阅读 · 0 评论 -
10016---ConcurrentHashMap原理分析
原文 一.Java并发基础 当一个对象或变量可以被多个线程共享的时候,就有可能使得程序的逻辑出现问题。 在一个对象中有一个变量i=0,有两个线程A,B都想对i加1,这个时候便有问题显现出来,关键就是对i加1的这个过程不是原子操作。要想对i进行递增,第一步就是获取i的值,当A获取i的值为0,在A将新的值写入A之前,B也获取了A的值0,然后A写入,i变成1,然后B也写入i,i这个时候依然是1.转载 2017-07-14 02:20:42 · 191 阅读 · 0 评论 -
10017---java NIO详解
原文 前言 我们在写java程序的时候,为了进行优化,把全部的精力用在了处理效率上,但是对IO的关注却很少。这也可能是由以前java早期时JVM在解释字节码时速度慢,运行速率大大低于本地编译代码,因此以前往往忽视了IO的优化。 但是现在JVM在运行时优化已前进了一大步,现在的java应用程序更多的是受IO的束缚,也就是将时间花在等待数据传输上。现在有了NIO,就可以减少IO的等待转载 2017-07-14 08:13:55 · 257 阅读 · 0 评论 -
10018---Java并发编程——锁与可重入锁
原文 上一篇文章中讲述了信号量和互斥量,其中互斥量一般用于保证对于资源的互斥访问,和锁的本质一样。本文讲述简单锁的实现和可重入锁的基本原理。 简单锁 在讲述简单锁的实现之前,我们先来看一个锁的应用例子: public class Counter{ private Lock lock = new Lock(); private int count转载 2017-07-14 08:32:28 · 257 阅读 · 0 评论 -
10019---【Java并发之】BlockingQueue
原文 本文主要讲的是并发包中涉及到的集合,关于普通集合,请参考【java 集合概览】 一、什么是BlockingQueue BlockingQueue即阻塞队列,从阻塞这个词可以看出,在某些情况下对阻塞队列的访问可能会造成阻塞。被阻塞的情况主要有如下两种: 1. 当队列满了的时候进行入队列操作 2. 当队列空了的时候进行出队列操作 因此,当一个线程试图对一个已经满了的队列进转载 2017-08-01 23:26:06 · 213 阅读 · 0 评论 -
10020---Java sleep和wait区别
sleep 让线程从 【running】 -> 【阻塞态】 时间结束/interrupt -> 【runnable】 wait 让线程从 【running】 -> 【等待队列】notify -> 【锁池】 -> 【runnable】转载 2017-08-10 00:21:29 · 328 阅读 · 0 评论 -
10021---分布式系统互斥性与幂等性问题的分析与解决
原文 【前言】 随着互联网信息技术的飞速发展,数据量不断增大,业务逻辑也日趋复杂,对系统的高并发访问、海量数据处理的场景也越来越多。如何用较低成本实现系统的高可用、易伸缩、可扩展等目标就显得越发重要。为了解决这一系列问题,系统架构也在不断演进。传统的集中式系统已经逐渐无法满足要求,分布式系统被使用在更多的场景中。 分布式系统由独立的服务器通过网络松散耦合组成。转载 2017-08-15 01:03:25 · 635 阅读 · 0 评论 -
10023---分布式系统理论基础 - CAP
原文 引言 CAP是分布式系统、特别是分布式存储领域中被讨论最多的理论,“什么是CAP定理?”在Quora 分布式系统分类下排名 FAQ 的 No.1。CAP在程序员中也有较广的普及,它不仅仅是“C、A、P不能同时满足,最多只能3选2”,以下尝试综合各方观点,从发展历史、工程实践等角度讲述CAP理论。希望大家透过本文对CAP理论有更多地了解和认识。转载 2017-08-23 00:06:04 · 257 阅读 · 0 评论 -
10022---分布式系统理论基础 - 一致性、2PC和3PC
原文 引言 狭义的分布式系统指由网络连接的计算机系统,每个节点独立地承担计算或存储任务,节点间通过网络协同工作。广义的分布式系统是一个相对的概念,正如Leslie Lamport所说[1]:转载 2017-08-23 00:08:32 · 330 阅读 · 0 评论 -
10024---Java高并发,如何解决,什么方式解决
原文 对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序员头疼的问题。 但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研究一下常见的并发和同步吧。 为了更好的理解并发和同步,我们需要先明白两个重要的概念:同步和异步。 1、同步和异步的区别和联系转载 2017-08-24 00:51:07 · 310 阅读 · 0 评论 -
10025---Zookeeper入门:基本概念、5项配置、启动
原文 起源 最早接触Zookeeper,是在学习Hadoop权威指南这本书的时候,印象中是Hadoop项目的一个子工程。 最近,项目中需要用到“分布式锁”。之前,在开发P2P网贷系统的时候,就用到了“分布式锁”,这个概念听起来挺高端的,实际就是多台机器下,同时运行项目下的“锁”。之前是用Redis实现“分布式锁”,但是周期性地出现了问题。只能是推测,程序异常退出,或者本地开发和测试环境用转载 2017-12-21 16:17:35 · 141 阅读 · 0 评论 -
10026---Kafka详解二、如何配置Kafka集群
原文 Kafka集群配置比较简单,为了更好的让大家理解,在这里要分别介绍下面三种配置 单节点:一个broker的集群 单节点:多个broker的集群 多节点:多broker集群 一、单节点单broker实例的配置 1. 首先启动zookeeper服务 Kafka本身提供了启动zookeeper的脚本(在kafka/bin/目录下)和zookeeper配置文件(在kaf转载 2017-12-21 17:12:40 · 453 阅读 · 0 评论 -
10027---kafka集群环境搭建
原文:http://blog.csdn.net/ch717828/article/details/50748872 今在完成 storm集群搭建之后,希望集成 kafka。 此文记录搭建的过程。 storm集群搭建可以看 http://blog.csdn.net/ch717828/article/details/50718783 1. 机器准备 我准备了3台机器 ,分别是转载 2017-12-21 17:45:17 · 205 阅读 · 0 评论 -
10028---使用ZooKeeper实现配置同步
前言应用项目中都会有一些配置信息,这些配置信息数据量少,一般会保存到内存、文件或者数据库,有时候需要动态更新。当需要在多个应用服务器中修改这些配置文件时,需要做到快速、简单、不停止应用服务器的方式修改并同步配置信息到所有应用中去。本篇文章就是介绍如何使用ZooKeeper来实现配置的动态同步。ZooKeeper在《hive Driver类运行过程》一文中可以看到hive为了支持并发访问引入了Zoo...转载 2018-04-06 00:02:06 · 424 阅读 · 0 评论 -
10015---Linux IO模式及 select、poll、epoll详解
原文 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。 本文讨论的背景是Linux环境下的network IO。 一 概念说明 在进行解释之前,首先要说明几个概念: - 用户空间和内核空间 - 进程切换 - 进程的阻塞 - 文件描述符 - 缓存 I/O 用户空间与内核空间转载 2017-07-14 01:41:07 · 334 阅读 · 0 评论 -
10014---大型网站架构之分布式消息队列
原文 以下是消息队列的大纲,本文主要是消息队列概述,消息队列应用场景和消息中间件示例(电商,日志系统)。 本次分享大纲 消息队列概述 消息队列应用场景 消息中间件示例 JMS消息服务 常用消息队列 参考(推荐)资料 本次分享总结 一、消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可转载 2017-07-13 21:34:50 · 270 阅读 · 0 评论 -
1001--Java 多线程 并发编程
==========原文============== 一、多线程 1、操作系统有两个容易混淆的概念,进程和线程。 进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据; 不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。 线程:表示程序的执行流程,是CPU调度执行的基本单位;线程有自己的程序计数器、寄存转载 2015-09-09 19:57:47 · 288 阅读 · 0 评论 -
1003--多线程笔记
一、基本概念:程序- 进程- 线程 l程序(program)是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。 l进程(process)是程序的一次执行过程,或是正在运行的一个程序。动态过程:有它自身的产生、存在和消亡的过程。 Ø如:运行中的QQ,运行中的MP3播放器 Ø程序是静态的,进程是动态的 l线程(thread),进程可进一步细化为线转载 2015-09-09 21:57:22 · 332 阅读 · 0 评论 -
10004---java并发编程--Executor框架
原文 Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类, 其中包括线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callable等。他们的关系为: tu 并发编程的一种编程方式是把任务拆分为一系列的小任务,即Runnable,然后在提交给一个Executor执行,转载 2016-01-21 17:05:03 · 299 阅读 · 0 评论 -
10005---海量数据排序总结
原文 问题: 假设一个文件中有9 亿条不重复的9 位整数,现在要求对这个文件进行排序。 一般解题思路: 1 、将数据导入到内存中 2 、将数据进行排序 (比如插入排序、快速排序) 3 、将排序好的数据存入文件 难题: 一个整数为4 个字节 即使使用数组也需要900,000,000 * 4byte = 3.4G 内存 对于32 位系统,访问2G 以上的内存非常困转载 2016-01-22 17:43:12 · 427 阅读 · 0 评论 -
10006---根据PV计算带宽及根据PV算并发
原文 根据PV计算带宽 我们通常说的网站流量(traffic)就是指网站的访问量,是用来描述访问一个网站的用户数量以及用户所浏览的网页数量等指标,常用的统计指标包括网站的独立用户数量、总用户数量(含重复访问者)、网页浏览数量、每个用户的页面浏览数量、用户在网站的平均停留时间等。 网站访问量的衡量标准一个是IP,另一个是PV,常以日为标准,即日独立IP和PV来计算. 访问数(转载 2016-06-17 16:57:22 · 430 阅读 · 0 评论 -
10007---关于Java并发编程的总结和思考
原文 编写优质的并发代码是一件难度极高的事情。Java语言从第一版本开始内置了对多线程的支持,这一点在当年是非常了不起的,但是当我们对并发编程有了更深刻的认识和更多的实践后,实现并发编程就有了更多的方案和更好的选择。本文是对并发编程的一点总结和思考,同时也分享了Java 5以后的版本中如何编写并发代码的一点点经验。 为什么需要并发 并发其实是一种解耦合的策略,它转载 2016-07-04 23:22:54 · 385 阅读 · 0 评论 -
10008---Java并发编程:volatile关键字解析
原文 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。转载 2016-07-05 00:11:42 · 208 阅读 · 0 评论 -
10009---徐汉彬:Web系统大规模并发——电商秒杀与抢购
原文 电商的秒杀和抢购,对我们来说,都不是一个陌生的东西。然而,从技术的角度来说,这对于Web系统是一个巨大的考验。当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要。这次我们会关注秒杀和抢购的技术实现和优化,同时,从技术层面揭开,为什么我们总是不容易抢到火车票的原因? 一、大规模并发带来的挑战 在过去的工作中,我曾经面对过5w每秒的高并转载 2016-06-28 15:29:02 · 471 阅读 · 0 评论 -
10010---关于Java并发编程的总结和思考
原文 编写优质的并发代码是一件难度极高的事情。Java语言从第一版本开始内置了对多线程的支持,这一点在当年是非常了不起的,但是当我们对并发编程有了更深刻的认识和更多的实践后,实现并发编程就有了更多的方案和更好的选择。本文是对并发编程的一点总结和思考,同时也分享了Java 5以后的版本中如何编写并发代码的一点点经验。 为什么需要并发 并发其实是一种解耦合的策略,它帮助我们转载 2016-09-01 02:02:23 · 363 阅读 · 0 评论 -
10011---高并发Java(1):前言
原文 1、关于高并发的几个重要概念 1.1 同步和异步 首先这里说的同步和异步是指函数/方法调用方面。 很明显,同步调用会等待方法的返回,异步调用会瞬间返回,但是异步调用瞬间返回并不代表你的任务就完成了,他会在后台起个线程继续进行任务。 1.2 并发和并行 并发和并行在外在表象来说,是差不多的。由图所示,并行则是两个任务同时进行,而并发呢,则是一会做转载 2017-01-03 23:49:41 · 246 阅读 · 0 评论 -
10012---quartz--quartz简介,下载和核心接口
1.1 Quartz是什么 简单的认为Quartz是是一个定时器。 1.2 下载 http://www.quartz-scheduler.org/downloads 1.3 核心接口转载 2017-02-20 20:18:09 · 306 阅读 · 0 评论 -
10013---Dubbo入门
1.系统间服务调用方式 1.1浏览器直接访问 浏览器发起请求,通过ajax或者jsonp方式请求 2.2HttpClient方式 系统与系统之间通过Httpclient发起http请求来请求数据: http协议是短连接 2.3RPC方式转载 2017-05-22 22:03:13 · 240 阅读 · 0 评论 -
Spring Cloud之Eureka
基于NetFlix Eureka进行的二次封装。 包含两部分。 --Eureka Server 注册中心 --Eureka Client 服务注册 Eureka Server 需要注意spring boot 与 spring cloud之间的版本关系,版本若不对,一切都白费。 <parent> <groupId>org.springframework.b...原创 2018-09-02 19:39:55 · 109 阅读 · 0 评论