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 NEXT
HarmonyOS
鸿蒙
从代码级别的技术细节入手,看性能优化怎么做?
大家好,我是不才陈某本文想从一些技术细节上谈谈性能优化,主要是一些代码级别的技术和方法。本文的东西是作者的一些经验和知识,并不一定全对,欢迎大家指正和补充。1.系统性能定义让我们先来说说如何什么是系统性能。这个定义非常关键,如果我们不清楚什么是系统性能,那么我们将无法定位之。我见过很多朋友会觉得这很容易,但是仔细一问,其实他们并没有一个比较系统的方法,所以,在这里我想告诉大家如何系统地来定位性能...
Handpc
0回复
2662浏览
性能优化
公司系统太多,能不能实现账号互通?
大家好,我是不才陈某背景最近开发新产品,然后老板说我们现在系统太多了,每次切换系统登录太麻烦了,能不能做个优化,同一账号互通掉。作为一个资深架构狮,老板的要求肯定要满足,安排!一个公司产品矩阵比较丰富的时候,用户在不同系统之间来回切换,固然对产品用户体验上较差,并且增加用户密码管理成本。也没有很好地利用内部流量进行用户打通,并且每个产品的独立体系会导致产品安全度下降。因此实现集团产品的单点登...
Handpc
0回复
2171浏览
Session
Netty、Kafka中的零拷贝技术到底有多牛?
大家好,我是不才陈某今天深入理解一下零拷贝技术数据的四次拷贝与四次上下文切换很多应用程序在面临客户端请求时,可以等价为进行如下的系统调用:File.read(file,buf,len);Socket.send(socket,buf,len);例如消息中间件Kafka就是这个应用场景,从磁盘中读取一批消息后原封不动地写入网卡(NIC,Networkinterfacecontroller)进行发送。在没有任何优化技术使用的背景下,操作系统为此会进行4次数据拷贝,以及4次上下文切换,...
Handpc
0回复
3002浏览
零拷贝技术
为什么在做微服务设计的时候一定需要DDD?
大家好,我是不才陈某记得之前在规划和设计微服务架构的时候,张队长给了我一个至今依然记忆深刻的提示:你的设计蓝图里为什么没有看到DDD的影子呢?随着对充血模型的领域认知的加深,我越加感觉到DDD的重要性。于是网上一顿海找,并做了学习笔记。DDD内容繁多,个人浅见,它不同于传统贫血的最核心的一点就是把原先传统的贫血模型里的业务逻辑层拎出来,融入到Domain层,这样面对复杂业务的规模化变更,我们只需要专注于Domain...
Handpc
0回复
2782浏览
微服务
百亿级数据 分库分表 后怎么分页查询?
随着数据的日益增多,在架构上不得不分库分表,提高系统的读写速度,但是这种架构带来的问题也是很多,这篇文章就来讲一讲跨库表分页查询的解决方案。关于分库分表后的其他的问题,请看陈某前一篇文章:聊聊分库分表架构背景笔者曾经做过大型的电商系统中的订单服务,在企业初期时业务量很少,单库单表基本扛得住,但是随着时间推移,数据量越来越多,订单服务在读写的性能上逐渐变差,架构组也尝试过各种优化方案,比...
lhlrj
0回复
5014浏览
跨库/表分页查询
Netty 如何做到单机百万并发?
相信很多人知道石中剑这个典故,在此典故中,天命注定的亚瑟很容易的就拔出了这把石中剑,但是由于资历不被其他人认可,所以他颇费了一番周折才成为了真正意义上的英格兰全境之王,亚瑟王。说道这把剑,剑身上铭刻着这样一句话:ONLYTHEKINGCANTAKETHESWORDFROMTHESTONE。虽然典故中的theking是指英明之主亚瑟王,但是在本章中,这个king就是读者自己。我们今天不仅要从百万并发基石上拔出这把epoll之剑,也就是Netty,而且要利...
lhlrj
0回复
4227浏览
Netty
最安全的加密算法 Bcrypt,再也不用担心数据泄密了~
哈希(Hash)与加密(Encrypt)哈希(Hash)是将目标文本转换成具有相同长度的、不可逆的杂凑字符串(或叫做消息摘要),而加密(Encrypt)是将目标文本转换成具有不同长度的、可逆的密文。哈希算法往往被设计成生成具有相同长度的文本,而加密算法生成的文本长度与明文本身的长度有关。哈希算法是不可逆的,而加密算法是可逆的。HASH算法是一种消息摘要算法,不是一种加密算法,但由于其单向运算,具有一定的不可逆性,成为加...
lhlrj
0回复
3575浏览
Bcrypt
玩转Redis必备的几款运维工具,好用爆了~
我们在应用Redis时,经常会面临的运维工作,包括Redis的运行状态监控,数据迁移,主从集群、切片集群的部署和运维。接下来,我就从这三个方面,给你介绍一些工具。我们先来学习下监控Redis实时运行状态的工具,这些工具都用到了Redis提供的一个监控命令:INFO。最基本的监控命令:INFO命令Redis本身提供的INFO命令会返回丰富的实例运行监控信息,这个命令是Redis监控工具的基础。INFO命令在使用时,可以带一个参数section,这个...
lhlrj
0回复
3509浏览
redis
浅析VO、DTO、DO、PO的概念、区别和用处
本篇文章主要讨论一下我们经常会用到的一些对象:VO、DTO、DO和PO。由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念;概念VO(ViewObject):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。DTO(DataTransferObject):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据...
lhlrj
0回复
3114浏览
VO
DTO
DO
PO
Spring Boot 加一个注解,轻松实现 Redis 分布式锁
1.业务背景有些业务请求,属于耗时操作,需要加锁,防止后续的并发操作,同时对数据库的数据进行操作,需要避免对之前的业务造成影响。2.分析流程使用Redis作为分布式锁,将锁的状态放到Redis统一维护,解决集群中单机JVM信息不互通的问题,规定操作顺序,保护用户的数据正确。梳理设计流程新建注解interface,在注解里设定入参标志增加AOP切点,扫描特定注解建立Aspect切面任务,注册bean和拦截特...
lhlrj
0回复
3123浏览
Redis
Spring Boot
数据异构就该这样做,yyds~
何谓数据异构,上周交易部门商品的同事过来做分享,又看到这个词,他的PPT里面是数据库异构。其实我们以前做的事情,也是可以称之为数据异构。比如我们将DB里面的数据持久化到Redis里面去,就是一种数据异构的方式。如果要下个定义的话:把数据按需(数据结构、存取方式、存取形式)异地构建存储。常见应用场景分库分表中有一个最为常见的场景,为了提升数据库的查询能力,我们都会对数据库做分库分表操作。比如订单库,开始的...
lhlrj
0回复
2186浏览
数据异构
别用XShell了,这款SSH工具绝对惊艳,还支持网页版.....
大家好,我是不才陈某前面介绍过两款远程工具都是相当不错,如下:SSH远程神器之MobaXterm,替代Xshell免费的XShell替代品FinalShellFinalShell也是我个人一直在用的一款工具,体验还行,完全够用。今天介绍另外一款:TabbyTabbyTabby是一名老外在Github开源的终端连接的工具,至今已经累积36K+star。Tabby的功能特性大概有:支持多平台,Windows、MacOS(Intel芯片M1芯片)、Linux都有对应的安装包的;自带SFT...
Handpc
0回复
8530浏览
Tabby
被特斯拉偷了家,沙特油霸决定投资吉利
原创
一旦马斯克的计划开始大规模实施,就会动摇沙特的“国本”。特斯拉的投资者日没有吸引到投资者,还吓坏了沙特油霸。昨天,马斯克向投资者们公布了特斯拉“秘密宏图第三篇章”:投资10万亿美元,让地球完全摆脱化石能源,实现可持续发展。外界普遍认为马斯克这次画的大饼有些离谱,导致特斯拉的股价已经跌去了将近10%。但是沙特人丝毫不敢大意,因为一旦马斯克的计划开始大规模实施,就会动摇沙特的“国本”。于是,沙特人很快做...
智能车指北
0回复
3545浏览
新能源汽车
特斯拉
氢能源
策略+枚举 优雅的解决 if-else
想起刚开始接触JAVA面向对象编程时,若遇到大量流程判断语句,几乎满屏都是ifelse语句,多得让自己都忘了哪里是头,哪里是尾,但是,纵然满屏是ifelse,但彼时也没有觉得多别扭。等到编程能力渐渐提升之后,再回过头去看曾经写过的满屏ifelse时,脑海里只有一个画面,全都是翔.....可能初学者都会忽略掉一点,其实ifelse是一种面向过程的实现。那么,如何避免在面向对象编程里大量使用ifelse呢?网络上有很多解决思路,有工厂模...
lhlrj
0回复
2891浏览
面向对象编程
MQ系列8:数据存储,消息队列的高可用保障
1介绍在之前的章节中,我们介绍了消息的发送和消息通信的原理。但是这边有一个比较核心的关键点,那就是如果已经把消息传递给Broker。在Broker在被消费之前,如何保证消息的稳定性,避免消息丢失和数据。这时候就需要数据持久化数据来进行保障了。根据之前我们MQ系列2:消息中间件的技术选型章节做的分析,RabbitMQ支持1W+级别的吞吐,Kafka和Rocket支持10W+级别的吞吐,想要实现这么大的吞吐,必须具备一个很强悍的存储功能。...
我欲只争朝夕
0回复
4084浏览
RocketMQ
MQ系列9:高可用架构分析
1介绍消息中间件是指在分布式系统中完成消息的发送和接收的基础软件。消息中间件也可以称消息队列(MessageQueueMQ),互联网场景中经常使用消息中间件进行消息路由、订阅发布、异步处理等操作,来缓解系统的压力。引入消息队列主要是为了解决如下问题的:1、解耦:如订单系统,可以通过消息队列把削减库存的工作交给库存系统去处理,而不用等实时响应。2、执行有序性:先进先出原理,按照进入消息队列的顺序处理业务事件。3、...
我欲只争朝夕
0回复
4016浏览
RocketMQ
Redis系列11:内存淘汰策略
1前言通过前面的一些文章我们知道,Redis的各项能力是基于内存实现的,相对其他的持久化存储(如MySQL、File等,数据持久化在磁盘上),性能会高很多,这也是高速缓存的一个优势。但是问题来了,每一台机器内存终归是有限的,即使是集群模式,总的内存空间也是有限的,不能无限制的消耗。而在Redis的使用过程中,很有可能出现使用消耗超过内存实际大小的情况。比如以下几种情况:未设置过期时间,Redis的Key将一直存在,直至我...
我欲只争朝夕
0回复
3462浏览
Redis
架构与思维:再聊缓存击穿,面试是一场博弈
1介绍在之前的一篇文章《一次缓存雪崩的灾难复盘》中,我们比较清晰的描述了缓存雪崩、穿透、击穿的各自特征和解决方案,想详细了解的可以移步。最近在配合HR筛选候选人,作为大厂的业务方向负责人,招人主要也是我们自己团队在用,而缓存是必不可少的面试选项之一。下面我们就来聊一聊在特定业务场景下缓存击穿和雪崩的应对场景!2问题背景一个核心的应用或者服务(比如微信、钉钉、百度APP),高峰QPS是百万甚至是千万★分析...
我欲只争朝夕
0回复
3068浏览
缓存
Redis
Redis系列9:Geo 类型赋能亿级地图位置计算
1前言我们在第一篇深刻理解高性能Redis的本质的时候就介绍过Redis的几种基本数据结构,它是基于不同业务场景而设计的:动态字符串(REDISSTRING):整数(REDISENCODINGINT)、字符串(REDISENCODINGRAW)双端列表(REDISENCODINGLINKEDLIST)压缩列表(REDISENCODINGZIPLIST)跳跃表(REDISENCODINGSKIPLIST)哈希表(REDISHASH)整数集合(REDISENCODINGINTSET)除了这些常见数据类型,还有一些不常用的数据类型,如BitMap、Geo、HyperLogLog...
我欲只争朝夕
0回复
2744浏览
Redis
MQ系列10:如何保证消息幂等性消费
1介绍我们实际系统中有很多操作,不管你执行多少次,都应该产生一样的效果或返回一样的结果。例如:前端页面重复提交选中的数据,服务端只产生对应这个数据的一个反应结果,只保存一次数据。我们发起一笔付款请求,也只能扣用户账户一次钱,即使遇到网络重发或系统bug重发,也应该只扣一次金额。消息通知,也应该只能收到一次,如果收到多次的扣款通知短信,会让用户误解的。创建商品订单,一次业务请求只能创建一个,创建多个...
我欲只争朝夕
0回复
2715浏览
RocketMQ
暂无内容
1
69
70
71
72
73
74
75
76
77
151
精选
客服
订阅鸿蒙技术特刊,精选内容抢先看
微信扫码关注,即刻订阅