暂无个人介绍
在【冰河技术】微信公众号的《【高并发】面试官:性能优化有哪些衡量指标?需要注意什么?》一文中,介绍了性能优化的衡量指标和期间需要注意的事项,属于理论篇的内容。这不,在文章下方就有小伙伴问我:监控怎么做?我理解了他的意思后,今天就安排上了。
在 【冰河技术】 微信公众号中的【Nginx】专题,更新了不少文章,有些读者反馈说,在公众号中刷 历史文章不太方便,有时会忘记自己看到哪一篇了,当打开一篇文章时,似乎之前已经看过了, 但就是不知道具体该看哪一篇了。相信很多小伙伴都会有这样的问题。那怎么办呢?最好的解决 方案就是我把这些文章整理成PDF电子书,免费分享给大家,这样,小伙伴们看起来就方便多 了。希望这本电子书能够给大家带来实质性的帮助。
最近,很多小伙伴都在说,我没做过性能优化的工作,在公司只是做些CRUD的工作,接触不到性能优化相关的工作。现在出去找工作面试的时候,面试官总是问些很刁钻的问题来为难我,很多我都不会啊!那怎么办呢?那我就专门写一些与高并发系统相关的面试容易问到的问题吧。今天,我们就来说说在高并发场景下做性能优化有哪些衡量标准,以及做优化时需要注意哪些问题。
在Java中提供了synchronized关键字来保证只有一个线程能够访问同步代码块。既然已经提供了synchronized关键字,那为何在Java的SDK包中,还会提供Lock接口呢?这是不是重复造轮子,多此一举呢?今天,我们就一起来探讨下这个问题。
最近发现很多小伙伴对于工作中的一些基本工具的使用还不是很了解,比如:Git这个分布式的代码管理仓库,很多小伙伴就不是很了解,或者说不是很熟悉。甚至有些小伙伴都没听说过Git,就只会用个SVN。殊不知,当今各大互联网巨头和新兴起的互联网黑马公司,基本都是用的Git,而基本废弃了对SVN的使用。为什么呢?我们一起往下看。
在前面的《【高并发】Redis如何助力高并发秒杀系统?看完这篇我彻底懂了!!》一文中,我们以高并发秒杀系统中扣减库存的场景为例,说明了Redis是如何助力秒杀系统的。那么,说到Redis,往往更多的场景是被用作系统的缓存,说到缓存,尤其是分布式缓存系统,在实际高并发场景下,稍有不慎,就会造成缓存穿透、缓存击穿和缓存雪崩的问题。那什么是缓存穿透?什么是缓存击穿,又什么是缓存雪崩呢?它们是如何造成的?又该如何解决呢?今天,我们就一起来探讨这些问题。
之前,我们在《【高并发】高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!》一文中,详细讲解了高并发秒杀系统的架构设计,其中,我们介绍了可以使用Redis存储秒杀商品的库存数量。很多小伙伴看完后,觉得一头雾水,看完是看完了,那如何实现呢?今天,我们就一起来看看Redis是如何助力高并发秒杀系统的! 有关高并发秒杀系统的架构设计,小伙伴们可以关注 冰河技术 公众号,查看《【高并发】高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!》一文。
在产品初期快速迭代的过程中,往往为了快速上线而占据市场,在后端开发的过程中往往不会过多的考虑分布式和微服务,往往会将后端服务做成一个单体应用,而数据库也是一样,最初会把所有的业务数据都放到一个数据库中,即所谓的单实例数据库。随着业务的迅速发展,将所有数据都放在一个数据库中已经不足以支撑业务发展的需要。此时,就会对系统进行分布式改造,而数据库业务进行分库分表的拆分。那么,问题来了,如何更好的访问和管理拆分后的数据库呢?业界已经有很多成熟的解决方案,其中,一个非常优秀的解决方案就是:Apache ShardingSphere。今天,我们就从源码级别来共同探讨下sharding-jdbc的核心源码。
之前,我们在【Spring】专题中更新了不少关于Spring注解相关的文章,有些小伙伴反馈说,看历史文章的话比较零散,经常会忘记自己看到哪一篇了。当打开一篇新文章时,总感觉自己似乎是看到过了,又感觉自己没有看到过。那怎么办呢?为了小伙伴们查看方便,我在这里将Spring注解的使用方式做个汇总,也算是对之前写的Spring文章的一个总结吧!
这次又被问到Nginx四层负载均衡的问题了,别慌,我们一起来细细分析这个看似简单的问题。 如果文章对你有点帮助,请关注 冰河技术 微信公众号,点赞、在看、留言和转发,大家的四连是我持续创作的最大动力。
相信大部分小伙伴在面试过程中,只会针对面试官提出的表面问题来进行回答。其实不然,面试官问的每一个问题都是经过深思熟虑的,面试的时间相对来说也是短暂的,面试官不可能在很短的时间内就对你非常了解,他想通过几个问题来考察你所掌握的知识的深度和广度,如果你只是回答面试官表面问你的问题,向挤牙膏一样,问一点,答一点,结果不用说,肯定是凉凉了。
今天高高兴兴的回到家,打开电脑,我靠,没网!咋回事?连手机热点也贼慢。要不蹭网?下载万能钥匙?果断不能用万能钥匙!因为使用了万能钥匙,自家的Wifi密码也会共享出去。那么,怎么办?这难不倒我,于是,我打开了我的Kali操作系统,瞄准了隔壁妹子的Wifi。
昨天二狗子让我给他讲@EnableAspectJAutoProxy注解,讲到AnnotationAwareAspectJAutoProxyCreator类的源码时,二狗子消化不了了。这不,今天又来让我给他讲讲AOP的核心类。那我们就开始吧!
最近,二狗子入职了新公司,新入职的那几天确实有点飘。不过慢慢的,他发现他身边的人各个身怀绝技啊,有Spring源码的贡献者,有Dubbo源码的贡献者,有MyBatis源码的贡献者,还有研究AI的大佬,个个都是大神级别的人物。二狗子有点慌,想起自己虽然入职了,但是比起其他人确实差点远啊。怎么办呢?先从基础补起呗,他发现自己对于Spring的理解还不算太深。于是乎,他让我给他讲讲Spring的@EnableAspectJAutoProxy注解。
金九银十的跳槽黄金期已拉开序幕,相信很多小伙伴也在摩拳擦掌,想换一个新的工作环境。然而,由于今年疫情的影响,很多企业对于招聘的要求是越来越严格。之前,很多不被问及的知识点,最近面试时都会被问到了。这不,有些面试官竟然让面试者现场搭建一个AOP测试环境。那怎么办呢?那就给他搭建一个呗!
最近出版了《海量数据处理与大数据技术实战》,详情可以关注 冰河技术 微信公众号,查看《我的《海量数据处理与大数据技术实战》出版啦!》一文。
在正式介绍Happens-Before原则之前,我们先来看一段代码。
马上就是金九银十的跳槽黄金期了,很多读者都开始出去面试了。这不,又一名读者出去面试被面试官问了一个MySQL的问题:向MySQL中插入数据,如何实现MySQL中没有当前id标识的数据时插入数据,有当前id标识的数据时更新数据。其实,这题目一点也不难!!
我们都知道,在多线程环境下访问同一个共享变量,可能会出现线程安全的问题,为了保证线程安全,我们往往会在访问这个共享变量的时候加锁,以达到同步的效果,如下图所示。
在实际的企业开发环境中,往往都会将环境分为:开发环境、测试环境和生产环境,而每个环境基本上都是互相隔离的,也就是说,开发环境、测试环境和生产环境是互不相通的。在以前的开发过程中,如果开发人员完成相应的功能模块并通过单元测试后,会通过手动修改配置文件的形式,将项目的配置修改成测试环境,发布到测试环境进行测试。测试通过后,再将配置修改为生产环境,发布到生产环境。这样手动修改配置的方式,一方面增加了开发和运维的工作量,而且总是手工修改各项配置文件很容易出问题。那么,有没有什么方式可以解决这些问题呢?答案是:有!通过@Profile注解就可以完全做到。
随着互联网的发展,很多公司和个人越来越重视网络的安全性,越来越多的公司采用HTTPS协议来代替了HTTP协议。为何说HTTPS协议比HTTP协议安全呢?小伙伴们自行百度吧!我就不说了。今天,我们就一起来聊聊如何使用自签CA配置Nginx的HTTPS加密反向代理。咳咳,小伙伴们快上车。
很多小伙伴私聊我说:最近他们公司的业务涉及到多个数据源的问题,问我Spring如何实现多数据源的问题。回答这个问题之前,首先需要弄懂什么是多数据源:多数据源就是在同一个项目中,会连接两个甚至多个数据存储,这里的数据存储可以是关系型数据库(比如:MySQL、SQL Server、Oracle),也可以非关系型数据库,比如:HBase、
估计二狗子这几天是大姨夫来了,心情很郁闷,情绪也很低落,工作的时候也有点心不在焉。让他发个版本,结果,一行命令下去把线上的数据库删了!你没听错:是删掉了线上的数据库!运营那边顿时炸了锅:怎么回事?系统不能访问了!什么情况啊?!很多客户都在投诉了!!
最近,很多小伙伴出去面试都被问到了Spring问题,关于Spring,细节点很多,面试官也非常喜欢问一些很细节的技术点。所以,在 Spring 专题中,我们尽量把Spring的每个技术细节说清楚,将透彻。
很早之前,就有不少小伙伴微信留言说:冰河,你能不能写一个Redis专栏啊,我最近在学习Redis,看书看不下去,学习视频又觉得视频太长了,还是看你的文章比较给力!哈哈,原来我写的文章能够让小伙伴们有这么强的动力学习啊!终于安排到写【Redis专题】了。今天是【Redis专题】的开篇,写些什么呢?先简单的介绍下Redis并教大家如何在单机环境中安装Redis吧,也算是对【Redis专题】的开篇吧!
最近,有关于Spring的面试中,Spring的循环依赖问题是必问的知识点,你回答的不好,就会被直接pass掉。即使你没被pass掉,你也会比那些知道如何解决Spring循环依赖问题的同事薪资低,这就是现实。所以,我们今天就一起来探讨下如何解决Spring循环依赖的问题
在 冰河技术 微信公众号前面的文章中,我们介绍了如何使用注解来自动装配Spring组件。之前将的都是在来的字段上添加注解,那有没有什么方法可以实现方法、构造器位置的自动装配吗?今天我们就一起来探讨下如何实现方法、构造器位置的自动装配。
我在 冰河技术 微信公众号中发表的《【Spring注解驱动开发】使用@Autowired@Qualifier@Primary三大注解自动装配组件,你会了吗?》一文中,介绍了如何使用@Autowired、@Qualifier和@Primary注解自动装配Spring组件。那除了这三个注解以外,还有没有其他的注解可以自动装配组件呢?那必须有啊!今天,我们就一起说说@Resource注解和@Inject注解。
Spring专题】停更一个多月,期间在更新其他专题的内容,不少小伙伴纷纷留言说:冰河,你【Spring专题】是不是停更了啊!其实并没有停更,只是中途有很多小伙伴留言说急需学习一些知识技能,以便于跳槽,哈哈,大家都懂得!所以,中途停更了一段时间,写了一些其他专题的文章。现在,继续更新【String专题】。
很多小伙伴都在问:冰河,你的Spring专题更新完了吗?怎么感觉像是写了一半啊?我:没有更新完呀,整个专题预计会有70多篇。那怎么更新了一半就去写别的了呢?那是因为有很多其他的小伙伴在后台留言说:急需学习一些其他的技术,所以,临时调整的。放心,Spring专题会持续更新的!这不,今天,我们就继续更新Spring专题。不出意外的话,会一直持续更新完!!
之前写过一篇在CentOS 7/8上安装Oracle的文章,按照我写的文章安装成功了,但是卸载Oracle时出现了问题。今天,我就整理一篇手动安装和卸载Oracle的文章吧。全文为实战型内容,全程干货。 如果文章对你有所帮助,请不要吝惜你的点赞、在看、留言和转发,你的支持是我持续创作的最大动力!
今天,一位哥们打电话来问我说误操作了他们公司数据库中的数据,如何恢复。他原本的想法是登录数据库update一个记录,结果忘了加where条件,于是悲剧发生了。今天,我们不讲如何恢复误操作的数据(后面专门讲如何恢复误删除的数据),我们讲讲如何从源头上避免这样的问题,这才是避免类似问题的根本措施。 如果文章对你有所帮助,请不要吝惜你的点赞、在看、留言和转发,你的支持是我持续创作的最大动力!
最近不少读者找我要大数据面试题,我整理了很久,筛选出这10道容易出错的大数据面试题,希望对大家有所帮助。题目与解答整理自互联网,感谢分享这些面经的技术大牛们!
在当今互联网行业,尤其是现在分布式、微服务开发环境下,为了提高搜索效率,以及搜索的精准度,会大量使用Redis、Memcached等NoSQL数据库,也会使用大量的Solr、Elasticsearch等全文检索服务。那么,这个时候,就会有一个问题需要我们来思考和解决:那就是数据同步的问题!如何将实时变化的数据库中的数据同步到Redis/Memcached或者Solr/Elasticsearch中呢?
小伙伴们按照我写的文章顺利安装好Oracle数据库后,又在微信上问我:我想查看Oracle数据库中所有表和字段以及表注释和字段的注释,我该怎么操作呢?看着小伙伴们这么高的学习热情,这些问题我都安排上了!这不,解决方案来了!
最近在研究如何实现Oracle数据库之间的数据同步,网上的资料确实比较少。最好用的Oracle数据库同步工具是:GoldenGate ,而GoldenGate是要收费的。那么还有什么好的办法来同步Oracle的数据吗?没错,就是使用LogMiner来实现Oracle数据同步迁移。
很长一段时间内,国内互联网公司都在提倡“去IOE”,但是很多企业还是愿意为昂贵的Oracle数据库买单,不少读者所在的公司也在用Oracle,很多读者自行安装Oracle数据库时,多多少少遇到了些问题,苦恼于几天下来还是没能解决问题。这不,不少读者跑来问我,让我输出一篇如何在物理机上安装Oracle的文章,最好是安装过程中不会出现各种“疑难杂症”。哈哈,这要求不过分,我周末也着实捣鼓了一番,不过我是安装在CentOS 7/ CentOS 8虚拟机中的,效果和在物理机中一样,整个过程也算是小有所成吧!输出此文,记录捣鼓的过程,与各位Oracle开发者共勉。
在当今互联网行业,尤其是现在分布式、微服务开发环境下,为了提高搜索效率,以及搜索的精准度,会大量使用Redis、Memcached等NoSQL数据库,也会使用大量的Solr、Elasticsearch等全文检索服务。那么,这个时候,就会有一个问题需要我们来思考和解决:那就是数据同步的问题!如何将实时变化的数据库中的数据同步到Redis/Memcached或者Solr/Elasticsearch中呢?
在互联网应用中,高并发系统会面临一个重大的挑战,那就是大量流高并发访问,比如:天猫的双十一、京东618、秒杀、抢购促销等,这些都是典型的大流量高并发场景。关于秒杀,小伙伴们可以参见我的另一篇文章《【高并发】高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!》
在互联网应用中,高并发系统会面临一个重大的挑战,那就是大量流高并发访问,比如:天猫的双十一、京东618、秒杀、抢购促销等,这些都是典型的大流量高并发场景。关于秒杀,小伙伴们可以参见我的另一篇文章《【高并发】高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!》 关于【冰河技术】微信公众号,解锁更多【高并发】专题文章。 注意:由于原文篇幅比较长,所以被拆分为:理论、算法、实战(HTTP接口实战+分布式限流实战)三大部分。 理论篇:《【高并发】如何实现亿级流量下的分布式限流?这些理论你必须掌握!!》 算法篇:《【高并发】如何实现亿级流量下的分布式限流?这些算法你必须掌握!!》 项目源码已提交
在互联网应用中,高并发系统会面临一个重大的挑战,那就是大量流高并发访问,比如:天猫的双十一、京东618、秒杀、抢购促销等,这些都是典型的大流量高并发场景。关于秒杀,小伙伴们可以参见我的另一篇文章《【高并发】高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!》 关于【冰河技术】微信公众号,解锁更多【高并发】专题文章。 注意:由于原文篇幅比较长,所以被拆分为:理论、算法、实战(HTTP接口实战+分布式限流实战)三大部分。理论篇参见《【高并发】如何实现亿级流量下的分布式限流?这些理论你必须掌握!!》
在互联网应用中,高并发系统会面临一个重大的挑战,那就是大量流高并发访问,比如:天猫的双十一、京东618、秒杀、抢购促销等,这些都是典型的大流量高并发场景。关于秒杀,小伙伴们可以参见我的另一篇文章《【高并发】高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!》
周末,跟阿里的一个朋友(去年晋升为P9了)聊了很久,聊的内容几乎全是技术,当然了,两个技术男聊得最多的话题当然就是技术了。从基础到架构,从算法到AI,无所不谈。中间又穿插着不少天马行空的想象,虽然现在看起来不太实际,但是随着技术的进步,相信五年、十年之后都会实现的。
最近不少小伙伴们都在问我:高并发专题我学了不少文章了,但是如何设计一个高并发的系统我还是一脸懵逼!这个问题怎么解决呢?其实,相信不只是问我的这些小伙伴有这个困惑,就连工作(入坑)了好几年的开发人员也都有这样的困惑:我学习了很多的高并发课程,也看了不少的高大上的文章,可就是不知道怎么去设计一个支撑高并发大流量的系统。针对小伙伴们的疑惑,这里,我就把一些设计高并发大流量的常规思路分享给大家,不一定完全正确,设计高并发大流量系统本来就是一个仁者见仁、智者见智的事情,只要是符合自身业务场景的架构思路,都是好的架构思路,架构本身来说就是没有一个完全正确的架构,而是尽量符合当时自身的业务场景,并且能够良好
不得不说,最近小伙伴们的学习热情是越来越高,不断向冰河提出新的想学习的技术。这不,又有小伙伴问我:冰河,你在【Nginx专题】写的文章基本上都是Nginx单机版的,能不能写一篇关于Nginx的高可用的文章呢?我:没问题,安排上!这不,就有了这篇文章!!
最近,在服务器上搭建了一套压测环境,不为别的,就为压测下Nginx的性能,到底有没有传说中的那么牛逼!具体环境为:11台虚拟机,全部安装CentOS 6.8 64位操作系统,1台安装部署Nginx,其他10台作为客户端同时以压满CPU的线程向Nginx发送请求,对Nginx进行压测。没想到,出现问题了!!
最近几年,直播行业比较火,无论是传统行业的直播,还是购物、游戏、教育,都在涉及直播。作为在互联网行业奋斗了多年的小伙伴,你有没有想过如果使用Nginx搭建一套直播环境,那我们该如何搭建呢?别急,接下来,我们就一起使用Nginx来搭建一套直播环境。
最近,一名读者跟我说他通过浏览器访问自己的服务器时,图片显示的非常慢,以至于在浏览器中都无法完全加载出来,下载文件时,更是恼火,文件根本就无法完全下载下来。而且奇怪的是这位读者所在的网络是没啥问题的。于是,我便开始帮他排查各种问题。。。
当今互联网行业,大部分Web项目基本都是采用的前后端分离模式。前端为H5项目,后端为Java、PHP、Python等项目。而且大部分后端服务并不会只部署一套服务,而是会采用Nginx对后端服务进行负载均衡。那么,此时就会出现一个问题了:如果一个请求url的 协议、域名、端口 三者之间任意一个与当前页面url不同就会产生跨域的现象。那么如何使用Nginx解决跨域问题呢?接下来,我们就一起探讨下这个问题。
Nginx能够实现HTTP、HTTPS协议的负载均衡,也能够实现TCP协议的负载均衡。那么,问题来了,可不可以通过Nginx实现MySQL数据库的负载均衡呢?答案是:可以。接下来,就让我们一起探讨下如何使用Nginx实现MySQL的负载均衡。
发表了文章
2025-03-02
发表了文章
2025-03-02
发表了文章
2025-03-02
发表了文章
2025-03-02
发表了文章
2025-03-02
发表了文章
2025-03-02
发表了文章
2025-03-02
发表了文章
2025-03-02
发表了文章
2025-03-02
发表了文章
2025-03-02
发表了文章
2025-03-02
发表了文章
2025-03-02
发表了文章
2025-03-02
发表了文章
2025-03-02
发表了文章
2025-03-02
发表了文章
2025-03-02
发表了文章
2025-03-02
发表了文章
2025-03-02
发表了文章
2025-03-02
发表了文章
2025-03-02