Dao and Skill
贾诩是也
走过很多弯路,一直坚强、执着的眺望着远方、、、一个听着小米布斯故事成长起来的老码农。不忘初心,方得始终、、、给自己鼓劲加油,为这个时代华丽的时代喝彩!
展开
-
坚持初心,方得始终!
重点不是将这个,而是今天看到这个一个属性,我接下来都看到些什么,看到坚持写博客好几年的同学自己感到惭愧,而且看到他们写的内容都是那么真实,都是一步一步的走过来的,中间节选一段文字与君共勉: 四月前,低迷、失志踌躇不前形容自己再好不过,中途来了一次彻底的醒悟,于是 我发现自己变得勤奋了,我发现自己乐于付出了,因为我知道安逸的生活磨砺不出优秀的能力,没有能力的人何来安逸? ...原创 2018-08-28 10:39:25 · 518 阅读 · 0 评论 -
闲扯大型网站架构演变01
我们知道一个网站都是随着业务的发展,逐渐演变成几万服务器,几亿用户数的大型网站,经历了若干年,甚至上十年的发展成为大型网站,然而真正亲身经历这个发展过程的人已经不多了,这种人也是拿着公司股票,赶都赶不走的人,所以正因为很多人没有亲身经历过,所以对架构的演变没有深刻的了解,包括我自己在内,不过没吃过猪肉,也看过猪跑。。。 一:第一代架构 这年头创业大多都是从穷屌丝开始的,奔着原创 2018-01-29 08:24:45 · 177 阅读 · 0 评论 -
Spark 实时计算整合案例随笔
1.概述 最近有同学问道,除了使用 Storm 充当实时计算的模型外,还有木有其他的方式来实现实时计算的业务。了解到,在使用 Storm 时,需要编写基于编程语言的代码。比如,要实现一个流水指标的统计,需要去编写相应的业务代码,能不能有一种简便的方式来实现这一需求。在解答了该同学的疑惑后,整理了该实现方案的一个案例,供后面的同学学习参考。2.内容 实现该方案,整体的流程是不变的,我原创 2017-12-29 11:59:09 · 388 阅读 · 0 评论 -
Kafka实战-入门
1.概述 经过一个多月的时间观察,业务上在集成Kafka后,各方面还算稳定,这里打算抽时间给大家分享一下Kafka在实际场景中的一些使用心得。本篇博客打算先给大家入个门,让大家对Kafka有个初步的了解,知道Kafka是做什么的,下面是本篇博客的目录内容:Kafka背景Kafka应用场景Kafka架构原理 下面开始今天的博客分享内容。2.Kafka背景 Kafka它本翻译 2017-12-29 11:23:17 · 372 阅读 · 0 评论 -
如何悄无声息渡过36岁中年危机?【转】
今天分享是一些已经渡过中年危机的前辈们,分享的经验。看看他们都是如何优雅的过渡这段时期的。1人物一:陈睿,前百度研发经理,携程定制旅游 CTO。从程序员到架构师到管理者,最后到创业者。我一直相信这样一句话:真正的危机,来源于在正确的时间做不正确的事。没有在正确的时间,为下一步做出积累,这才是危机的根源。比如,当你迈转载 2018-01-04 17:05:17 · 12259 阅读 · 0 评论 -
六种隔离技术
为了将我们的应用部署到服务器上,我们需要为其配置一个运行环境。从底层到顶层有这样的运行环境及容器:隔离硬件:虚拟机隔离操作系统:容器虚拟化隔离底层:Servlet容器隔离依赖版本:虚拟环境隔离运行环境:语言虚拟机隔离语言:DSL实现上这是一个请求的处理过程,一个HTTP请求会先到达你的主机。如果你的主机上运行着转载 2016-10-28 15:49:01 · 8451 阅读 · 1 评论 -
Centos-6.5系统通过tar.gz包安装Mysql5.7
1.安装mysql之前需要确保系统中有libaio依赖,使用如下命令:yum search libaio yum install libaio 或者,看是否系统有安装过,rpm -qa | grep mysql // 查看该操作系统上是否已经安装了mysql数据库rpm -e --nodeps mysql // 强力删除2.进入centos终端操作界面原创 2017-11-17 17:31:49 · 5256 阅读 · 1 评论 -
基于Flume的美团日志收集系统(一)架构和设计
美团的日志收集系统负责美团的所有业务日志的收集,并分别给Hadoop平台提供离线数据和Storm平台提供实时数据流。美团的日志收集系统基于Flume设计和搭建而成。《基于Flume的美团日志收集系统》将分两部分给读者呈现美团日志收集系统的架构设计和实战经验。第一部分架构和设计,将主要着眼于日志收集系统整体的架构设计,以及为什么要做这样的设计。第二部分改进和优化,将主要着眼于实际部署和使转载 2017-11-25 15:25:05 · 746 阅读 · 0 评论 -
基于Flume的美团日志收集系统(二)改进和优化
在前文中,我们详述了基于Flume的美团日志收集系统的架构设计,以及为什么做这样的设计。在本节中,我们将会讲述在实际部署和使用过程中遇到的问题,对Flume的功能改进和对系统做的优化。1 Flume的问题总结在Flume的使用过程中,遇到的主要问题如下:a. Channel“水土不服”:使用固定大小的MemoryChannel在日志高峰时常报队列大小不够的异常;使用FileCh翻译 2017-11-25 15:27:14 · 272 阅读 · 0 评论 -
开源数据库之MongoDB,Cassandra,CouchDB,HBase 等简介
1、MongoDB MongoDB是一款开源,高性能,可扩展,无模式,面向文档(与JSON类似的数据模式)的数据库,它为时下最流行的编程语言提供了驱动,如PHP,Python,Perl,Ruby,JavaScript,C++等,支持全文索引,自动分片,跨LAN或WAN扩展,采用Key/Value方式存储数据。MongoDB服务端可运行在Linux、Windows或OS X平台,支持32位和6转载 2018-01-01 11:35:31 · 3578 阅读 · 0 评论 -
分布式系统选举算法剖析
1.概述 我们在了解分布式选举算法之前,我们需要这样一种算法产生的背景。在一个分布式系统中,因为各种意外的因素,有的服务器可能会崩溃或变得不可靠,它就不能和其他服务器达成一致状态。因而这样就需要一种Consensus协议,来确保服务器的容错性,也就是说即使系统中有一两个服务器节点Crash,也不会影响其处理过程。为了让容错方式达成一致,我们不可能要求所有的服务器节点100%都达成Consen转载 2017-12-31 09:52:30 · 1462 阅读 · 0 评论 -
80 后技术人的中年危机!【转载】
【编者按】一直以来,“中年危机”之谈不绝于耳,而前不久,更因为中兴程序员之事再起风波。这是我们终将迎来、走过的坎,只不过,过程各有滋味,在本文中,作者小猿搜题产品技术负责人唐巧分享了包括他在内的 4 个技术人的故事,也是属于 80 后们的中年危机,遇到很多问题,在此与大家分享,也一起探讨,人到中年技术之路何去何从。老王的故事老王出生于 80 年,今年 37 岁。转载 2017-12-31 09:51:35 · 398 阅读 · 0 评论 -
2种hadoop工作流调度器比较(Oozie、Azkaban)
https://github.com/azkaban/azkaban1.概述 在调度 Hadoop 的相关作业时,有以下几种方式:基于 Linux 系统级别的 Crontab。Java 应用级别的 Quartz。第三方的调度系统。自行开发 Hadoop 应用调度系统。 对于前两种,使用 Crontab 和 Quartz 是基本可以满足业务需求,但有其弊端。在 Job 数原创 2017-11-25 15:18:45 · 3379 阅读 · 0 评论 -
Azkaban初步使用(二)
背景实际当中经常有这些场景:每天有一个大任务,这个大任务可以分成A,B,C,D四个小任务,A,B任务之间没有依赖关系,C任务依赖A,B任务的结果,D任务依赖C任务的结果。一般的做法是,开两个终端同时执行A,B,两个都执行完了再执行C,最后再执行D。这样的话,整个的执行过程都需要人工参加,并且得盯着各任务的进度。但是我们的很多任务都是在深更半夜执行的,通过写脚本设置crontab执行。其实,原创 2017-11-25 15:05:01 · 726 阅读 · 0 评论 -
Flume小案例札记
Ø 应用场景(一):采集发往某个端口的所有数据、、、 #example.comf:A single-node Flume configuration#Name the components on this agenta1.sources = r1a1.sinks = k1a1.channels = c1 #Describe/configure the sourc原创 2017-11-24 14:19:22 · 215 阅读 · 0 评论 -
闲扯大型网站架构演变02
缓存说到缓存,我想大家跟我一样都很兴奋,当我们遭遇网站性能瓶颈的时候,缓存是一剂强心针,也是一粒紧急妈富隆,从而在优化网站性能方面冠上了第一定律的帽子,我们前年在做淘应用的时候,就遭遇了性能瓶颈,短时间内采用缓存紧急优化,给我们大优化之前争取了宝贵的时间。 一:缓存的种类 要说缓存有多少种,太多了,比如浏览器缓存,文件缓存,片段缓存,数据库缓存等等,合理利用原创 2018-01-29 08:25:08 · 165 阅读 · 0 评论 -
闲扯大型网站架构演变03
在一个项目还是单体架构的时候,所有的js,css,image都会在一个web网站上,看起来并没有什么问题,比如下面这样: 但是当web网站流量起来的时候,这个单体架构必须要进行横向扩展,而在原来的架构中静态资源这羊毛是出在单体架构这头羊身上,所以横向多少个单体,就有多少个静态资源文件夹,比如下面这样的架构。那这种架构有什么问题呢? 总的来说会有如下二个问题: 1.原创 2018-01-29 08:26:12 · 200 阅读 · 0 评论 -
再聊多线程01--尝试Thread
原本准备在mongodb之后写一个lucene.net系列,不过这几天用到多线程时才发现自己对多线程的了解少之又少,仅仅停留在lock上面,故这几天看了下线程参考手册结合自己的心得整理一下放在博客上作为自己的学习笔记。 好了,我们知道“负载”是一个很时尚,很牛X的玩意,往大处说,网站需要负载,数据库需要负载。往小处说,线程也需要负载,面对海量的用户请求,我们的单线程肯定扛不住,翻译 2018-01-29 08:26:32 · 217 阅读 · 0 评论 -
系统架构:Web应用架构的新趋势---前端和后端分离的一点想法
Web前端现在是一个独立的技术工种,这个工种的产生主要是针对互联网行业的需求,我在以前的文章里曾经讲到过,一个大型互联网网站,例如想淘宝网,它绝对不是一个Web项目,而是一群web项目的集合,那么如果不在前端进行整合,这么多web项目前端开发一定存在大量重复劳动,并且运维时候也存在难以统一管理的问题。本文假想一个面对需要前端资源整合的组织,如何做到前后端分离的解决思路。本文详情如下:转载 2018-04-12 09:38:28 · 935 阅读 · 0 评论 -
浅谈中途接手项目~
首先,这个团队我不是那么熟悉。那么要在一个新的团队短时间内建立威信怎么办?获得领导的支持很重要。当然,不管是中途项目还是一个新的项目,领导的支持都是最重要的,直接取决了你能获得多少资源以及项目成员的参与程度。需要召开一个比较正式的项目组内部会议,由领导来宣布项目经理人员的变更。同时获得项目成员的支持也很重要。项目是一个团队共同作战的过程,离不开项目成员的共同努力。而更换项目经理,对项目成员来说,需...原创 2018-04-17 08:57:14 · 4068 阅读 · 1 评论 -
Windows的一些常用命令:
一,ping 它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。下面就来看看它的一些常用的操作。先看看帮...翻译 2018-04-20 08:38:53 · 2502 阅读 · 0 评论 -
软件架构师分类及能力归纳闲扯
软件架构师分类及能力归纳 随着软件开发分工的不断细化,越来越多的软件公司开始网罗架构师。软件架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。【网上摘录】一般来讲,软件架构师主要分成 1:前端架构师: 前端架构师主要负责软件产品的前端呈现,必须具有以下能力: ...原创 2018-04-16 11:19:55 · 1837 阅读 · 0 评论 -
产品需求文档杂谈
做好产品需求文档的这十步,是经过长期的实践经验和反复验证而得到的。可能这里描述的不是很全面,但他已经足够让你做一个成功的产品需求文档。做好这几步花费的时间要以项目的大小、复杂程度、个体学识、基本技能熟练度而定。第一步:做好准备工作你要做的是一个让人无可争议的产品,为了做好他,你必须做好前期的准备工作。你需要去了解你的顾客、竞争对手、产品团队的实力和需要的技术。你需要从顾客、用户、竞争对手、分析师、...翻译 2018-04-14 13:57:16 · 221 阅读 · 0 评论 -
IO模型
目录前言IO模型网络编程模型参考资料前言说到IO模型,都会牵扯到同步、异步、阻塞、非阻塞这几个词。从词的表面上看,很多人都觉得很容易理解。但是细细一想,却总会发现有点摸不着头脑。自己也曾被这几个词弄的迷迷糊糊的,每次看相关资料弄明白了,然后很快又给搞混了。经历过这么几次之后,发现这东西必须得有所总结提炼才不至于再次混为一谈。尤其是最近看到好几篇讲这个的文章,很多都有谬误,很容易把本转载 2018-03-06 18:47:39 · 151 阅读 · 0 评论 -
再聊多线程06--了解Task的内部调度机制TaskScheduler
时我们在用多线程开发的时候少不了Task,确实task给我们带来了巨大的编程效率,在Task底层有一个TaskScheduler,它决定了task该如何被调度,而在.net framework中有两种系统定义Scheduler,第一个是Task默认的ThreadPoolTaskScheduler,还是一种就是SynchronizationContextTaskScheduler,以及这两种翻译 2018-01-30 11:41:30 · 1596 阅读 · 0 评论 -
再聊多线程05--线程池
说到多线程,不可不说线程池,C#中关于池的概念很多,今天来整理下ThreadPool的使用。 是的,如果你很懒,如果你的执行任务比较短,如果你不想对线程做更精细的控制,那么把这些繁琐的东西丢给线程池吧。 一:ThreadPool 好了,下面看看TheadPool下有哪些常用的方法。1:GetMaxThreads,GetMinThreads 首先我们肯定好奇线程池翻译 2018-01-30 11:41:02 · 205 阅读 · 0 评论 -
再聊多线程04--信号量
今天整理“信号量”的相关知识,其实想想也蛮有趣的,锁,互斥,信号量都可以实现线程同步,在framework里面主要有三种。:ManualResetEvent:AutoResetEvent: Semaphore 好,下面就具体看看这些玩意的使用。 一:ManualResetEvent 该对象有两种信号量状态True和False,好奇的我们肯定想知道True和翻译 2018-01-30 11:39:50 · 335 阅读 · 0 评论 -
再聊多线程03--互斥体
没想到我的前两篇文章还挺受欢迎的,谢谢大家,今天整理下Mutex的使用。一:Mutex首先看下MSDN对它的解释: 不错,出现了一个亮点,可用于“进程间同步“,既然进程间都可以同步,那线程同步对它来说不是小菜一碟吗?好的,还是看下Mutex在线程中发挥的神奇功效。1: 线程间同步 Metux中提供了WatiOne和ReleaseMutex来确保只有一个线程翻译 2018-01-29 08:27:18 · 250 阅读 · 0 评论 -
再聊多线程02--锁机制
当多个线程在并发的时候,难免会碰到相互冲突的事情,比如最经典的ATM机的问题,并发不可怕,可怕的是我们没有能力控制。线程以我的理解可以分为三种① 锁。② 互斥。③ 信号。 好,这一篇主要整理“锁”,C#提供了2种手工控制的锁一: Monitor类 这个算是实现锁机制的纯正类,在锁定的临界区中只允许让一个线程访问,其他线程排队等待。主要整理为2组方法。翻译 2018-01-29 08:26:54 · 185 阅读 · 0 评论 -
Linux下telnet不能用问题
[root@mini1 ~]# telnet localhost 44444-bash: telnet: command not found 处理方案一:yum 安装方式1.检查linux版本cat /etc/issue 2.检查是否已经安装telnetrpm -qa | grep telnet 上面的显示是已经安装,就不需要再安装了,如果没有,接着下一步吧原创 2017-11-24 14:17:33 · 21994 阅读 · 1 评论 -
Hive日常使用(1)
在Hive中,某些小技巧可以让我们的Job执行得更快,有时一点小小的改动就可以让性能得到大幅提升,这一点其实跟SQL差不多。首先,Hive != SQL,虽然二者的语法很像,但是Hive最终会被转化成MapReduce的代码去执行,所以数据库的优化原则基本上都不适用于 Hive。也正因如此,Hive实际上是用来做计算的,而不像数据库是用作存储的,当然数据库也有很多计算功能,但一般并不建议在SQ原创 2017-11-23 11:40:07 · 454 阅读 · 0 评论 -
软件开发从业者的职责
软件与我们的生活息息相关。我们的汽车中装载了各种软件,我们的交流建立在软件的基础之上,我们日常生活中几乎每个的设备都包含了软件部分。最近所发生的一些事件向我们警示了使用软件的潜在问题和危险。eBay、Sony和其他公司的海量客户数据被盗。本文的许多读者肯定也深受其害。此外,爱德华·斯诺登所曝光的信息也向我们展示了软件给我们的隐私所带来的巨大影响。在过去的几年中,我意识到如下事实:让这些丑闻成为可能原创 2017-07-28 22:59:15 · 482 阅读 · 0 评论 -
架构师是否应该写代码:架构师的认知误区
当我面试架构师职位的候选人时,我通常会问一个这样的问题:“你认为架构师是否应该做一些编码工作?”而通常会得到下面两个反馈之一:“不,我正在寻找一个不再需要编码的职位。”“我喜欢继续编码,至少是少量的编码,但可能不会有时间这样做。”与此类似,当问及其他一些架构师最近做过多少编码的工作,通常得到的答案是:“有一段时间没有编码了。”这些回应总是让人感到不安。从何时开始一个技术角色的提转载 2017-07-28 22:13:15 · 407 阅读 · 0 评论 -
简洁Java之道
计算机专家在问题求解时非常重视表达式简洁性的价值。Unix的先驱者Ken Thompson曾经说过非常著名的一句话:“丢弃1000行代码的那一天是我最有成效的一天之一。”这对于任何一个需要持续支持和维护的软件项目来说,都是一个当之无愧的目标。早期的Lisp贡献者Paul Graham甚至将语言的简洁性等同为语言的能力。这种对能力的认识让可以编写紧凑、简介的代码成为许多现代软件项目选择语言的首要标准翻译 2017-07-28 22:51:55 · 283 阅读 · 0 评论 -
终极反馈环:从客户上报的缺陷中学习
主要结论详细分析最昂贵的Bug可以帮助公司节约时间、金钱和资源。所收集的数据有助于对软件开发领域普遍认同的教条提出质疑。在服务导向的架构中,集成测试能揭露出远多于单元测试的缺陷。大部分缺陷往往集中在少量可轻松辨别的功能中。 简单的措施即可大幅减少最终用户可能遇到的缺陷数量。由客户发现的软件缺陷往往是最昂贵的。很多人从事有关软件缺陷的调试(往往难以在生产环境中进行)、转载 2017-08-01 10:39:06 · 362 阅读 · 0 评论 -
开发高质量软件的区别因素
本文要点生产高质量的软件对持续软件交付和优化开发流程的支持来说必不可少。专门针对培训和基础设施(硬件和软件)提高年度资本投资对于促进高质量软件的开发是必需的。采用与组织业务模型一致的轻量级流程和促进开发人员的工作效率是一个关键的环境决策。高层管理的承诺、组织文化和有效的开发人员的贡献是高质量软件开发的区别因素。摘要软件质量可达到的水平反映了一个组织的经营决策。有许多因素影响这个转载 2017-08-01 10:38:22 · 1535 阅读 · 0 评论 -
Spotify 高度可靠的事件交付系统是如何设计与运维的
http://www.infoq.com/cn/presentations/spotify-a-highly-reliable-event-delivery-system?utm_campaign=rightbar_v2&utm_source=infoq&utm_medium=presentations_link&utm_content=link_text转载 2017-08-01 10:38:00 · 221 阅读 · 0 评论 -
实时股票分析系统的架构与算法
如果能在一台服务器上应用人工智能和机器学习算法处理每天的股票交易,而自己则在夏威夷的海滩上享受生活,那将是多么惬意呀。虽然股票价格的变化受多种因素的影响,世上也没有免费的午餐,但是有些公司依然能够借助于开源的机器学习算法和数据分析平台得到“更好、更健康、更便宜的午餐”。本文搜集并整理了一些如何实现实时股票分析系统的资料,从架构和算法两个层面给出了一种可行的方案。虽然股票交易市场一直在持续地变化转载 2017-08-01 10:37:33 · 5792 阅读 · 0 评论 -
大规模公有云的自动化工具
云计算已经不仅仅是虚拟基础设施的快速自助式服务。开发者和管理员正在寻求规模化云计算的供应和管理方法。这篇InfoQ文章是关于动态计算资源池维护的自动化工具和理念系列的其中一篇。可以通过这里订阅这一系列文章的新文章发布通知。早期云计算的典型部署是,一两个员工使用几台服务器针对某个特定需求搭建一个小规模私有云。然而,随着整个企业中越来越多的员工使用各种云服务模型(IaaS,PaaS,SaaS)中的转载 2017-07-31 00:06:24 · 531 阅读 · 0 评论 -
Facebook级挑战
Facebook级别规模的挑战在我们深入细节之前,先了解一组Facebook不得不面对数据,你就可以想象这种规模。● Facebook每月的PV量:630,000,000,000 (6千3百亿)● Facebook上的图片数量超过其他图片网站的总和(包括诸如Flickr这样的图片网站)● 每个月有超过30亿的图片上传到Facebook● Facebook系统每秒可以处理120万翻译 2017-07-08 13:48:56 · 187 阅读 · 0 评论