- 博客(27)
- 收藏
- 关注
原创 跳槽面试必备:深入理解 Java 多线程核心知识
多线程相对于其他 Java 知识点来讲,有一定的学习门槛,并且了解起来比较费劲。在平时工作中如若使用不当会出现数据错乱、执行效率低(还不如单线程去运行)或者死锁程序挂掉等等问题,所以掌握了解多线程至关重要。本文从基础概念开始到最后的并发模型由浅入深,讲解下线程方面的知识。概念梳理本节我将带大家了解多线程中几大基础概念。并发与并行并行,表示两个线程同时做事情。并发,表示一会做这个事情,一会做另一个事...
2018-05-15 19:15:46
267
原创 看京东架构师如何解决,数据库读写分离与事务纠缠的坑
本篇文章讨论在数据库读写分离时使用事务的那些坑:1. 在读写分离时会不会造成事务主从切换错误一个线程在Serivcie时Select时选择的是从库,DynamicDataSourceHolder中ThreadLocal对应线程存储的是slave,然后调用Manager时进入事务,事务使用默认的transacatinManager关联的dataSource,而此时会不会获取到的是slave?2. 事...
2018-05-14 15:51:42
1029
原创 资深架构师的经验分享——软件项目开发和决策
这篇文章是关于什么的参与项目决策的人必须意识到他们的决定对项目的成功和成本以及时间和金钱的影响。对于我20多年的软件开发经验和10多年的咨询工作,我作为架构师或开发人员参与了许多项目 - 其中大多数成功,有些失败,但每个项目(无论成功与否)都涉及好的和不好的决策由各种人制作。本文的目的是通过提倡根据我的经验做出的决定以及避免错误的决策来为项目成功奠定基础。总的来说,我拥有C ++,Java,C#和...
2018-05-12 17:04:06
1261
原创 可不可以设计出一个完美的分布式系统?
1. 分布式系统相关概念1.1 模型1.1.1 节点节点是一个可以独立按照分布式协议完成一组逻辑的程序个体,工程中往往指进程。1.1.2 通信节点之间完全独立互相隔离,通信唯一方式是通过不可靠的网络。1.1.3 存储节点可以通过将数据写入与节点在同一台机器的本地存储设备保存数据1.1.4 异常(1) 机器down机大型集群每日down机发生概率0.1%,后果是该机器节点不能工作、重启后失去所有内存...
2018-05-11 19:12:39
982
原创 阿里架构师探讨服务注册和发现
在本文中,我们将探讨服务注册和发现的概念,这种机制使微服务能够在不知道确切位置(通常是URL)的情况下使用其他微服务。我们为什么需要这个?如果没有这一点,服务的地点将相互耦合,造成难以维护的系统。基本问题是显而易见的:服务如何知道他们需要使用的服务的IP和端口?在一个简单的架构中,静态配置工作得很好。每项服务都部署在同一地点,并且很少发生变化。但微服务体系结构并非如此。微服务的目标之一是使开发团队...
2018-05-11 14:32:33
699
原创 用Java这么多年,这些秘密你知道吗?
摘要: 如果您是Java开发人员,那么这些问题可能会让您在某个时刻头痛不已。继续阅读以了解如何处理这5个棘手的秘密。Java是一个拥有悠久历史的大型语言。在二十多年的时间里,语言中蕴含着许多功能,其中一些功能对其改进有很大贡献,另一些功能却极大地简化了它。在后一种情况下,这些功能中的很多功能都滞留在这里,并且为了向后兼容而留在这里。在本系列的前一篇文章中,我们探讨了该语言的一些奇怪特征,这些特征在...
2018-05-11 11:19:20
481
原创 “阿里架构师”kafka 数据可靠性深度解读
1 概述Kakfa起初是由LinkedIn公司开发的一个分布式的消息系统,后成为Apache的一部分,它使用Scala编写,以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark等都支持与Kafka集成。Kafka凭借着自身的优势,越来越受到互联网企业的青睐,唯品会也采用Kafka作为其内部核心消息引擎之一。Kafka作为一个商...
2018-05-10 18:54:48
277
原创 Java类加载器不喜欢我,想我慢下来
背景:我们难道不能和谐相处吗?自从二十世纪九十年代Java首次创建的时候,Java资源和类的加载就已经是一个问题了。通过增加启动和初始化的次数,Java应用程序服务器放大了这个问题。为了缓解这个这个问题,程序员们做了很多的努力,其中包括exploded deployment到应用程序服务器的方法,但它只是在非常小的程序中才会起作用,还有2001年创建的Java HotSwap。HotSwap启用时...
2018-05-10 15:38:02
153
原创 百度架构师是怎样搭建MySQL分布式集群
1、准备集群搭建环境使用6台虚拟机来搭建MySQL分布式集群,相应的实验环境与对应的MySQL节点之间的对应关系如下图所示:管理节点(MGM):这类节点的作用是管理MySQLCluster内的其他节点,如提供配置数据,并停止节点,运行备份等。由于这类节点负责管理其他节点的配置,应该在启动其他节点之前启动这类节点。MGM节点是用命令“ndb_mgmd”启动的;数据节点(NDB):这类节点用于保存Cl...
2018-05-09 16:34:02
571
原创 “阿里架构师”的JVM之GC详解
GC的概念Grabage Collection:在系统运行过程中占据空间的无用对象在一定时间范围内被及时清理来保证整个系统有足够的内存空间来运行。java中GC的对象是堆和永久区。 常用的GC算法引用计数法(reference counting)概念:对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器就减1。只要对象A的引用计数器的值为0,则对象A就不可能...
2018-05-08 19:04:31
294
原创 NioEventLoopGroup 源码分析
NioEventLoopGroup 源码分析1. 在阅读源码时做了一定的注释,并且做了一些测试分析源码内的执行流程,由于博客篇幅有限。为了方便 IDE 查看、跟踪、调试 代码,所以在 github上提供 netty 的源码、详细的注释及测试用例。欢迎大家 star、fork !2. 由于个人水平有限,对源码的分析理解可能存在偏差或不透彻的地方还请大家在评论区指出,谢谢!从今天开始,就准备进军 ne...
2018-05-06 19:27:27
888
原创 爱奇艺平台的架构设计与演进之路
近年来爱奇艺快速发展,优质内容层出不穷,爱奇艺广告也随之发展和壮大,广告在线服务同时服务于品牌、中小、DSP 等不同客户,形成了可以满足不同需求类型的较为完善的商业广告变现布局,广告库存涵盖视频、信息流、泡泡社交(爱奇艺的社交平台)和开机屏等多种场景。爱奇艺效果广告是 2015 年开始全新搭建的一个广告投放平台,随着信息流业务的增长,整个投放平台也经历了一次大的架构调整和多次重要的升级优化。爱奇艺...
2018-05-04 19:24:16
9970
1
原创 给架构师的推荐——《企业IT架构转型之道》
评:推荐做系统架构师的同学可以看一下。的确讲了一些干货,但很多内容留于表面。对于中台的定义和思考,建设中台的方法以及阿里中间件有比较完整的描述。阿里巴巴电商系统的架构经历了烟囱式架构到分布式架构再到共享式架构的转变。#序言阿里巴巴集团中台战略研发的思考2015年底,启动阿里集团2018年中台战略,构建符合DT时代的更具创新性、灵活性的“大中台、小前台”组织机制和业务机制,即作为前台的一线业务会更敏...
2018-05-03 18:54:50
8813
原创 京东架构师解析URL监控
URL监控是京东统一监控的一个模块,这篇短文主要给大家讲解如何用好URL监控。我们先来了解下目前京东比较常见的2种WEB应用网络架构(除CDN外):不管哪种WEB应用网络架构或者及其变种,都包含以下节点:DNS服务器、VIP、NGINX、omcat;那我们如何通过京东统一监控系统的URL监控模块监控各个节点本身的健康状况:监控TomcatTomcat异常的表现有很多:启动异常,JVM进程假死等等,...
2018-05-02 16:26:20
912
原创 京东搭建“千万级消息推送架构”的演进之路
前言京麦消息是京麦商家开放平台的核心组成部分。从消息源到消息中心再到触达用户,以及最终根据消息协议呼起操作页面,京麦消息是一个完整且健康的生态闭环。下面我会详细的介绍下京麦消息是如何在演变中不断完善的。京麦消息框架我将从消息接入、MC系统搭建、消息配置、消息触达、消息监控五个方面来阐述京麦消息在2017年的成长。一、消息接入原有消息接入存在的弊端主要有以下两点:1、消息接入方式多样化。京麦消息包含...
2018-04-27 20:55:33
2883
1
原创 微服务架构的服务与发现-Spring Cloud
1 为什么需要服务发现简单来说,服务化的核心就是将传统的一站式应用根据业务拆分成一个一个的服务,而微服务在这个基础上要更彻底地去耦合(不再共享DB、KV,去掉重量级ESB),并且强调DevOps和快速演化。这就要求我们必须采用与一站式时代、泛SOA时代不同的技术栈,而Spring Cloud就是其中的佼佼者。DevOps是英文Development和Operations的合体,他要求开发、测试、运...
2018-04-27 16:20:48
314
原创 百度架构师高并发web架构分析
本文主题是高性能的Web架构,着重于从如何打造快速响应、应对高并发、高吞吐、让用户感受到非常快的体验的角度来进行阐述的,实际上,对于一个好的 Web 架构来说,除了高性能这个指标外,还必须兼顾高可用、可伸缩、可拓展、安全等多个方面,期望本文的介绍能给对设计高性能架构感兴趣的同行学者提供一定的参考。高性能web架构主要保证程序的高可用性和高并发性.高可用就是 保证程序在99.99%的情况下可以使用,...
2018-04-26 17:40:47
584
原创 资深架构师是如何处理微信公众号的系统压力
大家平时会关注很多微信公众号,公众号会借助于红包奖励、卡券分享、消息通知、微信分享等手段,通过好的内容,好的活动、好的产品以及相应的精准营销来增强用户的粘性和活跃度。在微信公众号推送消息的期间,10分钟后流量会逐步上升,30分钟左右到达峰值,1个小时后会显著下降。在这个时间段内,系统的压力会很大。这个时候,系统的很多场景使用异步进行实现,一方面能缩短主流程的时间处理,另一方面能够通过异步队列进行一...
2018-04-25 16:53:08
796
原创 你这一辈子有没有爱过Tomcat源码
这个周末,我理出了Tomcat源码分析。将基于eclipse的整个tomcat的源码开发环境创建成功,并成功的调试tomcat源码。 一、架构 “下面说说我对tomcat源码研究的几点展望,众所周知,tomcat是一个开源的Servlet容器,而这个容器的主要作用就是负责处理和响应客户请求(我们暂且忽略其他的一些次要的方面)。那么好,我们可以先做这样一个比喻...
2018-04-24 14:44:48
342
原创 阿里架构师带你深入浅出jvm
本文跟大家聊聊JVM的内部结构,从组件中的多线程处理,JVM系统线程,局部变量数组等方面进行解析JVMJVM = 类加载器(classloader) + 执行引擎(execution engine) + 运行时数据区域(runtime data area)下面这幅图展示了一个典型的JVM(符合JVM Specification Java SE 7 Edition)所具备的关键内部组件。组件中的多线...
2018-04-23 18:01:51
434
原创 做为一名java高级程序员,这些IT岗位你都了解么?
程序员 程序员,英文名coder/programmer,大家常自嘲叫码农的阶段。这个角色职责是把需求或产品实现为用户可用的软件产品。 此职位为执行级别。另外因为经验较少,一般需要求助别人,或与别人一起完(ban)成(zhuan)一个任务。 此阶段大概要经历3年,程序员的职责如下: 1、负责公司运营系统的设计与开发工作 2、运营数据处理和分析高级程序员 高级程序员学名工程师。到了这个le...
2018-04-22 17:38:08
8881
原创 京东八年架构师: Redis 如何分布式,金融的设计原理
前言 R2M 是京东金融线上大规模应用的分布式缓存系统,目前管理的机器总内存容量超过 60TB,近 600 个 Redis Cluster 集群,9200 多个 Redis 实例。 其主要功能包括:全 web 可视化运维、缓存集群一键部署、资源池统筹管理、在线扩容及快速数据迁移、多机房切换及容灾、完善的监控及告警、Redis API 兼容等。 本文将从 R2...
2018-04-20 17:53:19
2374
原创 成为 java架构师的书籍推荐
当自己非常娴熟的运用Java编程,而且有了一一个良好的编程思路和习惯了,但是你可能还缺乏对应用软件整体架构的把握,现在就是你迈向架构师的第一步。 l、《Expert One-on-One J2EE Design and Development》 这本书是RodJohnson 的成名著作,非常经典,从这本书中的代码诞生了springframework 但是好像...
2018-04-19 17:10:57
621
原创 阿里资深架构师私下峰会:了解这几点,人人皆是优秀架构
前言: 最近有好多人问我说:“George,怎样才能成为公司里的前线主力架构师,我现在在公式已经干了快五年了,现在还是一个默默无闻的程序员,我也通过很多种渠道来突破我现在瓶疾,但就是走不出来,技术也一直没有突破上去,我真的是没有办法了,通过朋友推荐介绍,说您这里可以解决我的技术瓶疾,所以我想请你帮我突破一下技术方面上的瓶疾。” 你们是否有也有类似这样的问题——“天天写业务代码的程序员,怎么成为技术...
2018-04-18 16:33:57
331
1
原创 MySQL在大数据、高并发场景下的SQL语句优化和"最佳实践"
本文主要针对中小型应用或网站,重点探讨日常程序开发中SQL语句的优化问题,所谓“大数据”、“高并发”仅针对中小型应用而言,专业的数据库运维大神请无视。以下实践为个人在实际开发工作中,针对相对“大数据”和相对“高并发”场景的一些应对策略,部分措施并没有经过严格的对比测试和原理分析,如有错漏欢迎各种批评指教。减少查询的影响结果集,避免出现全表扫描。影响结果集是SQ...
2018-04-17 20:34:52
1900
原创 分布式架构高可用与高并发那些在工作中常用到的那些变态应用
典型 Web App 架构反向代理服务以下是一个典型的高负载 web 应用示例:上图展示了一个典型的,三层架构的高性能 Web 应用。这种成熟的架构多年以来已被广泛部署于包括 Google、Yahoo、Facebook、Twitter、Wikipedia 在内的诸多大型 Web 应用中。位于三层构架中最外层的反向代理服务器负责接受用户的接入请求,在实际应用中,代理服务器通常至少还要完成以下列表中的...
2018-04-16 16:19:35
3678
原创 分享我这8年(目前在阿里就职),是如何一步一步走向架构师的
摘要: 心血经验分享,架构师更多的是一个不断学习,不断积累的过程,希望可以帮到同行业的朋友们前言成为优秀的架构师是大部分初中级工程师的阶段性目标。优秀的架构师往往具备七种核心能力:编程能力、调试能力、编译部署能力、性能优化能力、业务架构能力、在线运维能力、项目管理能力和规划能力。这几种能力之间的关系大概如下图。编程能力、调试能力和编译部署能力属于最基础的能力。不能精通掌握这三种能力,很难在性能优化...
2018-04-14 17:58:31
2852
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人