自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

浅析netty

Netty是JBoss出品的高效的Java NIO开发框架。本文将主要分析Netty实现方面的东西,由于精力有限,本人并没有对其源码做了极细致的研 究。如果下面的内容有错误或不严谨的地方,也请指正和谅解。对于Netty使用者来说,Netty提供了几个典型的example,并有详尽的API doc和guide doc,本文的一些内容及图示也来自于Netty的文档,特此致谢。 1、总体结构...

2018-09-29 19:49:00 243

阿里P8架构师深度概述互联网分布式架构

简介作为一名架构师,我们要专业,要能看懂代码,及时光着臂膀去机房,也能独挡一面!及时同事搞不定问题,或者撂挑子,你也能给老大一个坚定的眼神:不怕,有我在!还能在会议室上滔滔不绝,如若无人,让不懂技术的妹子看你时眼神迷离,就好想落霞与孤鹜齐飞!分布式架构是一个非常复杂的体系,任何技术都不是孤立的存在,任何技术都无法适应所有场景。作为一名分布式系统架构或者资深研发人员,我们必须尽可能多的学习...

2018-09-27 15:12:34 454

分布式架构基石-TCP通信协议

为什么会有TCP/IP协议在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用。只有把它们联合起来,电脑才会发挥出它最大的潜力。于是人们就想方设法的用电线把电脑连接到了一起。但是简单的连到一起是远远不够的,就...

2018-08-20 17:34:15 283

原创 架构设计之初体验,送给准备进阶架构的朋友(个人总结)

这篇文章呢是我在阿里学习了架构设计之后总结的一篇文章,本人是高级开发,目前想进阶架构师1 基本概念和目的 架构设计的目的是为了解决系统复杂度带来的问题,并不是要面面俱到,不需要每个架构都具备高性能、高可用、高扩展等特点,而是要识别出实际业务实际情况的复杂点,然后有有针对性地解决问题,即:有的放矢,而不是贪大求全。 在实际情况中,不一定每个系统都要做架构设计,需要结合实际情况。有...

2018-06-25 16:57:35 441

深度学习Dubbo系列(入门开篇)

此文档为系列学习文档这系列文档详细讲解了dubbo的使用,基本涵盖dubbo的所有功能特性。在接下来的文章里会详细介绍。如果你正依赖dubbo作为你业务工程的RPC通信框架,这里可以作为你的参考手册 一、背景随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。单一应用架...

2018-06-21 19:16:46 196

精讲Redis内存模型

前言Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分。我们使用Redis时,会接触Redis的5种对象类型(字符串、哈希、列表、集合、有序集合),丰富的类型是Redis相对于Memcached等的一大优势。在了解Redis的5种对象类型的用法和特点的基础上,进一步了解Redis的内存模型,对Redis的使用...

2018-06-14 13:45:36 370

在阿里架构师眼中构建一个较为通用的业务技术架构就是如此简单

1、通用架构概述创业之初,我们往往会为了快速迭代出产品,而选择最简单的技术架构,比如LAMP架构,SSH三层架构。这些架构可以适应初期业务的快速发展,但是,随着业务变得越来越复杂,我们会发现这些架构越来越难支撑业务的发展,出现在一个类中写好几千行代码,一个方法中到处都是if else语句,如果中间遇到主程序猿离职,后面介入的程序猿几乎无法理解这些代码,到最后,产品越来越难迭代,只能推翻重做。...

2018-05-28 19:31:26 149

简单的方法构建一个高可用服务端

一、什么是高可用性服务端,顾名思义就是为用户提供服务的。停工时间,就是不能向用户提供服务的时间。高可用,就是系统具有高度可用性,尽量减少停工时间。停工的原因一般有:服务器故障。例如服务器宕机,服务器网络出现问题,机房或者机架出现问题等。访问量急剧上升,导致服务器压力过大导致访问量急剧上升的原因有:时间和访问量都可以预见的,例如秒杀活动,售票系统。时间和访问量都不可以预见...

2018-05-24 18:54:55 659

CTO详细讲解海量日志处理ELK

ELK实时日志分析平台之Elasticsearch简介Elasticsearch是一个高度灵活的开源全文检索和分析引擎。它能够迅速(几乎是实时地)地存储、查找和分析大规模数据。通常被用在有复杂的搜索要求的系统中。比如:在电子商务系统中用户搜索商品,可以使用Elasticsearch存储产品目录后为客户提供搜索接口。如果要收集日志或交易信息,然后分析这些数据得到有价值信息,可以先...

2018-05-23 20:42:59 392

原创 微博and阿里,“异地多活”部署经验谈

异地多活的好处阿里巴巴的同学已经充分阐述,微博的初始出发点包括异地灾备、提升南方电信用户访问速度、提升海外用户访问速度、降低部署成本(北京机房机架费太贵了)等。通过实践,我们发现优势还包括异地容灾、动态加速、流量均衡、在线压测等,而挑战包括增加研发复杂度、增加存储成本等。微博外部历程先说说微博外部的历程,整个过程可谓是一波多折。微博的主要机房都集中在北京,只有很小一部分业务在广州部署,2010年1...

2018-05-15 21:48:06 2336

原创 像鸟一样思考更好的并行编程

介绍编写一个应用程序并行运行很困难,对吧?我的意思是,它一定很难,否则我们会看到各处的并行程序。我们所看到的都是平滑的并行应用程序,可以毫不费力地使用每个可用的核心。相反,多线程应用程序是例外而不是规则。编写并行程序似乎有两个主要障碍:学习您选择的语言提供的并行编程结构和/或约定可视化您的并行程序的功能第一项似乎很明显:休息一下,学习所选编程语言的并行功能...

2018-05-15 19:05:35 197

三年高级开发,六年成为架构师,到CTO我用了12年

程序员阶段大学毕业,被校招到一家小公司搬砖,大家常自嘲叫码农的阶段。这个角色职责是把需求或产品实现为用户可用的软件产品。此职位为执行级别。另外因为经验较少,一般需要求助别人,或与别人一起完(ban)成(zhuan)一个任务。此阶段我经历3年,总结出程序员的职责如下:1、负责公司运营系统的设计与开发工作2、运营数据处理和分析高级程序员阶段三...

2018-05-14 21:13:55 2107

原创 一台Java服务器如何跑多少个线程

一台Java服务器能跑多少个线程?这个问题来自一次线上报警如下图,超过了我们的配置阈值。图:京东自研UMP监控分析打出jstack文件,通过IBM Thread and Monitor Dump Analyzer for Java工具查看如下:图:IBM Thread and Monitor Dump Analyzer for Java共计1...

2018-05-14 15:45:09 480

原创 资深架构师的经验分享——软件项目开发和决策

这篇文章是关于什么的参与项目决策的人必须意识到他们的决定对项目的成功和成本以及时间和金钱的影响。对于我20多年的软件开发经验和10多年的咨询工作,我作为架构师或开发人员参与了许多项目 - 其中大多数成功,有些失败,但每个项目(无论成功与否)都涉及好的和不好的决策由各种人制作。本文的目的是通过提倡根据我的经验做出的决定以及避免错误的决策来为项目成功奠定基础。总的来说,我拥有C +...

2018-05-12 15:36:38 288

阿里面试P6以上必问:并发编程

Java并发编程在实际的工作中应用广泛,有时候需要通过多线程去异步做一些事情,有时候需要通过多线程提升一个任务执行的效率。互联网公司面试最常问到的点。本文有点长,代码比较多,请耐心看完,提升是需要一个学习的过程。关键概念上下文切换概念:CPU通过时间片算法,给可运行的线程分配运行时间,在不同线程之间的切换时需要将当前线程的状态保存并回复将要执行的线程状态信息,这个过程就是上下文...

2018-05-04 22:14:37 748

微服务布道师:详解微服务架构

2014作为代表公司去学习微服务,经过一番打拼,如今也算是微服务的布道师。这两年,微服务这个概念火了,火到什么程度呢?2016年有一个统计说,两千家企业里,30% 在使用微服务,15%在实验开发和测试微服务架构,24%在学习微服务准备转型,只有剩下的30%的企业没有使用微服务。什么是微服务微服务的概念源于2014年3月Martin Fowler所写的一篇文章“Microser...

2018-05-03 21:06:21 339

“淘宝京东”构建流式计算卖家日志系统架构的应用实践

引言本文给大家讲述的是我们如何去构建一个日志系统,用到了那些技术,为什么用这些技术,并且讲述了遇到的问题及优化的过程,希望给大家在实践中能够提供一些参考。最近在维护一个有关于日志的项目,这个项目是负责收集、处理、存储、查询京东卖家相关操作的日志,我们这里就叫它“卖家日志”。在日常的开发过程中,可能我们对日志这个词并不陌生,例如我们常接触到的log4j、slf4...

2018-04-26 17:20:29 307

并发经验八年架构师:缓存在高并发场景下该如何问题

缓存一致性问题当数据时效性要求很高时,需要保证缓存中的数据与数据库中的保持一致,而且需要保证缓存节点和副本中的数据也保持一致,不能出现差异现象。这就比较依赖缓存的过期和更新策略。一般会在数据发生更改的时,主动更新缓存中的数据或者移除对应的缓存。缓存并发问题缓存过期后将尝试从后端数据库获取数据,这是一个看似合理的流程。但是,在高并发场景下,有可能多个请求并发的去从数据库获取数据,对...

2018-04-22 19:31:27 246

原 架构师视角:对JVM架构进行解析

每一个Java 开发人员都知道字节码由JRE (Java运行时环境)执行。但许多人不知道JRE是Java虚拟机(JVM)的实现, 它负责分析字节码、解析并执行代码。作为一个开发人员了解JVM架构是非常重要的,因为它使我们能更高效的编写代码。在这篇文章中我们将更深入了解Java中的JVM架构以及JVM的各个组件。JVM是什么?虚拟机 是物理机器的一个软件实现。J...

2018-04-18 21:44:22 276

原创 分享我在阿里8年,是如何一步一步走向架构师的

前言成为优秀的架构师是大部分初中级工程师的阶段性目标。优秀的架构师往往具备七种核心能力:编程能力、调试能力、编译部署能力、性能优化能力、业务架构能力、在线运维能力、项目管理能力和规划能力。这几种能力之间的关系大概如下图。编程能力、调试能力和编译部署能力属于最基础的能力。不能精通掌握这三种能力,很难在性能优化能力和业务架构能力方面有所成就。具备了一定的性能优化能力和业务架构能力之后,才能...

2018-04-14 19:22:55 270

且看大牛十分钟讲清楚区块链侧链技术

最近,区块链技术引起了广泛关注。虽然区块链技术目前正在快速发展,但是传统区块链技术要落地到商业应用,特别是金融应用,仍然存在很多问题需要解决,如交易性能、隐私保护等。解决这些问题的一种做法是重新开发新的区块链,但是这种做法会造成大量重复性工作,并且需要不断的发行新的数字资产。那么是否存在在不影响原有区块链工作的基础上,依托于原有区块链进行技术升级的解决方案,侧链就...

2018-04-09 21:53:14 955

原创 Java高级工程师薪资多少?如何才能成为一个优秀的高级程序员?

Java语言在2015年首次荣登编程语言热门榜的榜首,2018年再度登上榜首,下面不妨让我们来看看Java开发工程师的薪资待遇如何。以上是三张在猎聘网上随便找的三张截图,可见高级工程师年薪都是在30-60万。那么重点来了,怎样才算是一个高级工程师呢?你是否也能成为一个优秀的高级工程师?工程师必须掌握的知识点是那些?人人都想成为高薪架构师,为什么现在高...

2018-04-08 22:21:50 3139 1

阿里资深架构师私下峰会:了解这几点,人人皆是优秀架构师

前言:最近有好多人问我说:“George,怎样才能成为公司里的前线主力架构师,我现在在公式已经干了快五年了,现在还是一个默默无闻的程序员,我也通过很多种渠道来突破我现在瓶疾,但就是走不出来,技术也一直没有突破上去,我真的是没有办法了,通过朋友推荐介绍,说您这里可以解决我的技术瓶疾,所以我想请你帮我突破一下技术方面上的瓶疾。”你们是否有也有类似这样的问题——“天天写业务代码的程序员,怎么成...

2018-04-03 20:58:34 149

大型分布式网站架构技术总结

本文是学习大型分布式网站架构的技术总结。对架构一个高性能,高可用,可伸缩,可扩展的分布式网站进行了概要性描述,并给出一个架构参考。一部分为读书笔记,一部分是个人经验总结。对大型分布式网站架构有很好的参考价值。本次分享大纲如下大型网站的特点大型网站架构目标大型网站架构模式高性能架构高可用架构可伸缩...

2018-03-10 15:32:39 130

作为一位Java架构师需要点亮的那些技能树

这是从450家企业的招聘信息中统计而来,相对来说还是比较真实的,虽然有些公司的招聘要求万年不变,但还是可以大致反应企业的招聘要求的。尽管Struts2漏洞频出,但是由于政府、银行以及传统企业遗留项目大部分还是采用Struts2的,所以还是占有一定市场,但绝壁不会增长。新兴互联网公司,一般来说主要是Spring家族居多,spring、spring Mvc以及Spring Boot ...

2018-03-08 17:29:08 582

原创 在阿里“救了八年火”的架构师,大话系统架构优化项目

1.什么是系统优化系统优化一个方面是系统化的对IT系统或交易链上的每个环节进行分析并优化,另一个是对单一系统进行瓶颈点分析和调优。但优化的目标大致相同,无非是提高系统的响应速度、吞吐量、降低各层耦合,以应对灵活对边的市场。系统优化的3个层次:IT架构治理层、系统层、基础设施层。IT系统治理层:优化的目的不只是性能优化,还会有为适应业务架构变化而带来...

2018-03-07 21:08:05 181

基于.NET实现的DDD、CQRS与微服务架构的演示案例

最近出于工作需要,了解了一下微服务架构(Microservice Architecture,MSA)。我经过两周业余时间的努力,凭着自己对微服务架构的理解,从无到有,基于.NET打造了一个演示微服务架构的应用程序案例,并结合领域驱动设计(DDD)以及命令查询职责分离(CQRS)体系结构模式,对事件驱动的微服务系统架构进行了一些实战性的探索。现将自己的思考和收获整理成文,分享给大家。微服务架构...

2018-03-01 21:12:59 1520

在国外是如何用Spring Boot、Spring Cloud、Docker实现微服务系统架构

简介 这是一款概念性的应用程序,基于Spring Boot,Spring Cloud和Docker 简单演示了微服务的架构模式,顺便说一句,它还有一个非常漂亮整洁的用户界面。下面是它的界面演示: 功能服务PiggyMetrics被分解为三个核心微服务。这些服务都是围绕某些业务能力组织的可独立部署的应用程序。 账户服务 包含一般用户输入逻辑和验证:收入/费用项目,储蓄和帐户设置。...

2018-02-28 21:31:03 649

阿里P9资深架构师:支付宝和蚂蚁花呗的技术架构及双十一实践

每年“双11”都是一场电商盛会,消费者狂欢日。今年双11的意义尤为重大,它已经发展成为全世界电商和消费者都参与进来的盛宴。而对技术人员来说,双十一无疑已经成为一场大考,考量的角度是整体架构、基础中间件、运维工具、人员等。 一次成功的大促准备不光是针对活动本身对系统和架构做的优化措施,比如:流量控制,缓存策略,依赖管控,性能优化……更是与长时间的技术积累和打磨分不开。下面我将简单介绍支付宝...

2018-02-25 17:23:09 651 1

听听八年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架构

  微服务架构是互联网很热门的话题,是互联网技术发展的必然结果。它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。虽然微服务架构没有公认的技术标准和规范或者草案,但业界已经有一些很有影响力的开源微服务架构框架提供了微服务的关键思路,例如Dubbo和Spring Cloud。各大互联网公司也有自研的微服务框架,但其模式都于这二者相差不大。微服务主要的优...

2018-01-26 20:20:12 3695

原创 支付宝架构师眼里的高并发架构

前言高并发经常会发生在有大活跃用户量,用户高聚集的业务场景中,如:秒杀活动,定时领取红包等。为了让业务可以流畅的运行并且给用户一个好的交互体验,我们需要根据业务场景预估达到的并发量等因素,来设计适合自己业务场景的高并发处理方案。在电商相关产品开发的这些年,我有幸的遇到了并发下的各种坑,这一路摸爬滚打过来有着不少的血泪史,这里进行的总结,作为自己的归档记录,同时分享给大家。服务...

2018-01-24 19:38:44 563

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除