51CTO首页
AI.x社区
博客
学堂
精品班
软考社区
免费课
企业培训
鸿蒙开发者社区
信创认证
公众号矩阵
移动端
视频课
免费课
排行榜
短视频
直播课
软考学堂
全部课程
软考
信创认证
华为认证
厂商认证
IT技术
PMP项目管理
免费题库
在线学习
文章
资源
问答
课堂
专栏
直播
51CTO
鸿蒙开发者社区
51CTO技术栈
51CTO官微
51CTO学堂
51CTO博客
CTO训练营
鸿蒙开发者社区订阅号
51CTO软考
51CTO学堂APP
51CTO学堂企业版APP
鸿蒙开发者社区视频号
51CTO软考题库
鸿蒙开发者社区
首页
帖子
问答
资源
课堂
直播
发现
登录/注册
51CTO
中国优质的IT技术网站
51CTO博客
专业IT技术创作平台
51CTO学堂
IT职业在线教育平台
活动
短视频
专栏
极客Show
鸿蒙技术特刊
我的关注
全部帖子
操作系统
OpenHarmony
HarmonyOS
其他
应用开发
卡片开发
三方库
IDE
其他
设备开发
海思开发板
树莓派
其他
框架语言
C/C++
Java
JavaScript
ArkUI / eTS
其他
其他
物联网
云原生
数据库
操作系统
大数据
人工智能
开发语言
其他
社区版务
社区公告
社区生活
社区规则
意见反馈
社区活动
默认
发布时间
热度
原创
精华
热门标签
harmony
纯血
harmonyos
追源码的平凡之路
引言在斯坦福大学,乔布斯做了一场我认为他最精彩的演讲之一(另一场可能是iphone的问世发布会)。他讲了第一个故事"connectingthedots"你不可能充满预见地将生命的点滴串联起来;只有在你回头看的时候,你才发现这些点点滴滴之间的联系。所以,你要坚信,你现在所经历的将在你未来的生命中串联起来。你不得不相信某些东西,你的直觉、命运、生活、因缘际会……正是这种信仰让我不会失去希望,它让我的人生变得与众不同。什么是连...
iamwaiwai
0回复
6904浏览
追源码
后端思维篇:统一参数校验、异常处理、结果返回
前言大家好,我是捡田螺的小男孩。本文是后端思维专栏的第四篇哈,今天这篇比较简单。日常工作中,我们开发接口时,一般都会涉及到参数校验、异常处理、封装结果返回等处理。如果每个后端开发在参数校验、异常处理等都是各写各的,没有统一处理的话,代码就不优雅,也不容易维护。所以,作为一名合格的后端开发工程师,我们需要统一校验参数,统一异常处理、统一结果返回,让代码更加规范、可读性更强、更容易维护。•使用...
iamwaiwai
0回复
9481浏览
参数校验
后端思维篇:如何抽一个观察者模板(一)
前言大家好,我是捡田螺的小男孩。本文是后端思维专栏的第五篇哈,我的整个后端思维专栏都是跟日常工作相关的哈。今天跟大家聊聊什么是观察者模式,如何应用到工作实践中,以及如何抽取一个观察者模板。1.观察者模式定义2.观察者模式的应用场景3.如何实现一个简单的观察者模式4.工作中,如何使用观察者模式的5.Spring观察者模式原理6.基于spring观察者模式,抽取一个通用模板7.唠叨几句,总结一下1.观察者模式定义观察者模式,...
HoverInTheSky
0回复
7176浏览
spring
jstack那些事(二)
4编码习惯引导4.1设置线程名线程名设置主要是为了在jstack堆栈中便于查询。在logback日志中最好也标注下线程名。当遇到问题也有一个查询源。线程名有如下两种方式:•手工设置线程名ThreadtnewThread(newRunnable(){Overridepublicvoidrun(){somethingprocess}});t.setName("mytestThread");t.start();•线程工厂设置(源码来自rocketmq4.4)publicclassThreadFactoryImplimplementsThreadFactory{privatefinalAtomicLon...
iamwaiwai
0回复
7624浏览
jstack
2013年,我有点喜欢编程了
知乎上有一个热门问题:你的编程能力从什么时候开始突飞猛进?初看到这个问题,我的嘴角微微上扬。记忆闪回到了2013年,那一年,命运给我了一点点正反馈,我有点喜欢编程了。这篇文章,我想和大家聊聊勇哥读书,看源码,重构,解决线上问题的那些事。1.初心2011年,我服务于一家互联网彩票公司。坦率的讲,选择程序员这个职业,仅仅是为了生存。那个时候,我对缓存,消息队列,分布式,JVM一知半解,背了一些八股文,只是能非常...
iamwaiwai
0回复
5862浏览
重构
技术生涯10年,那些让我心动的技术书
英国著名哲学家培根说:“求知可以改进人性,而实验又可以改进知识本身。人的天性犹如野生的花草,求知学习好比修剪移栽。”我小时候就很喜欢看书,也喜欢买书。书就像是我的朋友,不管去任何地方,只要拿本书在手心里,就觉得有安全感。我买的第一本技术书是<<Java编程思想>>。相信很多初学者都看过这本书。书是个大块头,也有大智慧。初入职场的我看这本书却味如嚼蜡,始终不得要领。工作几年后,我才明白我为什么读不进这本书。...
iamwaiwai
0回复
7023浏览
构架图
索引下推,这个点你肯定不知道!
索引下推(IndexConditionPushdown)ICP是Mysql5.6之后新增的功能,主要的核心点就在于把数据筛选的过程放在了存储引擎层去处理,而不是像之前一样放到Server层去做过滤。虽然这是一个比较简单的概念,但是可能很多不细心的同学对于索引下推会存在一个小小的误区,至于是什么,请看下文。什么是索引下推首先,我们创建一张user表,同时建立agename的联合索引,同时插入3条测试数据。然后,我们执行查询explainSELECTfromuserwhere...
HoverInTheSky
0回复
7310浏览
索引下推
阅读JDK源码后,我有了优化它的冲动...
原创
读源码时的思考最近在看concurrent包下线程池的源码,当我看到ThreadPoolExecutor类的时候,发现了JDK源码的一个问题。以下是ThreadPoolExecutor类的addWorker方法的代码片段:javabooleanworkerStartedfalse;booleanworkerAddedfalse;Workerwnull;try{wnewWorker(firstTask);finalThreadtw.thread;if(t!null){finalReentrantLockmainLockthis.mainLock;mainLock.lock();try{intrsrunStateOf(ctl.get());if(rs<SHUTDOWN(rsSHUTD...
万猫学社
0回复
6498浏览
JDK
一文快速入门分库分表中间件 Sharding-JDBC (必修课)(二)
SQL解析SQL解析过程分为词法解析和语法解析两步,比如下边这条查询用户订单的SQL,先用词法解析将SQL拆解成不可再分的原子单元。在根据不同数据库方言所提供的字典,将这些单元归类为关键字,表达式,变量或者操作符等类型。SELECTorderno,priceFROMtorderwhereuserid10086andorderstatus>0接着语法解析会将拆分后的SQL转换为抽象语法树,通过对抽象语法树遍历,提炼出分片所需的上下文,上下文包含查询字段信息(Field)、表信...
iamwaiwai
0回复
8871浏览
Sharding-JDBC
一文快速入门分库分表中间件 Sharding-JDBC (必修课)(一)
作为ShardingJDBC分库分表实战系列的开篇文章,我们在前文中回顾了一下分库分表的基础知识,对分库分表的拆分方式有了一定的了解,下边我们介绍一下ShardingJDBC框架和快速的搭建一个分库分表案例,为讲解后续功能点准备好环境。一、ShardingJDBC简介ShardingJDBC最早是当当网内部使用的一款分库分表框架,到2017年的时候才开始对外开源,这几年在大量社区贡献者的不断迭代下,功能也逐渐完善,现已更名为ShardingSphere,2020...
iamwaiwai
0回复
1.5w浏览
Sharding-JDBC
给女朋友讲 : Java线程池的内部原理
原创
餐厅的约会餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!”大龄程序员老王老王是一个已经北漂十多年的程序员,岁数大了,加班加不过年轻人,升迁也无望,于是拿着手里...
万猫学社
0回复
7048浏览
Java
三分钟后,你将学会在SpringBoot项目中如何集成CAT调用链
原创
买买买结算系统一年一度的双十一购物狂欢节就要到了,又到剁手党们开始表演的时刻了。当我们把种草很久的商品放入购物车以后,点击“结算”按钮时,就来到了买买买必不可少的结算页面了。让我们虚拟一个买买买结算系统,为结算页面提供商品、促销、库存等结算信息,就此系统展开如何在SpringBoot项目中集成CAT调用链。买买买结算系统包含以下4个项目:1.结算UI:为前端页面提供结算的基础数据。2.购物车API:获取用户购物车中有...
万猫学社
0回复
8379浏览
SpringBoot
cat
分布式监控CAT服务端的本地部署
原创
一、CAT简介CAT(CentralApplicationTracking),是美团点评基于Java开发的一套开源的分布式实时监控系统。美团点评基础架构部希望在基础存储、高性能通信、大规模在线访问、服务治理、实时监控、容器化及集群智能调度等领域提供业界领先的、统一的解决方案,CAT目前在美团点评的产品定位是应用层的统一监控组件,在中间件(RPC、数据库、缓存、MQ等)框架中得到广泛应用,为各业务线提供系统的性能指标、健康状况、实时告警等...
万猫学社
0回复
8177浏览
cat
分布式调用链
彻底掌握分布式事务2PC、3PC模型(一)
分布式事务系列第一篇文章工作中使用最多的是本地事务,但是在对单一项目拆分为SOA、微服务之后,就会牵扯出分布式事务场景文章以分布式事务为主线展开说明,并且针对2PC、3PC算法进行详细的讲解,最后通过一个Demo来更深入掌握分布式事务,文章目录结构如下什么是事务什么是分布式事务DTP模型和XA规范什么是DTP模型什么是XA规范2PC一致性算法2PC准备阶段2PC提交阶段2PC算法优缺点3PC一致性算法JDBC操作MySQLXA事务结言什么是事...
Handpc
0回复
6048浏览
事务
今天,说一说线程池 “动态更新”(三)
动态的阻塞队列线程池中是以生产者消费者模式,通过一个阻塞队列来缓存任务,工作线程从阻塞队列中获取任务。工作队列的接口是阻塞队列(BlockingQueue),在队列为空时,获取元素的线程会等待队列变为非空,当队列满时,存储元素的线程会等待队列可用阻塞队列动态设置队列大小,有很多种操作方式。可以按照原逻辑不变加一些扩展,也可以在特定方法上进行重写,实现方式并不固定。下面说几种可以实现动态阻塞队列功能的方案复制...
Handpc
0回复
7208浏览
Thread Pool
彻底掌握分布式事务2PC、3PC模型(二)
DTP模型和XA规范XOpen组织定义了分布式事务的模型(DTP)和分布式事务协议(XA),DTP由以下几个模型元素组成AP(Application应用程序):用于定义事务边界(即定义事务的开始和结束),并且在事务边界内对资源进行操作TM(TransactionManager事务管理器):负责分配事务唯一标识,监控事务的执行进度,并负责事务的提交、回滚等RM(ResourceManager资源管理器):如数据库、文件系统等,并提供访问资源的方式CRM(CommunicationR...
Handpc
0回复
8628浏览
事务
某厂面试:如何优雅使用 SPI 机制(一)
代码不多,文章可能有点长。朋友面试某厂问到的SPI机制,联想到自己项目最近写到的SPI场景,文章简要描述下SPI机制的发展历程产出背景因为最近项目中使用分库分表以及数据加密使用到了ShardingSphere,所以决定这段时间看看源码实现。问我为什么要读源码?不看源码怎么提高逼格嘞,就是这么朴实无华~考虑到自己看微信文章的习惯,不喜欢代码太多的,看着逻辑有点不清晰。所以,以后的文章风格就是,少贴代码,画图+BBShardingJ...
Handpc
0回复
6463浏览
SPI
火遍全网的Hutool,如何使用Builder模式构建线程池
前言Builder设计模式也叫做构建者模式或者建造者模式,名字只是一种叫法,当聊起三种名称的时候知道是怎么回事就行Builder设计模式在作者编码过程中,属于比较常用的模式之一。优秀的设计模式总是会受到广大开发者的青睐,Hutool也是其中之一因为上周编写的业务需要用到线程池,就去Hutoolthread包下看了看,还真有惊喜,学习到了一种之前编码中没用过的Builder模式实现这里必须提一句:设计模式重要的是思想,一种设计模式可能...
Handpc
0回复
9740浏览
设计模式
线上问题复盘,JVM Fast Throw 的故事
文章字数1.3k左右,阅读时长5分钟首先,这是一个悲伤的故事,涉及到JVM底层优化的知识点。想到第一次碰到这种问题时的懵逼,应了句老话:书到用时方恨少!负责的消息中台在晚上八点左右,运维群里反馈大量用户接收不到短信消息。登陆Kibana查找对应的Error日志,发现出现了大量的下标越界异常当时更...,线上问题得到了修复。但是,出现问题可不得找到问题的产出原因,不然下次有可能还会出现因为在ELK上进行日志分析不太方便,...
Handpc
0回复
6871浏览
JVM
Guava、Spring 如何抽象观察者模式?(二)
观察者模式结合业务因为公司业务场景保密,所以下面我们通过【新警察故事】的电影情节,稍微篡改下剧情,模拟出我们的观察者模式应用场景假设:目前我们有三个警察,分别是龙哥、锋哥、老三,他们受命跟进犯罪嫌疑人阿祖。如果发现犯罪嫌疑人阿祖有动静,龙哥、峰哥负责实施抓捕行动,老三向警察局摇人,流程图如下:如果说使用常规代码写这套流程,是能够实现需求的,一把梭的逻辑可以实现一切需求。但是,如果说下次行动,龙...
Handpc
0回复
6734浏览
Guava
Spring
暂无内容
1
64
65
66
67
68
69
70
71
72
80
精选
客服
订阅鸿蒙技术特刊,精选内容抢先看
微信扫码关注,即刻订阅