![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java,程序员,架构,互联网
文章平均质量分 77
训练营资料福利官
这个作者很懒,什么都没留下…
展开
-
十年资深架构师告诉Java程序员成为架构师必须要掌握的知识点
一、分布式架构分布式架构是 分布式计算技术的应用和工具,目前成熟的技术包括J2EE, CORBA和.NET(DCOM),这些技术牵扯的内容非常广,并不是一两句话就能说清楚的。因此想了解分布式知识点的可以关注我的VX公众号:“Java架构师学习”。或者进群:688583154获取免费的视频录像学习:Java工程化、高性能及分布式、深入浅出。性能调优、Spring,MyBatis,Ne原创 2018-01-03 15:34:40 · 4470 阅读 · 0 评论 -
“大话架构”Java程序员需要突破的技术要点
一、源码分析源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂。源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心。我认为是阅读源码的最核心驱动力。我见到绝大多数程序员,对学习的态度,基本上就是这几个层次(很偏激哦):1、只关注项目本身,不懂就baidu一下。2、除了做好项目,还会阅读和项目有关的技术书籍,看wikipedia。3、除了阅读和项...原创 2018-03-06 13:58:55 · 1305 阅读 · 0 评论 -
Java程序员如何让面试成功率提升到百分百
关注作者的微信公众号:“Java架构师学习”一个只分享Java架构干货的公众号一、概述面试,难还是不难?取决于面试者的底蕴(气场+技能)、心态和认知及沟通技巧。面试其实可以理解为一场聊天和谈判,在这过程中有心理、思想上的碰撞和博弈。其实你只需要搞清楚一个逻辑:“面试官为什么会这样问?他希望听到什么答案?”然后针对性的准备和回答就行了,无他。“你的优势是什么?”多年前我觉得这个问题很无聊,现在我经常...转载 2018-03-10 19:45:00 · 1590 阅读 · 0 评论 -
面向架构的腐化之谜
前言新技术层出不穷。过去十年时间里,我们经历了许多激动人心的新技术,包括那些新的框架、语言、平台、编程模型等等。这些新技术极大地改善了开发人员的工作环境,缩短了产品和项目的面世时间。然而作为在软件行业第一线工作多年的从业者,我们却不得不面对一个现实,那就是当初采用新技术的乐趣随着项目周期的增长而迅速减少。无论当初的选择多么光鲜,半年、一年之后,只要这个项目依然活跃,业务在扩张——越来越多的功能需要...转载 2018-03-01 15:41:44 · 276 阅读 · 0 评论 -
技术架构演进中的思考点
关注作者的微信公众号:“Java架构师学习”一个只分享Java架构干货的公众号网站技术架构为什么会演进我个人总结出来我们的技术架构演进的两种驱动力,驱动着我们为什么演进网站的技术架构:1. 内在驱动力:我们期望把当前的业务做得更好,开发更多新业务2. 外在驱动力:用户量的上升、用户种类的多样化这两种驱动力不是独立的,更多时候是并行的。我想淘宝就是两种驱动力并行驱动的结果。演进的原因很简单。但是在什...转载 2018-03-15 13:46:24 · 699 阅读 · 0 评论 -
阿里架构师的述说:支付宝和蚂蚁花呗的技术架构及双十一实践
每年“双11”都是一场电商盛会,消费者狂欢日。今年双11的意义尤为重大,它已经发展成为全世界电商和消费者都参与进来的盛宴。而对技术人员来说,双十一无疑已经成为一场大考,考量的角度是整体架构、基础中间件、运维工具、人员等。 一次成功的大促准备不光是针对活动本身对系统和架构做的优化措施,比如:流量控制,缓存策略,依赖管控,性能优化……更是与长时间的技术积累和打磨分不开。下面我将简单介绍支付宝的整体架构...转载 2018-02-28 21:32:07 · 1798 阅读 · 0 评论 -
优秀的 GitHub 项目合集
SJNetwork - 高度封装AFNetworking的网络框架作者:J_Knight_项目地址:hhttps://github.com/knightsj/SJNetwork使用对象封装并管理请求,支持批量读取和清空缓存,图片上传,后台下载(也支持断点续传),批量取消请求等功能。LSAnimator - 易于读写的多链式动画框架作者:Lision项目地址:github.com转载 2018-02-03 17:02:45 · 19067 阅读 · 0 评论 -
如何才能让Spring Boot与RabbitMQ结合实现延迟队列
顾名思义,延迟队列就是进入该队列的消息会被延迟消费的队列。而一般的队列,消息一旦入队了之后就会被消费者马上消费。延迟队列能做什么?延迟队列多用于需要延迟工作的场景。最常见的是以下两种场景:延迟消费。比如:用户生成订单之后,需要过一段时间校验订单的支付状态,如果订单仍未支付则需要及时地关闭订单。用户注册成功之后,需要过一段时间比如一周后校验用户的使用情况,如果发现用户活跃度较低,转载 2018-02-03 16:38:24 · 546 阅读 · 0 评论 -
日志: 分布式系统的核心
什么是日志?日志就是按照时间顺序追加的、完全有序的记录序列,其实就是一种特殊的文件格式,文件是一个字节数组,而这里日志是一个记录数据,只是相对于文件来说,这里每条记录都是按照时间的相对顺序排列的,可以说日志是最简单的一种存储模型,读取一般都是从左到右,例如消息队列,一般是线性写入log文件,消费者顺序从offset开始读取。由于日志本身固有的特性,记录从左向右开始顺序插入,也就意味着左边的原创 2018-02-03 16:33:22 · 597 阅读 · 0 评论 -
并发编程艺术——并发机制的底层原理实现
Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应该确保通过排他锁单独获得这个变量。volatile借助Java内存模型保证所有线程能够看到最新的值。(内存可见性)实现原理:将带有volatile变量操作的Java代码转换成汇编代码后,可以看到多了个lock前缀指令(X86平台CPU指令)。这个lock指令是关键,在多核处理器下实现两个重要操作:1.将当前处理器缓存...原创 2018-04-02 22:05:08 · 179 阅读 · 0 评论 -
详解Proxy代理模式的场景分析
代理模式是一个十分优秀的软件架构模式,许多应用都用到了代理模式。代理模式就是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不合适或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。这次主要讲解一下代理模式的实例,解决的问题部分。在java的框架中有一种框架就用到了动态代理模式,弹簧框架中的AOP技术,基于代理模式。下面我将以beforeAdvice...原创 2018-05-30 13:38:23 · 6175 阅读 · 3 评论 -
关于微服务你不得不知道的事——Spring Boot注解分析
Spring Boot注解分析1 注解1.1 定义Annotation(注解),用于为Java代码提供元数据。简单理解注解可以看做是一个个标签,用来标记代码。是一种应用于类、方法、参数、变量、构造器及包的一种特殊修饰符。1.2 注解的声明@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Docume...原创 2019-07-15 17:04:54 · 155 阅读 · 0 评论 -
亿级网站大数据量下的高并发同步讲解
对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序员头疼的问题,但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研究一下常见的并发和同步吧。 为了更好的理解并发和同步,我们需要先明白两个重要的概念:同步和异步1、同步和异步的区别和联系 所谓同步,可以理解为在执行完一个...转载 2019-04-12 17:26:34 · 883 阅读 · 0 评论 -
面试Java高级开发岗位,只需准备这几点,让面试官折服!
这几天,我密集面试了若干位Java后端的候选人,工作经验在5年左右。我的标准其实不复杂:1、能干活2、Java基础要好3、最好熟悉些分布式框架我也知道,不少候选人能力其实不差,但面试时没准备或不会说,这样的人可能在进团队干活后确实能达到期望,但可能就无法通过面试,但面试官总是只根据面试情况来判断。但现实情况是,大多数人可能面试前没准备,或准备方法不得当。要知道,我们平时干活更偏...原创 2019-02-17 20:03:40 · 826 阅读 · 0 评论 -
Kafka对Java程序员有多重要?连阿里都再用它处理亿万级数据统计
一.了解淘宝Kafka架构在ActiveMQ、RabbitMQ、RocketMQ、Kafka消息中间件之间,我们为什么要选择Kafka?下面详细介绍一下,2012年9月份我在支付宝做余额宝研发,2013年6月支付宝正式推出余额宝,2013年8月担任支付宝淘宝彩票项目经理带领兄弟们一起做研发,期间需要与淘宝和500万对接竞彩接口数据,业余时间与淘宝的同事沟通,了解天猫在电商节如何处理这些大数据的...原创 2019-02-15 19:29:05 · 496 阅读 · 0 评论 -
Zookeeper-watcher机制源码分析(一)
Watcher的基本流程ZooKeeper 的 Watcher 机制,总的来说可以分为三个过程:客户端注册 Watcher、服务器处理 Watcher 和客户端回调 Watcher客户端注册watcher有3种方式,getData、exists、getChildren;以如下代码为例来分析整个触发机制的原理 ZooKeeper zookeeper=new ZooKeeper(“1...原创 2018-07-27 18:55:02 · 364 阅读 · 0 评论 -
开发十年,只剩下这套Java开发体系了
蓦然回首自己做开发已经十年了,这十年中我获得了很多,技术能力,培训,出国,大公司的经历,还有很多很好的朋友。但再仔细一想,这十年中我至少浪费了五年时间,这五年可以足够让自己成长为一个优秀的程序员,可惜我错过了,我用这五年时间和很多程序员一样在困惑和迷茫中找不到出路!路其实一直都在那里,只是我们看不到而已!以前我一直被公司和技术牵着走,并不是自己在选择技术,而是不自觉地被推到了这个位置上...原创 2018-07-25 15:13:31 · 508 阅读 · 0 评论 -
精讲Redis持久化
前言在上一篇文章中,介绍了Redis内存模型,从这篇文章开始,将依次介绍Redis的高可用相关的知识-持久化,复制(及读写分离),哨兵,以及集群。一,Redis的高可用概述在介绍Redis的高可用之前,先说明一下在Redis的的语境中高可用的含义。我们知道,在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%,99.99%,99.999%等等)...原创 2018-06-15 17:53:50 · 256 阅读 · 0 评论 -
Java程序员进阶必知的分布式系统专业术语分析
1. I / O优化 1,增加缓存,减少磁盘的访问次数。2,优化磁盘的管理系统,设计最优的磁盘方式策略,以及磁盘的寻址策略,这是在底层操作系统层面考虑的。3,设计合理的磁盘存储数据块,以及访问这些数据库的策略,这是在应用层面考虑的。例如,我们可以给存放的数据设计索引,通过寻址索引来加快和减少磁盘的访问量,还可以采用异步和非阻塞的方式加快磁盘的访问速度。4,应用合理的RAID策略提升磁盘I / O。...原创 2018-05-30 17:39:48 · 593 阅读 · 0 评论 -
希望每一位2017殚精竭力的“Java程序猿”在2018宏图大业
殚精竭力2017年,做得越多觉得自己不会得越多,有种殚精竭力的感觉。这一年在技术上的思考和实践的比较多,也大胆的尝试做了跨角色跨职能的架构。也有点什么都想做的冲动,所以反而有些事情没做好、没做精。初悟编程这一年并没有花多少时间在写代码上面,倒是CodeReview的代码不少,有种跳出“不识庐山真面目,只缘身在此山中”,反而更注重代码的质量、可阅读性、可维护性。之前一直写Java,今年也写了两个月V转载 2018-01-19 14:42:05 · 282 阅读 · 0 评论 -
美团Java团队分享:如何实践支付通道自动化管理
随着支付业务量激增,支付团队不断壮大。为了满足日益增长的业务需求,大量的支付通道逐渐接入,但由于对接的各银行和第三方系统的稳定性参差不齐,支付通道故障时有发生,作为承接上下游的核心系统,要在一系列不稳定的系统之上建立一个可以给上游提供稳定服务的系统,仅依赖人工维护是远远不够的,所以建立一个完善的支付通道自动化管理系统势在必行。本文主要介绍美团点评技术团队支付通道自动化管理的演进之路。初级阶段监控系原创 2018-01-19 13:12:43 · 1184 阅读 · 0 评论 -
淘汰?不存在的!Java程序员如何避免职业危机
Java行业在当下人才是供不应求,但是作为Java程序员的你也得居安思危,你要知道你身处的是一个高速变化的行业,稍不留意你的位置还是存在被取代的风险,那么对于一个Java程序员来说,要如何避免被淘汰呢?1. 时刻关注Java行业动态每一个Java程序员该做的,除了日常的工作外,要花点时间在Java行业动态上,不要轻易相信那些对Java不好的言论,比如“Java将死”,从而产生极原创 2018-01-07 21:58:32 · 1645 阅读 · 0 评论 -
微服务架构要掌握的知识点都在这里
本文把微服务架构分为四大模块,围绕微服务的通用模式,集合微服务必须要掌握的知识点,使微服务的开发更加方便、快捷,让微服务应用更加稳定、可用。微框架与微服务之间的关系热部署实战核心组件:Starter、Actuator、AutoConfiguration、Cli集成Mybaits实现多数据源路由实战、集成Dubbo实战、集成Redis缓存实原创 2018-01-07 19:16:26 · 3131 阅读 · 0 评论 -
为什么“他”能成为一名Java架构师?“我”只能当一名基层码农
成为架构师,需要经验和眼界 老码农分为两种:游击队和板凳王 坐穿板凳有利于积累经验,而不利于开拓眼界游遍四海有利于开拓眼界,而不利于积累经验码农的生活是高压的,唯有热情可以驱使你一边吃着苹果,一边又去摘梨 然而,又有多少热情没有随时间而冷却呢? 自古以来,金字塔结构(人群分个三六九等、高中低三档)在人类社会的各行各业中普遍存在,这是客观规律。恐怕再过千万原创 2018-01-05 10:52:41 · 1220 阅读 · 0 评论 -
在阿里架构师眼中Dubbo的过去,现在以及未来
基本介绍 Dubbo介绍 Open sourced by alibaba at 2011Production-tested and proven AT ScaleA high performance RPC FrameworkBeyond RPC:Rich features for micro-services当前情况 1、社区活跃 14k+starts原创 2018-01-05 10:23:48 · 12659 阅读 · 0 评论 -
突破瓶颈——十年Java架构师教你如何正确看待焦虑和迷茫
程序员一旦焦虑或者迷茫以后,就会对成就感的获得大大降低。长久这样就会导致动力不足。但是现实产生焦虑的原因经过前面的分析,也是客观存在的。那我们应该如何面对呢?在技术的更迭变化过程中,如果一味的跟新技术,那你是否想过,追随新技术的到底是为了什么?是为了跳槽或者转岗?还是为了提高薪资实现人生理想和自我价值?这两个理由都是正确的,需要注意的一点就是不要盲目追随新技术。一味地盲目追随只会导致最终沦原创 2018-01-04 13:27:50 · 589 阅读 · 1 评论 -
京东架构师的showtime京东个性化推荐系统实战
推荐系统核心任务是排序,从线上服务角度看,就是将数据从给定集合中数据选择出来,选出后根据一定规则策略方法进行排序。 线上服务要根据一定规则进行架构设计,架构设计是什么?每一次权衡取舍都是设计,设计需要理解需求、深入理解需求基础上做权衡取舍。复杂系统架构需要需求方与研发人员反复沟通探讨。这需要技术领导者能理解并鼓励这种行为,才能有所谓技术驱动,否则光喊口号不原创 2018-01-21 16:01:37 · 2467 阅读 · 0 评论 -
大部分Java程序员都不知道的Spring5新特性与增强
Spring FrameWork 5.0新的功能JDK 8+和Java EE7+以上版本整个框架的代码基于java8通过使用泛型等特性提高可读性对java8提高直接的代码支撑运行时兼容JDK9Java EE 7API需要Spring相关的模块支持运行时兼容Java EE8 API取消的包,类和方法包 beans.factory.access包 dbc.support.nativej原创 2018-01-04 11:11:11 · 10236 阅读 · 0 评论 -
从“思考”的角度来看如何成为一名优质的Java架构师
导读:架构师应不应该写代码为什么别人的系统总是那么烂成为架构师最困难的门槛是什么?如何更高效的学习?1.架构师应不应该写代码合格的程序员对于明确分配的任务会完成的很好,但是大部分情况下“架构”这个词意味着架构师并不会涉及太多细节,架构图和代码实现之间总还是有些距离,你无法保证所有人都会正确的理解你的设计,或者是程序员写代码时遇到障碍时会立刻想原创 2018-01-21 15:04:59 · 387 阅读 · 0 评论 -
分享我在阿里工作十年接触过Java框架设计模式
一、前言说起来设计模式,大家应该都耳熟能详,设计模式代表了软件设计的最佳实践,是经过不断总结提炼出来的代码设计经验的分类总结,这些模式或者可以简化代码,或者可以是代码逻辑开起来清晰,或者对功能扩展很方便…。设计模式按照使用场景可以分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)、行为型模式(Behavioral原创 2018-01-16 16:27:20 · 8640 阅读 · 0 评论 -
多研究些架构,少谈些框架——一名阿里架构师的微服务笔记
微服务架构和SOA区别微服务现在辣么火,业界流行的对比的却都是所谓的Monolithic单体应用,而大量的系统在十几年前都是已经是分布式系统了,那么微服务作为新的理念和原来的分布式系统,或者说SOA(面向服务架构)是什么区别呢?我们先看相同点:需要Registry,实现动态的服务注册发现机制;需要考虑分布式下面的事务一致性,CAP原则下,两段式提交不能保转载 2018-01-24 19:55:29 · 489 阅读 · 0 评论 -
图解大型互联网网站系统架构的演进过程
前言一个成熟的大型网站(如淘宝,京东等)的系统架构并不是开始设计就具备完整的高性能,高可用,安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式,技术架构,设计思想也发生了很大的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随业务扩展而完善出来的,并不是一蹴而就;不同业务特征的系统,会有各自的侧重点,例如淘宝,要解决海量的商品信息...原创 2018-01-10 20:36:43 · 10033 阅读 · 3 评论 -
SpringCloud分布式开发五大神兽
SpringCloud分布式开发五大神兽服务发现——Netflix Eureka客服端负载均衡——Netflix Ribbon断路器——Netflix Hystrix服务网关——Netflix Zuul分布式配置——Spring Cloud ConfigEureka 一个RESTful服务,用来定位运行在AWS地区(Reg原创 2018-01-26 19:37:32 · 2638 阅读 · 0 评论 -
一名即将退休的架构师告诉Java程序员们如何投资自己
我们终其一生的追求,是想要遇见更好的自己,遇见更好的人生,想要更多的自由,过上更舒适的日子,而这一切,都离不开自己的努力创造,离不开自己的“投资”。当你感到自己对未来感到迷茫时,请投资自己,也许,在当是时,这个投资的作用并不明显,但,时间会告诉你,现在的你你做了一个多么明智的选择。你,并没有辜负光阴。一、自己的身体身体好是人生的战略性力量!为什么那些大人物身体都很强壮?因为人生原创 2018-01-09 17:45:30 · 1846 阅读 · 1 评论 -
Java架构师最关键三个思维转变方式
很久没有写思维的文章,特别是在写完思维的逻辑和思维的框架后,对于理论层面的自己也不太想写,但是对于实际案例层面的写起来又比较花时间,而且案例基本在IT专业领域不是所有人都能看明白。1.从紧耦合到松耦合(解耦的最终目的是灵活组装和匹配)在软件设计开发里面,我们经常会谈到松耦合和解耦,其原因就是今年保证各个模块充分自治,受外部其它模块影响最小。而在SOA架构里面如果谈到松耦合,其核心的原创 2018-02-01 22:07:45 · 523 阅读 · 0 评论 -
详细剖析Oracle、SOA、OSB结构原理
Oracle-SOA-OSB功能分析请点击此处输入图片描述今天介绍下Oracle OSB的基础核心概念和核心功能分析,在前面两篇文章里面重点介绍了Oralce官方在线文档中的入门介绍和关键功能Task任务文档说明。今天篇核心原理介绍。对于OSB核心仍然是代理服务,业务服务和中间的业务处理管道三个部分的内容。代理服务(Proxy Service)包括了处理请求原创 2018-02-01 21:29:56 · 5465 阅读 · 1 评论 -
Java十年“老兵”浅谈源码的七大设计模式
一个专业的程序员,总是把代码的清晰性,兼容性,可移植性放在很重要的位置。他们总是通过定义大量的宏,来增强代码的清晰度和可读性,而又不增加编译后的代码长度和代码的运行效率;他们总是在编码的同时,就考虑到了以后的代码维护和升级。甚至,只要分析百分之一的代码后,你就会深刻地体会到,什么样的代码才是一个专业的程序员写的,什么样的代码是一个业余爱好者写的。而这一点是任何没有真正分析过标准代码的人都无法体会到...原创 2018-01-17 16:12:38 · 475 阅读 · 0 评论