架构师修练之道
文章平均质量分 92
一个J2ee架构师是怎么样的,他又应该具备什么样的专业技能与素质?本系列将通过365天时间浓缩笔者近10多年的工作经验来带领大家通过实际例子来解开这个问题,内容全面覆盖基本的java知识,j2ee,流行框架,数据库,性能,安全,工作流及SOA相关领域。
TGITCIC
一个始终站在技术前沿的人,喜欢传播最先进的技术和理念。
展开
-
家乐福618安全与性能保卫战(一)-安全高地保卫战
仅以此系列用来感谢在618那段时间一起奋战的devops、开发、PM们,他们分别是:俊龙 Neil吴 郝颖 虎哥 Lester Raymond Jun 欢哥 海涛 秋明 郭鑫 Lina 感谢他们给到我的支持、感谢他们给到我的配合、更感谢他们甚至在零晨4:30还给我打电话説:我觉得我还有一个更好的注意。。。我发觉这段逻辑似乎还有一...原创 2020-05-06 15:33:16 · 3471 阅读 · 3 评论 -
AI神助攻,购物更省心:我即将上线一套企业数据高度契合的智能导购APP来开创这一新纪元
你是否也曾在双11前夕,为了给心上人挑选礼物而痛头?或者看着美食图片,想知道它是怎么做出来的?那么,你需要这篇文章。我们将引领你走进一个全新的搜索世界,这里没有无尽的翻页和疲惫的滚动,只有你的愿望和需求被精确地转化为你想要的结果。但这并不是一项简单的任务,我们需要利用生成式AI来处理亿级的零售数据,找到那些人力无法触及的数据关系。同时,我们还需要考虑到国内电商的特色和信息隐私的保护。这篇文章就像一场科技冒险,我们已经取得了一些突破,而更多的挑战还在等待我们。让我们一起,期待这个全新的购物体验吧!原创 2023-11-04 22:23:36 · 664 阅读 · 2 评论 -
一文让非技术宅读懂为什么AI更“喜欢”GPU而不是CPU?
2022年开始的各种AI的大规模应用为什么这么强烈GPU而不是CPU呢?本文以极简的语言让非技术宅们也能读懂AI为什么这么“喜欢”GPU而不是传统的CPU。原创 2023-06-16 18:47:29 · 5899 阅读 · 0 评论 -
PPT制作能力在职场中真的重要吗?一定要美术功底才能学好PPT吗?
我推出PPT技能培训专栏啦!好的PPT可以让你事半功倍、2023拥有PPT能力还可以让你具备一门极有价值的斜杠能力。更多内容请进:梦幻训练营专栏。专栏内会用本人积累的近10年的PPT学习方法论在短时间内教会你如何制作出精美绝伦的PPT,每篇教程后还会免费赠送一些小福利,不可多得。原创 2023-06-08 10:13:25 · 522 阅读 · 0 评论 -
35-40的技术人员为什么会被“不友好”,请你们自身反思-拒做职场的“嗯嗯”怪
IT职场对35-40的大龄程序员不友好,可是这是为什么呢?职场上90%实际为“嗯嗯怪”,那么为什么“嗯嗯怪”这么不受待见呢?企业如何鉴别“嗯嗯怪”以及我们作为打工者自身如何跳脱被当作一个“嗯嗯怪”呢?笔者希望以此文给到相关大龄人员一些启示。原创 2023-05-08 18:48:08 · 729 阅读 · 0 评论 -
国内唯一一部在CentOS下正确编译安装和使用RediSearch的教程
RediSearch支持全文搜索,它对硬件的要求远远低于elastic search,同时借助于Redis本身成熟的集群能力和高性能可以取得远超elastic search的搜索性能。这个模块已经成熟,这也就意味着elastic search淘汰进行时,而RediSearch的安装必须基于服务器环境的源码编译安装,这在国内几乎没有一篇解说它的编译、安装、使用的说明。本人因此写出这一篇用于填补国内这一领域的相关空缺。原创 2023-02-12 13:06:32 · 2366 阅读 · 12 评论 -
高性能零售IT系统的建设09-Spring Boot2.4.2+Spring Cloud+Nacos+Feign+Hystrix的生产级应用实例
本文详细介绍了:基于spring boot2.4.2以及spring cloud 2022.00版本后的微服务是怎么搭建的。以及结合了一次真实的生产中没有架构好的微服务来说明微服务框架spring cloud到底因该在实际大并发生产环境中如何使用的正确姿势。原创 2023-01-27 17:55:16 · 1305 阅读 · 2 评论 -
CIO你好,现在是时候我们来谈一下“去”中台的问题了
去中台的去是打着双引号的,中台正当势头它本身就是一个神器,去的不是中台,去的是“懈怠”。原创 2022-12-29 17:09:21 · 2825 阅读 · 3 评论 -
互联网时代“陨落”,国家发布元宇宙战略的信号对失业和担心失业的我们带来了什么启迪?
元宇宙并不是乌托邦式的神话,它已经在发生了。元宇宙也不只是为了娱乐和游戏,它注定是人们未来生活的方式,就和我们现在习惯于使用手机一样。元宇宙不是可能而是已经到来。未来可期,机遇总是留给有准备的人们!未来已来,你来不来!原创 2022-12-28 13:04:55 · 1877 阅读 · 0 评论 -
高性能零售IT系统的建设08-9年来在互联网零售O2O行业抗黑产、薅羊毛实战记录及打法
本篇以全景式黑产对抗把本人完整对抗亿级黑产、羊毛党的实战经验进行传授。对抗每秒万级并发很难,而对抗黑产是难上难。有时仅仅一个黑客的技术能力、智商是全面碾压一个企业甚至一个集团公司内所有IT人员的智慧累加的。但是我们只要记住:求“减损”不要“止损”,更谈不上“防损”!不要求打败,而是增加“黑产”的攻击成本!着眼于全局战役,而不要打“阵地战”!流量我要,权益你木有!这几句心法就能和黑产打得有来有去,游刃有余。原创 2022-12-11 00:31:57 · 2026 阅读 · 0 评论 -
高性能零售IT系统的建设07-通过一次重大危机感受Redis从使用到失智到理性的治理
有了Redis、会用Redis就够了吗?如果当你的系统发生越用Redis反而问题越多时你会怎么办?本篇以一次重大危机的发现、分析、解决的全过程来擅述一个大型零售IT系统内Redis的规范使用以及核心性能调优手法。通过这一篇内容讲透:如何一边又要大量使用Redis一边又可以避免无限制扩充硬件的“聪明”的技术管理手段。原创 2022-11-26 18:19:15 · 793 阅读 · 0 评论 -
高性能零售IT系统的建设06-当应对大量HTTP请求时兼顾性能、处理速度的架构设计
本篇将着重用生产实例讲解如何在一个高并发的实时交易系统中应对来自TO B端海量HTTP请求的系统架构设计。此文会讲透什么叫:把TO B端当成TO C端处理,TO B端的任务不能影响到TO C端。原创 2022-11-20 20:11:01 · 624 阅读 · 0 评论 -
高性能零售IT系统的建设05-从0打造一个每秒万级并发的互联网交易系统的技术全架构
亿万级的流量、每秒万级的并发的大型零售商超金融类应用如何设计与架构?如何面对汹涌的流量?本篇以全景式架构设计展示并结合一个个生产实例带你一步步深入了解如何应对大规模的高并发高流量的业务场景系统架构之美。原创 2022-10-13 17:59:58 · 3163 阅读 · 0 评论 -
高性能零售IT系统的建设04-APM全链路建设精讲
如果你正在规划、设计和处在面向零售、金融的在线业务交易系统,这个系统如果复杂如:中台一类的或者达百万行代码那么你必须使用APM。本篇会讲清什么是APM系统?APM和一般运维监控又有什么不一样的地方?以及APM为什么这么重要。原创 2022-10-09 17:12:59 · 1024 阅读 · 3 评论 -
高性能零售IT系统的建设02-对RabbitMQ乱用的治理
RabbitMQ是企业架构中经常使用的用于解耦的一种手段。零售和金融行业对于MQ的使用量很大,一旦失控面临的问题将是灾难级的。本文讲述了如何对于MQ已经泛滥成灾和失控情况下如何把MQ治理好并在性能上提高百倍、资源消耗却减少上千倍的全过程剖析。原创 2022-10-07 21:45:08 · 721 阅读 · 1 评论 -
高性能零售IT系统的建设01-一场HTTP组件引发的血灾
项目中大量对内、对外都使用restful api,简单的HTTP竟然引起了HTTP“风暴”。导致了系统整体吞吐量上不去、时不时会“耦尔卡一下”,经过调研结果发觉是项目中的HTTP组件使用在作怪。原创 2022-10-07 01:31:58 · 1401 阅读 · 1 评论 -
家乐福618保卫战二-零售O2O场景中的万级并发交易情况下的极限性能调优
结合了3个大规模全渠道零售中台从0到1建设的实例,全景、深入式介绍零售电商场景中当面临每秒万级并发时的系统调优知识。这个系列可以帮助普通程度员们深刻的意识到平时工作中到底还有什么不足以及如何进一步进化成真正意义上的架构师、CTO的道路是如何走的。其内容涉及微服务、云原生、IT体系化建设、攻城狮团队文化建设的系统理论及实战。即深入到了单个技术讲解也深入剖析如何建设一支有战斗力的IT团队的实战经验。原创 2022-10-05 19:58:50 · 1349 阅读 · 0 评论 -
OpenCV Java入门六 使用神经网算法辩识人脸
在完成了一系列opencv基础功能使用后我们要进入激动人心的辩识一张脸到底是谁的讲解了,在这一章内会详细解释opencv的训练人脸模型和利用人脸模型识别这是谁这么样一个过程同时在文章最后我们会介绍真正的商业环境中一个人脸识别应用的完成还需要什么步骤的介绍。原创 2022-10-01 14:33:18 · 2457 阅读 · 0 评论 -
OpenCV Java入门五 结合摄像头识脸和拍照
随着我们对环境、Mat基本使用越来越熟练、Java Swing也逐步熟悉了起来。今天我们开始进入OpenCV驱动摄像头的几个使用场景。环境准备准备好一个USB外接摄像头,我这边使用的有两种,一种是普通的罗技摄像头,一种是双目摄像头(将来用来做活检); eclipse 2021-12版; JDK 11+,因为我们编写swing要使用到Window Builder窗体设计器这个插件。在eclipse 2021-12版里要驱动Windows Builder窗体设计器我们必须要用JDK11及+; 使.原创 2022-03-30 12:20:44 · 5807 阅读 · 1 评论 -
OpenCV Java入门四 认出这是“一张脸”
经过前三个教程,我们可以知道了OpenCV的基本使用了。今天,我们就要讲OpenCV中认出,这是一个人脸是怎么做的。MatOfRect.detectMultiScale函数OpenCV用的是detectMultiScale来认出这是一个脸的。记得,这只是认出这是一个脸,而不是这个脸是谁。这个脸是谁我们会逐步展开,前面勿求夯实基础。detectMultiScale需要两个参数(Mat src, MatOfRect objDetections);第一个函数,是传入的图片,带有人脸的图片;原创 2022-03-27 15:36:09 · 5592 阅读 · 6 评论 -
OpenCV Java入门三 Mat的基本操作
环境好了,我们就可以进入正文了。在之前入门一、二中分别已经有画图的两个例子了。但没有细节展开我们的代码和OpenCV到底在干什么。使用OpenCV时你需要补充的知识你需要熟练使用Java Swing,或者是其它任何一门语言中关于GUI方面的编程。我们这用的是OpenCV Java,因此对于Java Swing必须熟练。你可以安装eclipse 中的windowbuilder来帮助你做Swing的编程。至于Java Swing中的界面、Frame、Panel、Button以及Layout,原创 2022-03-24 14:07:13 · 6825 阅读 · 0 评论 -
OpenCV Java入门二 在Windows10系统上安装OpenCV
因为必竟大多人还是用的WINDOWS来开发的居多。因此如果OpenCV无法在Win10下安装,一样不能起到普及作用。而Windows下的编译安装OpenCV也是最痛苦的一件事。原因就在于在编译安装OpenCV时很多Extra的模块是被“墙”掉了。因此整个过程一会这个错一会那个错,开发机电脑也不太好,导致一次编译,30多分钟,然后报了一堆错网上查了半天解决了一个,又来一个。如此周而复始,让绝大多数开发者放弃了OpenCV。本篇就是要着重讲述OpenCV在W原创 2022-03-17 20:05:46 · 5280 阅读 · 5 评论 -
OpenCV Java入门一 在MAC系统上安装OpenCV
OpenCV网上的教程讲的一个都不对,要么卡死电脑,要么训练模型写死,要么都只是显示显示人脸就说这叫人脸识别?没有一个从安装、使用、驱动摄像头、训练模型、辩别人脸的全过程。最夸张的是连怎么安装个OpenCV的资料网上的都不全。本篇会连续以几篇篇幅带各位入门并以最终识别人脸为全博客结束标志。读完本篇教程你对基本人工智能算法将有了入门这一能力。为今后可以使用进一步AI应用打下扎实的基础。原创 2022-03-13 16:19:55 · 10329 阅读 · 16 评论 -
程序员文档写作能力(三)-如何处理好微信、邮件、开会时的话术
文档能力=软实力,它是软实力的综合体现。不仅仅是书面,日常开各种会议大家都会有一种“为什么我和业务型领导、老板没法沟通”,为什么我明明有理可是说不过别人的感觉?本篇就带领大家来看第二篇中虎头、猪肚、豹尾在短信、微信、邮件甚至会议发言时展现出来的威力原创 2022-02-03 17:25:35 · 7666 阅读 · 0 评论 -
程序员文档写作能力(二)-大三段式构架你的文档
计算机、程序员其实是一门“科学”工作,它不只是增删改查,它涉及到很多点。只有“想清了才能少返工”,因此本人以最常碰到以及最实用、马上拿来可以用为出发点讲透一篇通用设计文档需要怎么写。原创 2022-02-02 18:50:54 · 6613 阅读 · 1 评论 -
程序员突破年薪50万的唯一门坎-文档写作能力(一)
第一篇算是一个导论不知道大家有没有经常回溯、追溯或者抱怨过这样的内容。第一种抱怨:工作了4年、5年,晋升不明显,最最多做到一个小Team Leader,管了3-5个人。跳来跳去工资增涨只不过多个2千、3千。而眼看着快有希望一年突破50万时,已经35,36了。然后一旦公司有一个什么风吹草动,就等着被优化了。天天受到这样的心灵“煎熬”。 第二种抱怨:天天我们PM、我们老大要我们写文档,文档我是写了,可是我不是作协的啊,我交付的是代码不就可以了,写这种东西有什么用呢?要看文档?不如去看代码。 第三种抱原创 2022-02-01 13:47:43 · 2146 阅读 · 1 评论 -
Redis布隆防击穿实战-如何解决布隆值在被刷新时出现的真空期
大促、抢券、抢红包系统在面临大促时,会面临笔直上升的流量访问趋势。如果流量是“慢慢爬升”,这对系统的考验其实是很一般的。系统最怕的就是笔直上升的流量直线趋势。如下面这种图,直线几乎为90度爬升,每秒超过5,000,8,000甚至几万的并发。此时市面上90%的系统都顶不住。笔者在近9年的互联网生涯中一直对于流量进行过分析。这种流量里往往真实的业务流量只会占到80%甚至不到,很多大量是一些非正常请求,你们也可以认为是“黑产”流量。因为在大促、抢券、领红包、秒杀时会引来很多“苍蝇”。如我在之前原创 2022-01-30 11:23:33 · 1948 阅读 · 0 评论 -
如何使用互联网技术来设计和制作支付交易系统和抢红包
交易系统讲究的是:业务幂等,不能多扣不能少扣。在满足业务幂等的前提下又要满足互联网级别的并发该怎么做?本人经过一段时间调研、分析发现其实跳脱BAT领域的一些头部企业竟然有99%的软件团队、人员不知道该怎么做大并发场景下的扣款、抢红包这些场景。因此写下此文用于对比没有锁、传统悲观锁、CAS乐观锁、Redis自续约锁在面对扣款、抢购、抢券、秒杀等场景下的不同做法以及真实压力场景下的直观性能比较。原创 2022-01-09 19:34:25 · 1330 阅读 · 4 评论 -
rabbitmq集群搭建以及万级并发下的性能调优
一、服务器列表ROLE OPERATING SYSTEM NAME SIZE AVAILABILITY SET PRIVATE IP ADDRESS DATA DISKS MOUNT POINT Environment version Listen Port RabbitMQ01 OpenLogic/CentOS/7.4 aceta022vu11 Standard_DS2_v2(2 vcpus, 7 GB memor...原创 2021-05-11 10:17:56 · 4244 阅读 · 2 评论 -
zookeeper集群应对万级并发的调优
核心参数解说tickTime,这个参数叫各节点前心跳保持的频率,你即不能太高也不能太低,太高了各zk节点间万一有一个挂了那么整个zk的master群来不及选举出来了就会影响到整人本业务。如果太低了,那么zk群间因为频繁心跳而导致网络开销过大; initLimit,这个值是这样的,要看真实的并发连接的。类似这种initXXX值有一个通则,那就是理论上要把它设成和maxXXX一样,大家设想一下,一开始你设成1,然后整个connection pool发觉不够了开始+1,+1操作,这种“+1”操作是有系统开销原创 2021-05-11 09:47:23 · 2554 阅读 · 0 评论 -
彻底解决jdbc数据库连接超时重试-communication link failure的正确姿势
必须确保你的druid jdbc版本为1.2.6这个问题只有在druid 1.2.6里解决,因为只要是低于druid 1.2.6版本,本身就存在bug,无论你怎么设都会打断连接。背景我们经常会在日志中看到“jdbc connection timeout, last connection was 11,080 ms这样的错误。这个代表MYSQL主动把你的jdbc连接给踢掉了。为什么MYSQL要踢掉connection?这个很正常,那是因为:MYSQL不可能无限接在接受一个数据库连接请求原创 2021-05-11 09:40:03 · 15880 阅读 · 3 评论 -
全渠道零售中台与数字化转型(2)-从“业务”角度看数字化转型与中台的实施
前言 这篇文章其实是第1篇的补充,因此很多内容在上次第1篇里说过,只是这边用业务的角度、CTO、CIO、甚至是时下最流行的CDO、CSO的角度去理解第1篇中的为什么要采取那些技术上的点。假设你是一个刚踏上XXO岗位的新人,那么你会发觉这篇文章将成为你未来职业人生的引导; 如果你已经在XXO岗位了而你正陷入一些疑惑、困惑时你会发觉这篇文章为你理清乱绪提供了“排查入口”; 如果你是一个从互联网进入一些传统大型零售企业的XXO,你也同样会发觉该篇文章将帮助你“生存下去”的宝典;...原创 2021-03-25 13:45:41 · 3234 阅读 · 3 评论 -
API接口的加速利器-varnish使用大全(含生产集群环境布署)
Varnish是什么这是一张标准的新零售行业中的微服务化组件从前到后的架构概览图。我们都知道,凡是静态内容,一般我们都有cdn来进行缓存,cdn缓过的内容之前会从cdn处返回给到前端流量层客户端。但是,往往我们有一些这样的东西,相信大家并不陌生,如:http://localhost:8081/service/getBigResponse?userid=ymk,然后该api接口会返回下面这样的一个json串。[{"name":"abc","barcode":"","quantities"原创 2020-08-29 22:49:19 · 1480 阅读 · 2 评论 -
Cloudera Manager集群(CDH6.2.0.1)完整搭建指南
引子啊,大数据!其实并不难,难的是你“愿不愿意学”。因此我们以一篇大数据的环境搭建来入门。2005年,会在redhat 7上搭建oracle,搭完跑通,就能拿到5000块钱。因此,在那时流行着一句话:如何学linux?在linux上会装oracle了你就会linux了。那么大数据的安装将是在linux上安装10几个乃至几十个oracle的工作量,涉及到的知识之广,分门别类。在此,我以一文将这些知识点全部串通起来,使得按照此文安装的人员可以迅速在1天内即完成大数据集群的安装以及了解到一些相关的原创 2020-08-25 16:57:46 · 5673 阅读 · 2 评论 -
xxljob从入门到精通-全网段最全解说
XXL-JOB特性一览基本概念xxljob解决的是以下几个痛点:1) 跑批处理监控无法可视化,当前跑批的状态是:成功?失败?挂起?进度?为什么失败/原因?2)批处理任务不可重用,特别是无法对批处理任务做:定时?重复使用?频次?其中路由调度?3)批处理任务无法做到网格计算(特别像:websphere ibm grid computing)即批处理任务本身可以做成集群、fail over、sharding由其是批处理任务可以做成“网格计算”这个功能,有了xxljob后你会发觉特别强大原创 2020-06-05 18:16:54 · 14598 阅读 · 1 评论 -
mysql一主多从以及使用springboot aop进行读写分离的搭建的正确姿式
介绍这是一篇高度集中火力的生产环境中的mysql5.7一主多从以及结合spring boot进行读写分离的最全文档。主末笔者还会给出一个完整的基于spring boot的使用aop特性做完整项目读写分离的全代码与演示。本文涉及技术点如下:mysql5.7.30+版本 spring boot AOP haproxy keep alive1.目标mySQL层1主挂多从安装3台mysql服务器,三台服务分布如下:mySQL master: 192.168.2.101mySQ..原创 2020-06-03 15:54:44 · 2909 阅读 · 5 评论 -
mysql5.7性能提升一百倍调优宝典
全文中一共有常用的(事实上你如果花1-2周阅读、理解、自己动手设一下后是需要这么多参数的)76个参数,我是按照:每一个参数干吗? 在某些典型硬件配置下的db上参数该设多少? 设会怎么样? 不设会怎么样? 有什么坑如何填坑? 有些参数怎么算、算法又如何这种style来写的,具体请看文档!一千个DBA就有一千种配置方式!大家一定记得不要轻易去看网上,要看只看官网!网上很多博客都...原创 2020-05-06 10:07:36 · 18675 阅读 · 6 评论 -
冬日魔幻之旅-seata+dubbo+nacos+springboot解决分布式事务的全网段唯一实践之作(下)
开篇上篇中我们讲述了seata的基于2PC的AT事物实战篇。在下篇中我们将会非常详细的描述一下如何利用seata来实现TCC事务补偿机制的原理。目前网上所有的对于seata的TCC讲解只有一篇阿里原本的seata-tcc,它原本自带的这个例子有如下几个缺点:若干个provider混在一起 provider和consumer混在一个项目 不支持nacos连接 不支持注解然后网上所...原创 2020-01-26 02:44:52 · 2529 阅读 · 4 评论 -
冬日魔幻之旅-seata+dubbo+nacos+springboot解决分布式事务的全网段唯一实践之作(上)
开篇阿里把FESCAR开源了,开源后的名称叫SEATA。目前GIT上已经超1万3的星了。可是笔者遍历全网段,无一篇是生产实用级说明同时GIT官网上的相关文档缺失以及Sample都太HelloWorld了,无法应用在真正的生产环境上。于是笔者结合了在6,7年前那时在那个MQ年代来解决分布式事务的经验,结合这次的SEATA(最新一次COMMIT在2019年12月底)来讲一下最最新的也是目前...原创 2020-01-22 20:57:52 · 8909 阅读 · 28 评论 -
SpringBoot+Redis布隆过滤器防恶意流量击穿缓存的正确姿势
什么是恶意流量穿透假设我们的Redis里存有一组用户的注册email,以email作为Key存在,同时它对应着DB里的User表的部分字段。一般来说,一个合理的请求过来我们会先在Redis里判断这个用户是否是会员,因为从缓存里读数据返回快。如果这个会员在缓存中不存在那么我们会去DB中查询一下。现在试想,有千万个不同IP的请求(不要以为没有,我们就在2018年和2019年碰到了,因为...原创 2020-01-13 00:16:18 · 21044 阅读 · 10 评论