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
1 vol 1封面图片来源:Seven ... 《掌星-移动互联网开发笔记》是致力于普及和推 广移动互联网开发技术免费电子文档,虽然看起 来目前还很简陋,但我们不断努力完善,和中国 的无线互联网一同发展,希望大家多多支持。
2、新用户注册功能(用户信息保存在本地SQLite数据库中) 3、用户登录功能、退出功能 4、实现某个城市(可以是重庆,也可是你的家乡,抑或是你喜欢的城市)的天
Android平台的移动互联网开发
终身免费使用,能开发:大型手机App服务端系统 大型功能性网站开发(如:电子商务网站、社区、门户等) 大数据系统应用开发(与vertica无缝集成) 应用解决方案,如电子政务系统、管理系统、协作系统、企业ERP/DRP/...
移动互联网开发技术培训.pdf
移动互联网开发技术培训.doc
互联网开发及个人简历范文.docx
2.实现新用户注册功能 3.实现用户退出登录功能 4.实现信息的增加、删除、修改、查询等功能 5.信息字段不少于4个、记录不少于10条 6.用户信息的测试数据至
《移动互联网开发》教学大纲.docx
《移动互联网开发实验》教学大纲.docx
Android手机应用开发环境搭建,IOS环境搭建与开发入门,移动互联网开发基础
科技有限公司互联网开发管理规章制度样本.doc
《移动互联网开发综合实验》教学大纲.docx
(完整版)互联网开发实习报告范文.doc
互联网开发及运营的常识概念.pdf互联网开发及运营的常识概念.pdf
互联网开发及运营的常识概念.docx互联网开发及运营的常识概念.docx
基于java的互联网开发框架
通过流程图方式,直观形象的描述互联网的开发过程。
Java互联网开发技术栈.xmind