HDFS、TFS、FastDFS 、mooseFS、Lustre和mogileFS。
hdfs: Hadoop分布式文件系统(Hadoop Distributed File System)
跨语言RPC框架:
hessian(Binary),thrift,REST,protostuff, ice, httpInvoker, Burlap
(XML-RPC), Axis (SOAP)
RMI,socket,rpc,hessian,http,jms
json smart > Fastjson > Jackson(spring mvc) > Gson > Json-lib。
msgpack,protocal buffer,Kryo
Memcached(dbcached), Redis, MongoDB
各种nosql数据库的比较Cassandra
(facebook),MongoDB,CouchDB,Redis,Riak,HBase
MQ:MetaQ, httpsqs, memcacheq, Activemq, RabbitMQ, UCMQ
starling , amazonsqs , tokyocabinet ,kestrel
Java NIO(框架:Mina、Netty、Grizzly灰熊,yanf4j)
juc, guava(瓜哇)
前端:yoeman,grunt
分布式SOA框架:zookeeper,dubbo, hive(蜜蜂),pig, hadoop(大象)
日志收集:flume、scribe、 flume+kafka+storm
监控系统:
Ganglia(RRDtool)、Nagios、Cacti
zabbix,ZoneMinder,MRTG,Tsar,HawtIO,Countly,Rmamona,Ziplin,Ganglia-
activemq
Thread,ThreadLocal
openAPI
YY: 们除了java框架,我们用的比较多的是nginx redis tfs hadoop,数据库
基本mysql
alibaba有好几个分布式框架,主要有:进行远程调用(类似于RMI的这种远程
调用)的(dubbo、hsf),jms消息服务(napoli、notify),KV数据库(tair)等。
hessian<pb <yu kryo
JMS(Java Messaging Service)是Java平台上有关面向消息中间件(MOM)的技
术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准
的产生、发送、接收消息的接口简化企业应用的开发,翻译为Java消息服务。
JMS和MQ的关系:
JMS是一个用于提供消息服务的技术规范,它制定了在整个消息服务提供过程
中的所有数据结构和交互流程。而MQ则是消息队列服务,是面向消息中间件(
MOM)的最终实现,是真正的服务提供者;MQ的实现可以基于JMS,也可以基于
其他规范或标准。
支持JMS的开源MQ:
目前选择的最多的是ActiveMQ。
activeMQ 是一个jms 的实现, apache 出的.
protocol buffer:一种序列化协议
jsonsmart json格式中的绝对王者 速度快,信息少
msgpack 二进制序列化的怪杰,号称比protocal buffer快四倍,比json快10
倍
protocal buffer GOOGLE出品,号称比XML快百倍
json是一种数据格式,便于数据传输、存储、交换
gson是一种组件库,可以把java对象数据转换成json数据格式
序列化: 将java对象转为JSON字符串
反序列化:将Json字符串转化为java对象
Memcached, Redis, MongoDB区别:
mongodb和memcached不是一个范畴内的东西。mongodb是文档型的非关系型数
据库,其优势在于查询功能比较强大,能存储海量数据。mongodb和memcached
不存在谁替换谁的问题。
和memcached更为接近的是redis。它们都是内存型数据库,数据保存在内存中
,通过tcp直接存取,优势是速度快,并发高,缺点是数据类型有限,查询功
能不强,一般用作缓存。在我们团队的项目中,一开始用的是memcached,后
来用redis替代。
相比memcached:
1、redis具有持久化机制,可以定期将内存中的数据持久化到硬盘上。
2、redis具备binlog功能,可以将所有操作写入日志,当redis出现故障,可
依照binlog进行数据恢复。
3、redis支持virtual memory,可以限定内存使用大小,当数据超过阈值,则
通过类似LRU的算法把内存中的最不常用数据保存到硬盘的页面文件中。
4、redis原生支持的数据类型更多,使用的想象空间更大。
5、前面有位朋友所提及的一致性哈希,用在redis的sharding中,一般是在负
载非常高需要水平扩展时使用。我们还没有用到这方面的功能,一般的项目,
单机足够支撑并发了。redis 3.0将推出cluster,功能更加强大。
6、redis更多优点,请移步官方网站查询。
7. 性能
Redis作者的说法是平均到单个核上的性能,在单条数据不大的情况下Redis更
好。为什么这么说呢,理由就是Redis是单线程运行的。
因为是单线程运行,所以和Memcached的多线程相比,整体性能肯定会偏低。
因为是单线程运行,所以IO是串行化的,网络IO和内存IO,因此当单条数据太
大时,由于需要等待一个命令的所有IO完成才能进行后续的命令,所以性能会
受影响。
原子操作是不可分割的,在执行完毕之前不会被任何其它任务或事件中断。
"原子操作(atomic operation)是不需要synchronized",这是Java多线程编程
的老生常谈了。所谓原子操作是指不会被线程调度机制打断的操作;这种操作
一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另
一个线程)。
compareAndSet这个方法多见于并发控制中,简称CAS(Compare And Swap),意
思是如果valueOffset位置包含的值与expect值相同,则更新valueOffset位置
的值为update,并返回true,否则不更新,返回false。
这里可以举个例子来说明compareAndSet的作用,如支持并发的计数器,在进
行计数的时候,首先读取当前的值,假设值为a,对当前值 + 1得到b,但是+1
操作完以后,并不能直接修改原值为b,因为在进行+1操作的过程中,可能会
有其它线程已经对原值进行了修改,所以在更新之前需要判断原值是不是等于
a,如果不等于a,说明有其它线程修改了,需要重新读取原值进行操作,如果
等于a,说明在+1的操作过程中,没有其它线程来修改值,我们就可以放心的
更新原值了。
138 2893 0131
分享到:
相关推荐
移动互联网开发-课程设计报告.pdf 本报告是关于移动互联网开发的课程设计报告,主要介绍了移动互联网开发的基本概念、设计原理、开发工具和环境、需求分析和概要设计、详细设计和关键问题、实现效果和设计体会等...
### 移动互联网开发笔记 VOL 1 知识点概览 #### 1. 移动互联网发展趋势与挑战 - **背景与趋势**:“移动互联网正改变着我们的生活方式,也改变着开发者的开发方向”。这一段话揭示了移动互联网时代的大背景和发展...
移动互联网开发技术培训 在当前数字化时代,移动互联网已经成为日常生活和商业活动的重要组成部分。移动互联网开发涉及构建在智能手机和平板电脑等移动设备上的应用程序和服务,为用户提供无缝的在线体验。以下将...
在“广工互联网开发大作业和实验”的项目中,学生能够深入接触到安卓的课程设计、实验报告以及相关的论文撰写,这不仅是对理论知识的检验,更是对学生实践能力的锻炼。 安卓开发课程设计通常是学生初次尝试的综合性...
2、新用户注册功能(用户信息保存在本地SQLite数据库中) 3、用户登录功能、退出功能 4、实现某个城市(可以是重庆,也可是你的家乡,抑或是你喜欢的城市)的天
在探讨“大规模互联网开发技术”这一主题时,我们聚焦于一家知名的日本WEB服务公司所积累的宝贵经验。这家公司的成功不仅在于其业务的蓬勃发展,更在于其在技术领域的深度探索与创新实践。以下将深入解析大规模...
移动互联网开发实验教学大纲 一、Android应用程序开发的基本知识 * 了解Android应用程序开发的基本概念、结构和功能 * 掌握基本工具的选择和使用 * 培养分析问题、解决问题的能力,尤其是动手能力和团队协作能力 ...
移动互联网开发技术培训主要涵盖了移动应用的开发定义、相关技术、开发流程以及案例实训,旨在帮助开发者掌握在手机和平板等移动设备上构建应用程序的知识。以下是详细的解释: 一、移动互联网开发的定义 移动...
移动互联网开发技术培训 移动互联网开发是指针对手机、平板等移动智能设备进行应用程序的开发,这些应用程序通常是基于互联网的,并且涵盖了广泛的应用场景,从大众化的消费应用到特定行业或组织的解决方案。与传统...
【互联网开发及个人简历范文】 在互联网开发领域,个人简历是展示自己技能、经验和能力的重要文档,对于求职者来说,一份详尽而精准的简历能够有效地吸引潜在雇主的注意。以下是一个互联网开发及个人简历的典型结构...
本资源是关于互联网开发应用求职个人简历表格的知识点总结。 一、个人简历的技术细节 在个人简历中,技术细节是非常重要的。排版是个人简历中的一方面,需要注意美观度和个性化塑造。在写作中,需要避免小错误,...
《移动互联网开发综合实验》是一门针对信息工程专业学生开设的选修课程,旨在通过2周的学习和2个学分的投入,让学生深入理解和掌握移动互联网应用开发,特别是基于Android平台的技术。这门课程在第5学期进行,由电子...
Java是一种广泛应用于互联网开发的编程语言,其强大的功能和跨平台特性使得它成为构建大型、高性能网站和应用程序的首选。基于Java的互联网开发框架则进一步简化了开发过程,提供了高效、可扩展和易于维护的解决方案...
在互联网技术日新月异的时代,互联网开发设计服务公司网站模板是企业展示自身服务、吸引客户的重要工具。这个"互联网开发设计服务公司网站模板.zip"压缩包文件包含了创建专业、功能齐全的公司网站所需的所有元素,...
Easy do it,轻松互联网开发平台(原WebEasy,简称轻开平台)是一个运行于JVM+HTTP(及HTTPS协议)的应用服务器开发平台。 轻开平台基于汉语的思维方式并巧妙地结合中英文思维方式的优点设计了一套轻松Easy的开发...
刘小红在其撰写的文章《“互联网+”背景下以人才需求为导向的移动互联网开发课程教学探讨》中,深入分析了当前移动互联网开发课程教学体系存在的问题,并提出了相应对策,以期达到培养符合市场和社会需求的人才目标...
在互联网开发领域,一份精心制作的工作简历是求职者向潜在雇主展示自己能力、经验和技能的重要工具。本篇文章将深入探讨互联网开发空白表格工作简历模板的关键元素,并解释如何利用这些元素来构建一个有效的工作简历...
在互联网开发及运营中,了解和掌握相关的技术与概念至关重要。以下是对标题和描述中涉及的知识点的详细说明: 1. **互联网开发语言** - **HTML+CSS**:HTML(超文本标记语言)是构建网页的基础,它定义了网页的...
"互联网开发职位技能图谱"是一个综合性的资源,旨在帮助开发者和求职者了解并掌握所需的技能组合,以便在C++、Golang、视频编解码和数据分析等领域取得成功。下面将详细阐述这些关键领域的知识点。 首先,C++是一种...