51CTO首页
AI.x社区
博客
学堂
精品班
软考社区
免费课
企业培训
鸿蒙开发者社区
WOT技术大会
IT证书
公众号矩阵
移动端
短视频
免费课程
课程排行
直播课
软考学堂
全部课程
厂商认证
IT技术
24年11月软考
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
其他
其他
物联网
云原生
数据库
操作系统
大数据
人工智能
开发语言
其他
社区版务
社区公告
社区生活
意见反馈
社区规则
社区活动
默认
发布时间
热度
原创
精华
热门标签
鸿蒙
华为
HarmonyOS
后端工程师的「跨域」之旅(一)
跨域,对后端工程师来说,可谓既熟悉又陌生。这两个月我以架构师的角色参与一款教育产品的孵化,有了一段难忘的跨域之旅。写这篇文章,我想分享我在跨域这个知识点上的经历和思考,希望对大家有所启发。1遇见跨域产品有多端:机构端,局方端,家长端等。每端都有独立的域名,有的是在PC上访问,有的是通过微信公众号来访问,有的是扫码后H5展现。接入层调用的接口域名统一使用api.training.com这个独立的域名,通过Nginx来配置...
iamwaiwai
0回复
5225浏览
跨域
专车数据层「架构进化」往事(二)
5从SQLServer到MySQL业务依然在爆炸增长,每天几十万订单,订单表数据量很快将过亿,数据库天花板迟早会触及。订单分库分表已成为技术团队的共识。业界很多分库分表方案都是基于MySQL数据库,专车技术管理层决定先将订单库整体先从SQLServer迁移到MySQL。迁移之前,准备工作很重要:1.SQLServer和MySQL两种数据库语法有一些差异,订单服务必须要适配MySQL语法。2.订单orderid是主键自增,但在分布式场景中并不合适,需要将订单i...
iamwaiwai
0回复
4605浏览
架构进化
Kafka 精妙的高性能设计(下篇)
大家好,我是武哥。这是《吃透MQ系列》的连载:Kafka高性能设计的下篇。在上一篇文章中,指出了高性能设计的两个关键维度:计算和IO,可以将它们理解成「道」。同时给出了Kafka高性能设计的全景图,可以理解成「术」。图1:Kafka高性能设计的全景图这篇文章将继续对存储消息和消费消息的8条高性能设计手段,逐个展开分析,废话不多说,开始发车。1.存储消息的性能优化手段存储消息属于Broker端的核心功能,下面是它所采用的4条...
samri
0回复
6048浏览
Kafka
《吃透 MQ 系列》之 Kafka 存储选型的奥秘
大家好,我是武哥。这是《吃透MQ系列》之Kafka的第3篇,错过前两篇文章的,建议再温习下:扒开Kafka的神秘面纱Kafka架构设计的任督二脉从这篇文章开始,我将从微观角度切入,深入分析Kafka的设计原理。本文要讲的是Kafka最具代表性的:存储设计。谈到Kafka的存储设计,了解不多的同学,可能会有这样的疑惑:为什么Kafka会采用Logging(日志文件)这种很原始的方式来存储消息,而没考虑用数据库或者KV来做存储?而对Kafka有所了...
samri
0回复
5530浏览
Kafka
《吃透 MQ 系列》之 Kafka 架构设计的任督二脉
大家好,我是武哥。这是《吃透MQ系列》的第三篇,有关Kafka的架构设计。这篇文章将带着大家参透:到底什么是Kafka架构设计的任督二脉?把握住了这个关键点,我相信你将能更好地理解Kafka的架构设计,进而顺藤摸瓜地掌握Kafka的核心技术方案。废话不多说了,开始发车。1.Kafka的技术难点究竟在哪?前一篇文章《扒开Kafka的神秘面纱》交代了两个关键信息:1、Kafka为实时日志流而生,要处理的并发和数据量非常大。可见,Kafka本身...
samri
0回复
4104浏览
Kafka
后端思想篇:设计好接口的36个锦囊!
前言大家好,我是捡田螺的小男孩。作为后端开发,不管是什么语言,Java、Go还是C++,其背后的后端思想都是类似的。后面打算出一个后端思想的技术专栏,主要包括后端的一些设计、或者后端规范相关的,希望对大家日常工作有帮助哈。我们做后端开发工程师,主要工作就是:如何把一个接口设计好。所以,今天就给大家介绍,设计好接口的36个锦囊。本文就是后端思想专栏的第一篇哈。1.接口参数校验入参出参校验是每个程序员必备的基本...
chujichenxuyuan
0回复
2.3w浏览
接口
多线程批量拆分 List 导入数据库!
一、前言前两天做了一个导入的功能,导入开始的时候非常慢,导入2w条数据要1分多钟,后来一点一点的优化,从直接把list怼进Mysql中,到分配把list导入Mysql中,到多线程把list导入Mysql中。时间是一点一点的变少了。非常的爽,最后变成了10s以内。下面就展示一下过程。二、直接把list怼进Mysql使用mybatis的批量导入操作:Transactional(rollbackForException.class)publicintaddFreshStudentsNew2(List<FreshStudentAndStudent...
chujichenxuyuan
0回复
6718浏览
List
实战篇:一个核心系统 3 万多行代码的重构之旅
经典著作《重构》这本书中有这么一段话:一开始,我所做的重构都停留在细枝末节上。随着代码趋向简洁,我发现自己可以看到一些设计层面的东西了,这些是我以前理解不到的,如果没有重构,我达不到这种高度。重构,着实是一件让程序员兴奋的事情。今年年初,我们团队完成了一个复杂项目的重构工作,它属于广告系统最核心的引擎部分,大概有300多个文件,3万多行代码。从技术方案设计到最终全量上线仅仅花了1个月左右的时间,而且...
samri
0回复
6785浏览
核心系统
oppo后端16连问(二)
4.你们的接口幂等是如何保证的?如果你调用下游接口超时了,是不是考虑重试?如果重试,下游接口就需要支持幂等啦。实现幂等一般有这8种方案:•select+insert+主键唯一索引冲突•直接insert+主键唯一索引冲突•状态机幂等•抽取防重表•token令牌•悲观锁(如selectforupdate,很少用)•乐观锁•分布式锁大家平时是用哪个方案解决幂等的,最后结合工作实际讲讲哈。可以看下我之前这篇文章:聊聊...
chujichenxuyuan
0回复
7032浏览
oppo
oppo后端16连问(五)
12.如何快速判断一个数是奇数还是偶数,除开对2取余呢。判断一个数是奇数还是偶数,我们最容易想到的就是对2取余。if(x%2)奇数else偶数还有一种方法,就是与1相与(&1),具体实现如下:if(x&1)奇数else偶数13.Spring声明式事务原理?哪些场景事务会失效?13.1声明式事务原理spring声明式事务,即Transactional,它可以帮助我们把事务开启、提交或者回滚的操作,通过Aop的方式进行管理。在spring的bean的初始化过程中,就需要对...
chujichenxuyuan
0回复
6404浏览
oppo
后端必备:如何排查问题以及jvm调优思路(一)
大家好,我是田螺。今天跟大家就CPU、磁盘、网络及内存方面的问题,聊聊如何排查和调优。•CPU过高,怎么排查问题•linux内存•磁盘IO•网络IO•java应用内存泄漏和频繁GC•java线程问题排查•常用jvm启动参数调优linuxCPU过高,怎么排查问题CPU指标解析•平均负载◆平均负载等于逻辑CPU个数,表示每个CPU都恰好被充分利用。如果平均负载大于逻辑CPU个数,则负载比较重•进程上下文切换◆...
chujichenxuyuan
0回复
6315浏览
内存问题
一个架构师的缓存修炼之路
本文作者:张勇,现任科大讯飞高级架构师。11年后端经验,曾就职于同程艺龙、神州优车等公司。乐于分享、热衷通过自己的实践经验平铺对技术的理解。一位七牛的资深架构师曾经说过这样一句话:“Nginx+业务逻辑层+数据库+缓存层+消息队列,这种模型几乎能适配绝大部分的业务场景。这么多年过去了,这句话或深或浅地影响了我的技术选择,以至于后来我花了很多时间去重点学习缓存相关的技术。我在10年前开始使用缓存,从本地缓存、...
samri
0回复
5570浏览
架构师
那些追源码的平凡之路
在斯坦福大学,乔布斯做了一场我认为他最精彩的演讲。他讲的第一个故事是connectingthedots,这也是贯穿他一生非常重要的思想。“你不可能充满预见地将生命的点滴串联起来;只有在你回头看的时候,你才发现这些点点滴滴之间的联系。所以,你要坚信,你现在所经历的将在你未来的生命中串联起来…正是这种信仰让我不会失去希望,它让我的人生变得与众不同。”我不禁在想:我的编码以及架构生涯中,那些点是什么,又终将会连成怎样...
samri
0回复
6161浏览
源码
oppo后端16连问(三)
8.数据库隔离级别是否了解?你们的数据库默认隔离级别是?为什么选它?四大数据库隔离级别,分别是读未提交,读已提交,可重复读,串行化(Serializable)。•读未提交:事务即使未提交,却可以被别的事务读取到的,这级别的事务隔离有脏读、重复读、幻读的问题。•读已提交:当前事务只能读取到其他事务提交的数据,这种事务的隔离级别解决了脏读问题,但还是会存在不可重复读、幻读问题;•可重复读:限制了读取...
chujichenxuyuan
0回复
5792浏览
oppo
我给Apache顶级项目提了个Bug(二)
03问题分析上一章节基本把这个Bug相关的原理知识介绍清楚了,下面正式进入问题的分析过程。最开始拿到这个问题,我也是比较头秃的,尤其看到读者下面这段信息。当然,我的功力是达不到盲猜水平的,说下我的完整思路。第1步复现问题我让读者给我打包发了Demo的源代码、数据库脚本以及ShardingProxy配置,然后本地安装了ShardingProxy4.1.1版本,再通过Navicat连接到ShardingProxy执行数据库脚本,环境基本就准备完毕了。启动Demo...
samri
0回复
5597浏览
Apache
oppo后端16连问(一)
前言大家好,我是程序员田螺。最近有位读者去面试了oppo,给大家整理了面试真题的答案。希望对大家有帮助哈,一起学习,一起进步。1.聊聊你印象最深刻的项目,或者做了什么优化。2.你项目提到分布式锁,你们是怎么使用分布式锁的3.常见分布式事务解决方案4.你们的接口幂等是如何保证的?5.你们的MySQL架构是怎样的?6.常见的索引结构有?哈希表结构属于哪种场景?7.给你ab,ac,abc字段,你是如何加索引的?8.数据库隔离级别是否...
chujichenxuyuan
0回复
5566浏览
oppo
我给Apache顶级项目提了个Bug(一)
这篇文章记录了给Apache顶级项目分库分表中间件ShardingSphere提交Bug的历程。说实话,这是一次比较曲折的Bug跟踪之旅。10月28日,我们在GitHub上提交issue,中途因为官方开发者的主观臆断被Close了两次,直到11月20日才被认定成Bug并发出修复版本,历时20多天。本文将还原该Bug的分析过程,将有价值的经验和技术点进行提炼。通过本文,你将收获到:1、疑难问题的排查思路2、数据库中间件ShardingProxy的原理3、MySQL预编译的流...
samri
0回复
5509浏览
Apache
oppo后端16连问(四)
10.你们项目使用了RocketMQ对吧?那你知道如何保证消息不丢失吗?一个消息从生产者产生,到被消费者消费,主要经过这3个过程:1.生产者产生消息2.消息发送到存储端,保存下来3.消息推送到消费者,消费者消费完,ack应答。因此如何保证MQ不丢失消息,可以从这三个阶段阐述:•生产者保证不丢消息•存储端不丢消息•消费者不丢消息10.1生产者保证不丢消息生产端如何保证不丢消息呢?确保生产的消息能顺利到达存储端。...
chujichenxuyuan
0回复
5236浏览
oppo
编程高手是如何练成的?
每个人都有成长的渴望,也都会遇到成长的瓶颈。下面这个问题是一个读者问我的:如何才能训练成为一个编程高手?先简单说下这个读者的背景:工作3年多,目前在大厂做后台开发,身边有不少编程高手,是他想要追赶的目标。最近半年时间,他花了一些精力在研究源码和底层原理上,但总觉得这些知识和实际工作衔接不好,提升很慢,学习动力也越来越差,希望我能给点建议。我和他语音聊了半个小时,讲了一些我个人以及身边同事的案例。...
samri
0回复
4960浏览
编程
面试必备:聊聊分布式锁的多种实现!(一)
前言大家好,我是捡田螺的小男孩。今天跟大家探讨一下分布式锁的设计与实现。希望对大家有帮助,如果有不正确的地方,欢迎指出,一起学习,一起进步哈•分布式锁概述•数据库分布式锁•Redis分布式锁•Zookeeper分布式锁•三种分布式锁对比1.分布式锁概述我们的系统都是分布式部署的,日常开发中,秒杀下单、抢购商品等等业务场景,为了防⽌库存超卖,都需要用到分布式锁。分布式锁其实就是,控制分布式系...
chujichenxuyuan
0回复
7441浏览
分布式锁
暂无内容
1
62
63
64
65
66
67
68
69
70
71
精选
客服
订阅鸿蒙技术特刊,精选内容抢先看
微信扫码关注,即刻订阅