首页
学习
活动
专区
工具
TVP
发布

Linyb极客之路

专栏成员
1077
文章
1962148
阅读量
128
订阅数
面试官:Redis 性能优化都有哪些方法?
Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻谨记优化铁则,才能使得Redis性能发挥到极致。
lyb-geek
2022-11-18
1.3K0
19个小细节,让你提升Java代码的运行效率
由于堆资源是多线程共享的,是垃圾回收器工作的主要区域,过多的对象会造成 GC 压力。可以通过局部变量的方式,将变量在栈上分配。这种方式变量会随着方法执行的完毕而销毁,能够减轻 GC 的压力。
lyb-geek
2022-11-18
8110
支撑百万并发的数据库架构如何设计?
看到这个题目,很多人第一反应就是:分库分表啊!但是实际上,数据库层面的分库分表到底是用来干什么的,其不同的作用如何应对不同的场景,我觉得很多同学可能都没搞清楚。 用一个创业公司的发展作为背景引入—— 假如我们现在是一个小创业公司,注册用户就 20 万,每天活跃用户就 1 万,每天单表数据量就 1000,然后高峰期每秒钟并发请求最多就 10。 天呐!就这种系统,随便找一个有几年工作经验的高级工程师,然后带几个年轻工程师,随便干干都可以做出来。 因为这样的系统,实际上主要就是在前期进行快速的业务功能开发,搞一个单块系统部署在一台服务器上,然后连接一个数据库就可以了。 接着大家就是不停地在一个工程里填充进去各种业务代码,尽快把公司的业务支撑起来。 如下图所示:
lyb-geek
2022-03-10
6450
几个面试官常问的Shell脚本编写
5)有两个命令能帮助我调试脚本:set -e 遇到执行非0时退出脚本,set-x 打印执行过程。
lyb-geek
2022-03-10
3260
Https、SSL/TLS相关知识及wireShark抓包分析
在HTTP协议中,所有报文的发送、接收都是以明文的形式进行的。也就是说,在TCP/IP五层网络模型中,数据直接以明文的形式从应用层(HTTP)发送给传输层(TCP),之间没有任何加密过程,如下图所示:
lyb-geek
2022-03-10
2K0
SpringBoot的@Conditional使用
在开发Spring Boot应用程序时,如果满足某些条件,我们有时只想将bean或模块加载到应用程序上下文中。然后在测试期间禁用某些bean,或者在运行时环境中对某个属性做出反应。
lyb-geek
2022-03-10
2.1K0
Java多线程傻瓜入门介绍
现代计算机能够同时执行多个操作。在硬件改进和更智能的操作系统的支持下,多个操作的功能使您的程序在执行速度和响应速度方面运行得更快。
lyb-geek
2022-03-10
5190
Nginx Location指令配置及常用全局变量
Nginx 中的 Location 指令 是NginxHttpCoreModule中重要指令。Location 指令比较简单,但却是配置 Nginx 过程中不得不去了解的。 Location 指令,是用来为匹配的 URI 进行配置,URI 即语法中的”/uri/”,可以是字符串或正则表达式。但如果要使用正则表达式,则必须指定前缀。
lyb-geek
2022-03-10
1.9K0
如何高效编写可维护代码?
在代码中找到一个放错地方并且没有用的注释是不是很有趣呢?怎么样才能做到写很少的注释但仍能让代码易于理解呢?
lyb-geek
2022-03-10
5730
限流技术总结
在开发高并发系统时,有很多手段来保护系统,如缓存、降级、限流等。缓存可以提升系统的访问速度,降级可以暂时屏蔽掉非核心业务,使得核心业务不受影响。限流的目的是通过对并发访问进行限速,一旦达到一定的速率就可以拒绝服务(定向到错误页或告知资源没有了)、排队等待(如秒杀、评论、下单等)、降级(直接返回兜底数据,如商品库存默认有货)。
lyb-geek
2022-03-10
3060
微服务接口限流的设计与思考
微服务拆分之后,系统之间的调用关系错综复杂,平台的整体复杂熵升高,出错的概率、debug 问题的难度都高了好几个数量级。所以,服务治理便成了微服务的一个技术重点。服务治理本身的概念比较大,包括鉴权、限流、降级、熔断、监控告警等等,本文聚焦于限流,根据笔者的实战经验,分享一些对微服务接口限流的思考。
lyb-geek
2022-03-10
5530
Java 中15种锁的介绍:公平锁,可重入锁,独享锁,互斥锁,乐观锁,分段锁,自旋锁等等
在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下:
lyb-geek
2022-03-10
9120
破解当前端出现“RangeError: Maximum call stack size exceeded”的N种思路
最近用谷歌浏览器调试时,控制台报了一个“Uncaught RangeError: Maximum call stack size exceeded”,其中文意思是超出最大调用堆栈大小,报错如下图所示:
lyb-geek
2022-03-10
16.2K0
Java 异步编程最佳实践
最近异步编程非常流行, 主要是它能够在多核系统上提高吞吐率。异步编程是一种编程方式,可以提高对UI的快速响应。 Java中的异步编程模型提供了一致性的编程模型, 可以用来在程序中支持异步。 本文讨论了在使用Java执行异步操作应该遵循的最佳实践。
lyb-geek
2022-03-10
8790
java常见内存溢出(OOM)解决方案
-Xms ,-Xmx(heap memory space)堆空间:Heap是大家最为熟悉的区域,他是jvm用来存储对象实例的区域,Heap在32位的系统中最大为2G,其大小通过-Xms和-Xmx来控制,-Xms为jvm启动时申请的最小Heap内存,默认为物理内存的1/64,但小于1G,-Xmx为jvm可申请的最大的Heap内存,默认为物理内存的1/4,一般也小于1G,默认当空余堆内存小于40%时,jvm会最大Heap的大小到-Xmx指定大小,可通过-XX:MinHeapFreeRatio来指定这个比例,当空余堆内存大于70%时,JVM会将Heap的大小往-Xms指定的大小调整,可通过-XX:MaxHeapFreeRatio来指定这个比例,但通常为了避免频繁调整HeapSize的大小,将-Xms和-Xmx的值设为相同。
lyb-geek
2022-03-10
8200
浅谈API安全设计
如果不对请求进行签名认证,那么可以简单的通过fiddler等工具轻易抓包拿到数据,并进行篡改,提交,大规模批量调用,则会使系统产生大量垃圾数据,系统资源被大量消耗,甚至无法正常使用(另说,当然可以通过GateWay进行限流),因而我们需要对请求进行签名认证。
lyb-geek
2022-03-10
7250
并发编程面试必备:AQS 原理以及 AQS 同步组件总结
AQS的全称为(AbstractQueuedSynchronizer),这个类在java.util.concurrent.locks包下面。
lyb-geek
2022-03-10
6220
并发编程之CAS和ABA问题
独占锁:是一种悲观锁,synchronized就是一种独占锁,会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。
lyb-geek
2022-03-10
1980
linux运维之当CPU飙高时,它在做什么
在开发过程中,有时候我们发现JVM占用的CPU居高不下,跟我们的预期不符,这时,CPU在做什么呢?是什么线程让CPU如此忙碌呢?我们通过如下几步,可以查看CPU在执行什么线程。
lyb-geek
2022-03-10
6600
并发编程之美,带你深入理解java多线程原理
多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率。线程是在同一时间需要完成多项任务的时候被实现的。
lyb-geek
2022-03-10
2330
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档