架构
寒夕若梦
公众号:Java面试百分百,大家可以关注一下呀!
趁着年轻生猛,我要再和生活死磕几年。要么我就毁灭,要么我就铸就辉煌。如果有一天,你发现我在平庸面前低了头,那么请向我开炮。
展开
-
搭建高可用mongodb集群(三)—— 深入副本集内部机制
在上一篇文章《搭建高可用mongodb集群(二)—— 副本集》 介绍了副本集的配置,这篇文章深入研究一下副本集的内部机制。还是带着副本集的问题来看吧!副本集故障转移,主节点是如何选举的?能否手动干涉下架某一台主节点。官方说副本集数量最好是奇数,为什么?mongodb副本集是如何同步的?如果同步不及时会出现什么情况?会不会出现不一致性?mongodb的故障转移会不会无故自动发生?什么条件会触发?频繁...原创 2018-06-21 10:21:45 · 223 阅读 · 0 评论 -
从“两地三中心”到“分布式多活”——企业多数据中心架构演进
数据大集中之后,企业的经营活动越来越依赖于数据中心与网络等IT基础设施,IT的7*24全天业务连续运营成为大型企业IT建设运营与企业经营追求的目标。如何实现减少甚至消除正常和非正常的停机对业务可用性造成的影响,不仅是IT建设与运维团队的目标,更成为企业决策层所关注的。出于灾备(Disaster Recovery)的目的,企业一般都会建设两个或多个数据中心(如图1所示)。主数据中心承担用户的核心...转载 2018-09-28 12:26:37 · 6473 阅读 · 0 评论 -
搭建高可用mongodb集群(四)—— 分片
按照上一节中《搭建高可用mongodb集群(三)—— 深入副本集》搭建后还有两个问题没有解决:从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的时候能否做到自动扩展?在系统早期,数据量还小的时候不会引起太大的问题,但是随着数据量持续增多,后续迟早会出现一台机器硬件瓶颈问题的。而mongodb主打的就是海量数据架构,他不能解决海量数据怎么行!不行!“分片”就...原创 2018-06-20 09:03:19 · 233 阅读 · 0 评论 -
海量数据相似度计算之simhash短文本查找
在前一篇文章 《海量数据相似度计算之simhash和海明距离》 介绍了simhash的原理,大家应该感觉到了算法的魅力。但是随着业务的增长 simhash的数据也会暴增,如果一天100w,10天就1000w了。我们如果插入一条数据就要去比较1000w次的simhash,计算量还是蛮大,普通PC 比较1000w次海明距离需要 300ms ,和5000w数据比较需要1.8 s。看起来相似度计算不是很慢...原创 2018-06-20 09:02:39 · 1255 阅读 · 0 评论 -
海量数据相似度计算之simhash和海明距离
通过 采集系统 我们采集了大量文本数据,但是文本中有很多重复数据影响我们对于结果的分析。分析前我们需要对这些数据去除重复,如何选择和设计文本的去重算法?常见的有余弦夹角算法、欧式距离、Jaccard相似度、最长公共子串、编辑距离等。这些算法对于待比较的文本数据不多时还比较好用,如果我们的爬虫每天采集的数据以千万计算,我们如何对于这些海量千万级的数据进行高效的合并去重。最简单的做法是拿着待比较的文本...原创 2018-06-20 09:01:57 · 675 阅读 · 0 评论 -
实战低成本服务器搭建千万级数据采集系统
上一篇文章《社会化海量数据采集框架搭建》提到如何搭建一个社会化采集系统架构,讲架构一般都比较虚,这一篇讲一下如何实战用低成本服务器做到日流水千万级数据的分布式采集系统。有这样一个采集系统的需求,达成指标: 需要采集30万关键词的数据 、微博必须在一个小时采集到、覆盖四大微博(新浪微博、腾讯微博、网易微博、搜狐微博)。为了节约客户成本,硬件为普通服务器:E5200 双核 2.5G cpu, 4 G ...原创 2018-06-20 08:59:51 · 844 阅读 · 0 评论 -
社会化海量数据采集爬虫框架搭建
随着BIG DATA大数据概念逐渐升温,如何搭建一个能够采集海量数据的架构体系摆在大家眼前。如何能够做到所见即所得的无阻拦式采集、如何快速把不规则页面结构化并存储、如何满足越来越多的数据采集还要在有限时间内采集。这篇文章结合我们自身项目经验谈一下。我们来看一下作为人是怎么获取网页数据的呢?1、打开浏览器,输入网址url访问页面内容。2、复制页面内容的标题、作者、内容。3、存储到文本文件或者exce...原创 2018-06-20 08:59:15 · 344 阅读 · 0 评论 -
实战做项目如何选择开源许可协议(二)- 开放代码
通过《实战做项目如何选择开源许可协议(一)-了解协议》大概知道了有哪些开源协议和各个协议的作用和区别。我们准备把代码开放出去时,需要了解各个代码托管平台如何设置开源协议。目前常用的平台有:googlecode、github、sourceforge、codeplex。下面分别列一下这些平台如何设置开源协议:1、googlecode,google推出的代码托管平台,整体可用还是比较强的,如果不是经常被...原创 2018-06-20 08:58:40 · 373 阅读 · 0 评论 -
实战做项目如何选择开源许可协议(一)-了解协议
目前国内开源项目正在逐渐升温,中国也开始有不少优秀的开源项目突显出来。在大家摩拳擦掌准备加入开源大军时,也要知道这个圈子里的规则。技术人员不能只是研究技术,任何圈子都有规则,要知道了才能玩得好。前段时间有件关于开源软件的事情挺热闹的,关于国内一个开发者把自己作品开源出来被别的公司的人拿去包装成自己的产品高价卖出去。大部分做开源软件的开发者都不太怎么关注版权这些,具体微博如下:hoowa_sun:做...原创 2018-06-20 08:56:46 · 323 阅读 · 0 评论 -
JAVA线程池管理及分布式HADOOP调度框架搭建
平时的开发中线程是个少不了的东西,比如tomcat里的servlet就是线程,没有线程我们如何提供多用户访问呢?不过很多刚开始接触线程的开发攻城师却在这个上面吃了不少苦头。怎么做一套简便的线程开发模式框架让大家从单线程开发快速转入多线程开发,这确实是个比较难搞的工程。 那具体什么是线程呢?首先看看进程是什么,进程就是系统中执行的一个程序,这个程序可以使用内存、处理器、文件系统等相关资...原创 2018-06-20 08:56:02 · 330 阅读 · 0 评论 -
一致性hash和solr千万级数据分布式搜索引擎中的应用
互联网创业中大部分人都是草根创业,这个时候没有强劲的服务器,也没有钱去买很昂贵的海量数据库。在这样严峻的条件下,一批又一批的创业者从创业中获得成功,这个和当前的开源技术、海量数据架构有着必不可分的关系。比如我们使用mysql、nginx等开源软件,通过架构和低成本服务器也可以搭建千万级用户访问量的系统。新浪微博、淘宝网、腾讯等大型互联网公司都使用了很多开源免费系统搭建了他们的平台。所以,用...原创 2018-06-19 19:52:40 · 244 阅读 · 0 评论 -
谈谈WEB开发中的苦大难字符集问题
记得刚做javaweb开发的时候被这个编码问题搞得晕头转向,经常稀里糊涂的编码正常了一会编码又乱了。那个时候迫于项目进度大多都是知其然不知其所以然。后来有时间就把整个体系搞了个遍,终于摸通了来龙去脉。在C++的CGI开发时大家喜欢用latin,这个属于字节方式的编码格式,存储mysql节约空间,而C++也是比较容易控制到byte级别的语言。所以经过框架封装基本也问题不大。在Java语言中,要涉及修...原创 2018-06-19 19:51:21 · 231 阅读 · 0 评论 -
WEB框架的错误体系
不管是什么程序开发都可能会出现各种各样的异常。可能是程序错误,也可能是业务逻辑错误。针对这个各个开发人员都有自己的处理方式,不同的风格增加了业务系统的复杂度和维护难度。所以定义好一个统一的异常处理框架还是需要的。我们开发框架采用java实现,java中的异常一般分为两种,检查异常和运行时异常。检查异常(checked exception)有可能是程序的业务异常,这种异常一般都是开发人员自定义的、知...原创 2018-06-19 19:50:26 · 594 阅读 · 1 评论 -
搭建高可用mongodb集群(二)—— 副本集
在上一篇文章《搭建高可用MongoDB集群(一)——配置MongoDB》 提到了几个问题还没有解决。主节点挂了能否自动切换连接?目前需要手工切换。主节点的读写压力过大如何解决?从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大?数据压力大到机器支撑不了的时候能否做到自动扩展?这篇文章看完这些问题就可以搞定了。NoSQL的产生就是为了解决大数据量、高扩展性、高性能、灵活数据模型、高可用性...原创 2018-06-21 10:24:29 · 188 阅读 · 0 评论 -
搭建高可用mongodb集群(一)——配置mongodb
在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写、海量数据高效存储、高可扩展性和高可用性这些难题。不过就是因为这些问题Nosql诞生了。NOSQL有这些优势:大数据量,可以通过廉价服务器存储大量的数据,轻松摆脱传统mysql单表存储量级限制。高扩展性,Nosql去掉了关系数据库的关系型特性,很容易横向扩展,摆脱了以往老是纵向扩展的诟病。高性能,Nosql通过简单的key-val...原创 2018-06-21 10:22:53 · 224 阅读 · 0 评论 -
分布式多中心架构的几点看法
每天都在谈SOA和微服务,但你真的理解什么是服务吗?服务的技术架构之争服务应该去版本化,不管是微服务还是SOA任何架构的调整只是拆了东墙补西墙,无法解决效率问题先厘清服务治理与组织架构的关系,再来谈微服务吧由于我们一直从事的是传统企业的架构改造工作,所以对新兴的互联网企业如何实施微服务架构并没有实践过。在写这一章之前,我在架构群里和曾经实施过微服务架构的互联网企业的架构师进行了...转载 2018-09-28 12:27:53 · 1211 阅读 · 0 评论