架构
文章平均质量分 89
训练营资料福利官
这个作者很懒,什么都没留下…
展开
-
一次跨行取款失败,而引发对分布式事物的思考
场景不知道大家有没有遇到这样的情况,就是去自动取款机取钱的时候,比如说你去取1000块钱,这个时候系统会先帮你把1000块钱扣除,然后自动取款机再把钱吐出来。但是如果取款机出现问题,会发现钱被扣了,但是钱没有取出来。我第一次遇到这个问题的时候很担心,当时跨行取取了3000块钱,短信提醒我钱已经被扣了,但是钱没取出来,于是准备去找柜台帮忙处理的时候,手机上又收到一笔交易提醒,提示钱被退回来了!...原创 2019-09-27 14:22:18 · 228 阅读 · 0 评论 -
「阿里面试系列」搞懂并发编程,轻松应对80%的面试场景
关注我的架构技术公众号:“架构师修炼宝典”一周出产1-2篇技术文章,希望在你的架构技术路上有我的点滴陪伴!作为一个合格的Java程序员,必须要对并发编程有一个深层次的了解,在很多互联网企业都会重点考察这一块。可能很多工作3年以上的Java程序员对于这一领域几乎没有太多研究。所以在接下来内容中,我会将并发编程整个领域由浅到深做非常全面的分析。内容导航从操作系统的发展了解进程、线程模型...原创 2018-12-05 12:20:18 · 282 阅读 · 0 评论 -
阿里架构师技术分享:分布式/高性能/高并发/微服务/性能优化
没有没免费的Java架构师进阶资料领取?(文末提供获取方法)阿里架构师技术分享:分布式任务调度系统的实现 阿里架构师技术分享:承载千万级并发的分布式架构设计思想 阿里架构师技术分享:并发编程之手写阻塞式线程安全队列 阿里架构师技术分享:面试必问之mysql索引机制探秘 阿里架构师技术分享:ElasticSearch学习方法论 阿里架构师技术分享:深入剖析架构师必读的Tomcat8...原创 2018-11-28 16:48:59 · 1488 阅读 · 0 评论 -
一个老程序员是如何手写Spring MVC的?
人见人爱的Spring已然不仅仅只是一个框架了。如今,Spring已然成为了一个生态。但深入了解Spring的却寥寥无几。这里,我带大家一起来看看,我是如何手写Spring的。我将结合对Spring十多年的研究经验,用不到400行代码来描述SpringIOC、DI、MVC的精华设计思想,并保证基本功能完整。首先,我们先来介绍一下Spring的三个阶段,配置阶段、初始化阶段和运行阶段(如图):...原创 2018-11-26 16:22:47 · 167 阅读 · 0 评论 -
作为程序员,你“怕老”吗?
行文之前,先问大家几个问题:1、你开始逐渐担忧自己的年纪?2、你开始觉得加班熬不过小年轻?3、你开始因未知新兴技术而慌张?4、你开始跳不动槽?如果以上的回答都“是”,那么你确实陷入“怕老”行列了。“青春饭”这个词,程序员肯定不陌生,因为上了几年班,做到一定年纪,再想突破就会明显发现力不从心,开始陷入“怕老”的焦虑。这种焦虑无关你的年纪,刚进入行业两三年,如果水平还和...原创 2018-11-23 21:54:32 · 260 阅读 · 0 评论 -
一文归纳分布式架构的那些事!
进入十一月,最火热的话题与期待的日子自然是双十一狂欢购物节了,作为程序员的你除了要清空自己的购物车之外,最关心的是不是双十一架构技术是如何承受亿级用户流量的冲击,又是如何在分布式架构中实现单点登陆,形成支持高并发,高可用的分布式架构技术呢?下面小编就来帮你总结如何从0到1学习分布式架构技术,如何实现从小白到架构师的蜕变!!一、初识分布式架构:1、初识分布式架构及意义2、如何把应用从单机...原创 2018-11-05 20:02:29 · 245 阅读 · 0 评论 -
Netty浅析
Netty是JBoss出品的高效的Java NIO开发框架。本文将主要分析Netty实现方面的东西,由于精力有限,本人并没有对其源码做了极细致的研 究。如果下面的内容有错误或不严谨的地方,也请指正和谅解。对于Netty使用者来说,Netty提供了几个典型的example,并有详尽的API doc和guide doc,本文的一些内容及图示也来自于Netty的文档,特此致谢。1、总体结构先...原创 2018-09-29 18:36:52 · 212 阅读 · 0 评论 -
阿里P8架构师深度概述分布式架构
简介作为一名架构师,我们要专业,要能看懂代码,及时光着臂膀去机房,也能独挡一面!及时同事搞不定问题,或者撂挑子,你也能给老大一个坚定的眼神:不怕,有我在!还能在会议室上滔滔不绝,如若无人,让不懂技术的妹子看你时眼神迷离,就好想落霞与孤鹜齐飞!分布式架构是一个非常复杂的体系,任何技术都不是孤立的存在,任何技术都无法适应所有场景。作为一名分布式系统架构或者资深研发人员,我们必须尽可能多的学习与...原创 2018-09-20 19:05:24 · 959 阅读 · 0 评论 -
一文让你彻底理解 Java NIO 核心组件
背景知识同步、异步、阻塞、非阻塞首先,这几个概念非常容易搞混淆,但NIO中又有涉及,所以总结一下[1]。同步:API调用返回时调用者就知道操作的结果如何了(实际读取/写入了多少字节)。 异步:相对于同步,API调用返回时调用者不知道操作的结果,后面才会回调通知结果。 阻塞:当无数据可读,或者不能写入所有数据时,挂起当前线程等待。 非阻塞:读取时,可以读多少数据就读多少然后返回,写...原创 2018-08-21 16:57:35 · 1462 阅读 · 0 评论 -
Zookeeper-watcher机制源码分析(二)
在前一篇文章中Zookeeper-watcher机制源码分析(一)说过Watcher的基本流程,在此文中详细剖析服务端几首请求处理流程。服务端有一个NettyServerCnxn类,用来处理客户端发送过来的请求 NettyServerCnxn 1 2 3 4 5 6 7 8 9 10 11 ...原创 2018-08-07 19:05:04 · 336 阅读 · 0 评论 -
Java架构技术怎么学,做到年薪50W会这几点就够了
想要做到年薪50万,首先你自己必须是高水平的程序员!能年薪50万的程序员至少自身有以下特征:工作年限长,经验丰富他们的共同特点是:10 年以上的工作经验,在大公司当过螺丝钉,也在创业公司做过技术 leader,有过一两段不算成功的创业经历。这样的程序员无论是去 BAT 还是去创业公司,都能拿到 50 万年薪以上的 offer。虽然前面说技术水平不是决定薪水的唯一因素,但如果技术...原创 2018-08-14 19:50:51 · 870 阅读 · 0 评论 -
【阿里面试系列】Java线程的应用及挑战
文章简介上一篇文章【「阿里面试系列」搞懂并发编程,轻松应对80%的面试场景】我们了解了进程和线程的发展历史、线程的生命周期、线程的优势和使用场景,这一篇,我们从Java层面更进一步了解线程的使用。关注我的技术公众号【架构师修炼宝典】一周出产1-2篇技术文章。Q群725219329分享并发编程,分布式,微服务架构,性能优化,源码,设计模式,高并发,高可用,Spring,Netty,tomcat,...原创 2018-12-07 15:15:31 · 260 阅读 · 0 评论 -
「阿里面试系列」之前有人问过我一个这样的面试题
文章简介很多人对的Thread.join的作用以及实现了解得很少,毕竟这个API我们很少使用。这篇文章仍然会结合使用及原理进行深度分析内容导航的Thread.join的作用 的Thread.join的实现原理 什么时候会使用的Thread.join扩展阅读:【阿里面试系列】搞懂并发编程,轻松应对80%的面试场景【阿里面试系列】的Java的线程的应用及挑战 「阿里面试系...原创 2018-12-17 21:25:09 · 251 阅读 · 0 评论 -
阿里P7工作总结:Spring MVC的工作原理,看完受益匪浅
这篇文章将深入探讨Spring框架的一部分——Spring Web MVC的强大功能及其内部工作原理。这篇文章的源代码可以在GitHub上找到。项目安装在本文中,我们将使用最新、最好的Spring Framework 5。我们将重点介绍Spring的经典Web堆栈,该堆栈从框架的第一个版本中就崭露头角,并且现在依然是用Spring构建Web应用程序的主要方式。对于初学者来说,为...转载 2019-06-27 16:55:38 · 361 阅读 · 0 评论 -
关于Spring Boot你不得不知道的事
1 Spring Boot官网[2.1.5 CURRENT GA] 1.1 Pivotal Wiki Pivotal Software, Inc. is a software and services company based in San Francisco and Palo Alto, California, with several other offices. Divisio...原创 2019-06-15 14:28:15 · 226 阅读 · 0 评论 -
Java面试题中的Redis大合集,所有你想找的都在这里!
Redis 是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库、缓存服务或消息服务使用。``` Redis 支持多种数据结构,包括字符串、哈希表、链表、集合、有序集合、位图、Hyperloglogs 等。 Redis 具备 LRU 淘汰、事务实现、以及不同级别的硬盘持久化等能力,并且支持副本集和通过 Redis Sentinel 实现的高可用方案,同时还支持通过 Redis ...原创 2019-04-14 14:53:25 · 322 阅读 · 0 评论 -
Java进阶——带你入门分布式中的Nginx
如何实现服务器之间的协同功能呢?通过Nginx提供的反向代理和负载均衡功能,可以合理的完成业务的分配,提高网站的处理能力;同时利用缓存功能,还可以将不需要实时更新的动态页面输出结果,转化为静态网页形成缓存,从而提高网站的响应速度。代理和反向代理代理(正向代理,目标服务器不知道谁在访问)位于客户端和目标服务器之间,起到一个中转的作用。其实就是客户端想访问目标服务器...转载 2019-04-14 14:15:26 · 287 阅读 · 0 评论 -
工作5年的Java程序员,才学会阅读源码,可悲吗?
最近一位5年开发经验的群友与我聊天他说:最近慢慢的尝试去看spring的源码,学习spring,以前都只是会用就行了,但是越是到后面,发现只懂怎么用还不够,在面试的时候经常被问到一些开源框架的源码问题,即使在网上各种百度,当时回答出来也会是很皮毛,不痛不痒的解答。对于目前碰到的瓶颈,他不知道怎么办。 我相信,绝不仅仅只有他一个人遇到这样的瓶颈,中国上百万的Java程序员中,大部...原创 2019-02-14 21:25:13 · 1582 阅读 · 0 评论 -
实现RabbitMQ 延时消息
RabbitMQ 延时消息的实现(上)我们在实际业务中有一些需要延时发送消息的场景,例如:家里有一台智能热水器,需要在30分钟后启动 未付款的订单,15分钟后关闭注意这里的场景是延时,不是定时。当然,解决了延时,定时就很简单了(定时=当前时刻+间隔时间)。由于RabbitMQ本身不支持延时队列(延时消息),所以要通过其他方式来实现。总的来说有三种:先存储到数据库,用定时任务扫描...原创 2019-01-23 13:58:24 · 6216 阅读 · 0 评论 -
月薪20K的Java程序员很厉害?八年程序猿却说:我被裁只用了5分钟
场景一之前,一位在我交流群里的群友找我诉苦:工作8年,从事Java开发相关的工作6年,最近(18年7月)失业快4个月,还是没有找到合适的工作。 感觉自己已经废掉了,一直在金融公司从事Java开发工作,之前薪资18K ,深圳。更多的时候,工作属于软件项目管理,比如以下:1.需求分析,把客户发过来的软件需求,分类分解,分给对应模块人员2.分派任务,测试测出bug,然后自己做...原创 2019-01-24 17:56:17 · 1495 阅读 · 0 评论 -
「阿里面试系列」Synchronized底层原理
文章简介synchronized想必大家都不陌生,用来解决线程安全问题的利器。同时也是Java高级程序员面试比较常见的面试题。这篇文正会带大家彻底了解synchronized的实现。内容导航什么时候需要用Synchronized synchronized的使用 synchronized的实现原理分析什么时候需要用Synchronized想必大家对synchronized都不陌...原创 2018-12-23 19:20:32 · 604 阅读 · 0 评论 -
「阿里面试系列」分析Synchronized原理,让面试官仰望
文章简介前面我有文章介绍了同步的基本原理,这篇文章我会从JVM源码分析同步的实现逻辑,希望让大家有一个更加深度的认识。扩展阅读:【阿里面试系列】搞懂并发编程,轻松应对80%的面试场景【阿里面试系列】的Java的线程的应用及挑战 「阿里面试系列」面试加分项,从JVM层面了解线程的启动和停止 「阿里面试系列」之前有人问过我一个这样的面试题内容导航从同步的字节码说起...原创 2018-12-17 21:26:14 · 660 阅读 · 0 评论 -
Java开发必读--初识微服务一定要阅读这篇文章
原文转自一线互联网资深架构师,微服务布道师小马哥的原创文章,始发与小马哥公众号。微服务是什么?微服务是一种细粒度(Fine-Grain)的SOA或许在座的高朋了解过其概念。个人认为,与其说微服务是一种技术,不如将其定义为一种架构,而架构则是“技”的实现与“术”的策略相辅相成。“术”的策略需要分析使用场景,进行合理地划分业务边界,实现“业以类聚”,然而“技”的实现则通过特定的技术在实现业...原创 2018-07-24 19:14:02 · 514 阅读 · 0 评论 -
Spring面试底层原理的那些问题,你是不是真的懂Spring?
1、什么是 Spring 框架?Spring 框架有哪些主要模块?Spring 框架是一个为 Java 应用程序的开发提供了综合、广泛的基础性支持的 Java 平台。Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring 框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成 Spring 框架,不必担心 Spring 是如何在后台进行工...原创 2018-06-25 17:23:46 · 30748 阅读 · 0 评论 -
数据库高可用实战案例:架构优化
说到高可用,看官们会想到很多方案,也许是自亲身经历过系统从单机变成高可用的痛苦过程,也许有的看官只是在自己的虚机上搭建过测试的玩具。今天本篇用我自己的真实经历给大家讲述,不管怎么样实战和测试玩耍还是很大的区别的!可能你觉得搭建一套高可用方案很简单,配置配置就OK了,但在真正的复杂系统中一切就没有那么轻松了!文章主要讲述升级并搭建AlwaysOn的高可用的过程,以实施的思路为主。文中并没有搭建集群的...原创 2018-06-09 14:18:25 · 466 阅读 · 0 评论 -
阿里架构师的成长之路,Java开发者的技术梦要如何实现
写在开篇:不管是开发、测试、运维,每个技术人员心里都有一个成为技术大牛的梦,毕竟“梦想总是要有的,万一实现了呢”!正是对技术梦的追求,促使我们不断地努力和提升自己。然而“梦想是美好的,现实却是残酷的”,很多同学在实际工作后就会发现,梦想是成为大牛,但做的事情看起来跟大牛都不沾边,例如,程序员说“天天写业务代码还加班,如何才能成为技术大牛”,测试说“每天都有执行不完的测试用例”,运维说“扛机器接网线...原创 2018-04-13 22:46:34 · 2569 阅读 · 0 评论 -
浅析常用软件架构中的三种架构模型
常用的软件架构模型可以归类为三种架构模型:3/N层架构、“框架+插件”架构、地域分布式架构。一.三种架构模型1.3/N层架构这是经典的多层架构模型,对于稍微复杂一点或特别复杂的系统,不使用分层架构是很难想象的。下图是经典的3层架构:如今,凡是个程序员都能侃侃而谈3/N层架构,这确实是解决系统复杂性的一种主流模式,但是,只要采用了3/N层架构是不是就一定能解决系统的复杂性了?不一定,关键在于你在你的...原创 2018-04-13 15:48:01 · 1101 阅读 · 0 评论 -
Java程序员如何运用所掌握的技术构建一个完整的业务架构
1、通用架构概述创业之初,我们往往会为了快速迭代出产品,而选择最简单的技术架构,比如LAMP架构,SSH三层架构。这些架构可以适应初期业务的快速发展,但是,随着业务变得越来越复杂,我们会发现这些架构越来越难支撑业务的发展,出现在一个类中写好几千行代码,一个方法中到处都是if else语句,如果中间遇到主程序猿离职,后面介入的程序猿几乎无法理解这些代码,到最后,产品越来越难迭代,只能推翻重做。如果我...原创 2018-04-18 23:26:34 · 448 阅读 · 0 评论 -
Java进阶必知:从分布式到微服务,深挖Service Mesh
自从几十年前第一次引入分布式系统这个概念以来,出现了很多原来根本想象不到的分布式系统使用案例,但同时也引入了各种各样的新问题。当这些系统还是比较少比较简单的时候,工程师可以通过减少远程交互的次数来解决复杂性问题。处理分布式问题最安全的方法是尽可能避免远程交互,虽然这可能意味着要在多个系统上存放重复的逻辑和数据。行业上的需求推动着我们前进的步伐,分布式系统的组成从几个大型的中央电脑发展成为数以千计的...原创 2018-04-18 19:26:10 · 2868 阅读 · 0 评论 -
分享我如何在7年时间里成长为阿里Java架构师(附学习路线图)
导读:架构师应不应该写代码为什么别人的系统总是那么烂成为架构师最困难的门槛是什么?如何更高效的学习?1.架构师应不应该写代码合格的程序员对于明确分配的任务会完成的很好,但是大部分情况下“架构”这个词意味着架构师并不会涉及太多细节,架构图和代码实现之间总还是有些距离,你无法保证所有人都会正确的理解你的设计,或者是程序员写代码时遇到障碍时会立刻想出足够优雅的解决方案。在我看来,写代码的架构师更像是在做...原创 2018-04-10 21:10:17 · 284 阅读 · 0 评论 -
Java开发者的技术梦要如何实现
写在开篇不管是开发,测试,运维,每个技术人员心里都有一个成为技术大牛的梦,毕竟“梦想总是要有的,万一实现了呢!”正是对技术梦的追求,促使我们不断地努力和提升自己。然而“梦想是美好的,现实却是残酷的”,很多同学在实际工作后就会发现,梦想是成为大牛,但做的事情看起来跟大牛都不沾边,例如,程序员说“天天写业务代码还加班,如何才能成为技术大牛”,测试说 '每天都有执行不完的测试用例',运维说 '扛机器接网...原创 2018-04-15 16:23:58 · 359 阅读 · 0 评论 -
并发编程艺术——并发机制的底层原理实现
Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应该确保通过排他锁单独获得这个变量。volatile借助Java内存模型保证所有线程能够看到最新的值。(内存可见性)实现原理:将带有volatile变量操作的Java代码转换成汇编代码后,可以看到多了个lock前缀指令(X86平台CPU指令)。这个lock指令是关键,在多核处理器下实现两个重要操作:1.将当前处理器缓存...原创 2018-04-02 22:05:08 · 187 阅读 · 0 评论 -
阿里架构师的工作总结:Spring Cloud在架构演进中起到的作用
Spring Cloud作为一套微服务治理的框架,几乎考虑到了微服务治理的方方面面,本篇主要解答这两个问题:Spring Cloud在微服务的架构中都做了哪些事情?Spring Cloud提供的这些功能对微服务的架构提供了怎样的便利?关注作者的微信公众号:“Java架构师学习”一个只分享Java架构干货的公众号传统架构发展史单体架构单体架构在小微企业比较常见,典型代表就是一个应用、一个数据库、一个...转载 2018-03-12 16:08:30 · 359 阅读 · 0 评论 -
微服务开发中的数据架构设计
本文来自作者 陈伟荣 在 GitChat 分享【微服务开发中的数据架构设计】前言微服务是当前非常流行的技术框架,通过服务的小型化、原子化以及分布式架构的弹性伸缩和高可用性,可以实现业务之间的松耦合、业务的灵活调整组合以及系统的高可用性。为业务创新和业务持续提供了一个良好的基础平台。本文分享在这种技术架构下的数据架构的设计思想以及设计要点,本文包括下面若干内容。微服务技术框架中的多层数据架构设计数据...转载 2018-03-18 14:04:24 · 1792 阅读 · 0 评论 -
五分钟阅读阿里巴巴架构师如何使用微服务框架搭建电商平台全过程
关注作者的微信公众号:“Java架构师学习”一个只分享Java架构干货的公众号本文你将学到什么?本文将以原理+实战的方式,首先对“微服务”相关的概念进行知识点扫盲,然后开始手把手教你搭建这一整套的微服务系统。这套微服务框架能干啥?这套系统搭建完之后,那可就厉害了:微服务架构 。你的整个应用程序将会被拆分成一个个功能独立的子系统,独立运行,系统与系统之间通过RPC接口通信。这样这些系统之间的耦合度大...转载 2018-03-10 17:57:22 · 665 阅读 · 0 评论 -
阿里,百度,腾讯等一线互联网公司中,Java开发的招聘标准
金三银四的跳槽热潮即将过去,在这两个月的跳槽的旺季中,作为互联网行业的三大巨头,百度、阿里巴巴、腾讯对于互联网人才有很大的吸引力,他们的员工也是众多互联网同行觊觎的资深工程师、管理者人选。下面我总结了进入这三家公司你所需掌握的技能:阿里巴巴篇扎实的计算机专业基础,包括算法和数据结构,操作系统,计算机网络,计算机体系结构,数据库等具有扎实的Java编程基础,理解IO、多线程等基础框架熟练使用Linu...原创 2018-04-20 15:16:31 · 3539 阅读 · 1 评论 -
把项目迁移到Kubernetes上的5个小技巧
我们将在本文中提供5个诀窍帮你将项目迁移到Kubernetes上,这些诀窍来源于过去12个月中OpenFaas社区的经验。下文的内容与Kubernetes 1.8兼容,并且已经应用于OpenFaaS - Serverless Functions Made Simple的实践中。免责声明因为Kubernetes 的API更新的特别频繁,请参考官方文档获得最新信息。1. 将所有的内容都放进Docker...原创 2018-05-03 21:36:42 · 1406 阅读 · 1 评论 -
Java 11新功能抢先了解
目前Oracle已经发布了Java Development Kit 10,下个版本JDK 11也即将发布。本文介绍Java 11的新功能。根据Oracle新出台的每6个月发布一次Java SE的节奏,Java 11将于2018年9月发布,迄今为止Oracle已经宣布了好几个新功能。此外,Java 11还将删除一些功能,其中包括删除CORBA和Java EE(最近更名为Jakarta EE)模块,以...原创 2018-06-01 19:30:30 · 3102 阅读 · 0 评论 -
互联网Java架构系统化学习路线
网络应用,最常见的研发语言是Java的和PHP。后端服务,最常见的研发语言是Java的和C / C ++。大数据,最常见的研发语言是Java的和Python的。可以说,Java的是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java的技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。有不少朋友问,除了掌握Java的语法,还要系统学习哪些的Java相关的技术,...原创 2018-06-07 16:16:53 · 1695 阅读 · 0 评论 -
精讲Redis内存模型
前言Redis的是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis的是实现网站高并发不可或缺的一部分。我们使用的Redis时,会接触的Redis的5种对象类型(字符串,哈希,列表,集合,有序集合),丰富的类型是Redis的相对于的Memcached等的一大优势。在了解的Redis的5种对象类型的用法和特点的基础上,进一步了解的Redis的内存模型,对Redis...原创 2018-06-13 15:59:54 · 463 阅读 · 1 评论