自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(262)
  • 收藏
  • 关注

原创 【无标题】

产品经理的平均年薪在美国超过 160,000 美元/年,在印度约为 25 卢比/年。美国 DevOps 工程师的平均年薪约为 176,000 美元,而在印度,约为 13-25 万卢比/年。在这项高薪技术工作中,您在美国的平均年薪超过 200,000 美元,在印度约为 200 万卢比/年。美国全栈开发人员的平均年薪为 164,000 美元,而在印度,约为 11-21 万卢比/年。美国系统分析师的平均年薪约为 145,000 美元,而在印度,约为 160 万卢比/年。对数据科学家的需求同比增长了29%。

2023-01-31 11:56:06 351 1

原创 2022年10大最重要的科技事件和突破!

7 月,美国宇航局的望远镜向我们展示了有史以来最古老(13.1B 岁)的宇宙图像。它将研究最早的恒星和星系,帮助我们了解宇宙的起源并找到可以承载生命的行星。全球第二大加密货币以太坊从PoW过渡到PoS。这是第一次反应产生的能量超过了它消耗的能量。

2023-01-31 11:42:23 562

原创 编程技术面试的7个英文网站,你知道几个?

CodeChef 的难度等级很高,有 3,000 多个问题。— 初学者友好 — 专家友好 如果您真的很勇敢,您还可以在技术问题上与其他人竞争。LeetCode可以说是最好的技术面试题练习平台。准备在最大的公司 Facebook、谷歌工作的开发人员使用 LeetCode。他们有各种大型科技公司使用的确切问题。他们甚至有免费的模拟面试。使用一下一个过滤器,就只看到困难的挑战,你将得到大量的问题,你可以用于面试准备。在这里展示你的技能,你可能最终得到一份工作机会。它对于学习代码或学习一种新的语言是很好的。

2023-01-31 11:38:46 540

原创 系统设计的7个基础概念!

当您的用户分布在不同的地理位置时,在合理的时间内将您的内容提供给他们将成为一个真正的挑战。通过了解概念,我的意思不仅仅是关于这些是什么的一些理论知识,而是关于应该在什么时候使用什么的更实际的实践经验。根据您的要求,根据您共享的内容类型,您可能需要决定使用哪种网络协议。此外,根据您的用例,您可能需要存储更频繁访问的信息或最近访问的信息。有一些组件是肯定需要的。有时我们的系统需要执行一些需要完成但不一定立即完成的任务,或者它们的结果不会影响用户的旅程。这确保了适当的资源利用,并且您的系统中没有单点故障。

2023-01-31 11:36:42 410

原创 如何使用 Java8 改造模板方法模式!

我们在日常开发中,经常会遇到类似的场景:当要做一件事儿的时候,这件事儿的步骤是固定好的,但是每一个步骤的具体实现方式是不一定的。通常,遇到这种情况,我们会把所有要做的事儿抽象到一个抽象类中,并在该类中定义一个模板方法。这就是所谓的模板方法模式。

2023-01-30 10:17:16 202

原创 如何应对 Redis 集群的数据倾斜问题

在切片集群中,数据会按照一定的分布规则分散到不同的实例上保存。比如,在使用 Redis Cluster 或 Codis 时,数据都会先按照 CRC 算法的计算值对 Slot(逻辑槽)取模,同时,所有的 Slot 又会由运维管理员分配到不同的实例上。这样,数据就被保存到相应的实例上了。虽然这种方法实现起来比较简单,但是很容易导致一个问题:数据倾斜。

2023-01-29 14:34:26 364

原创 谈谈非公平锁的性能为什么更高问题

在 Java 中 synchronized 和 ReentrantLock 默认使用的都是非公平锁,而它们采用非公平锁的原因都是一致的,都是为了提升程序的性能。那为什么非公平锁就能提升性能呢?接下来我们一起来看。

2023-01-29 13:59:39 201

原创 野心藏住不住了!OpenAI或在悄悄聘请国际承包商,以培训其软件工程方面的人工智能。

虽然OpenAI已经有一款名为Codex的产品,可以将自然语言转换为工作代码,但同时该公司的招聘热潮表明,它正在寻求推进这项技术,有可能为一些人类程序员创造一个工作替代品。这可能涉及找到解决他们的问题的方法,或者调整团队使用Scrum的方式,以更好地满足他们的需求。强调遵循Scrum框架的重要性:最终,重要的是提醒利益相关者,Scrum是一个经过验证的框架,它已经帮助许多团队和组织取得了成功。然而,需要注意的是,DoR应该是一个活文档,团队可以根据需要不断更新和调整,以满足项目不断变化的需求。

2023-01-29 13:51:05 2160

原创 精选 60 道 MySQL 面试题,附答案!

今天给大家整理一些数据库必知必会的面试题,一起来看吧。

2023-01-29 11:22:08 1373 1

原创 如何进行秒杀场景下的异步下单实现

单异步削峰的目标,即提升用户体验和提升系统吞吐能力。提交下单任务处理下单任务和轮询下单结果。

2023-01-15 10:27:11 932

原创 谈一谈有关 MySQL 数据库数据安全问题

以前去企业面试的时候,经常被问一些关于 MySQL 数据库相关的问题,其中最典型的就是关于 MySQL 数据库数据安全的问题。例如:如何才能保证 MySQL 数据库的数据安全?MySQL 数据库如果发生数据丢失可能会发生在什么地方?如果 MySQL 数据库出现了数据丢失该如何挽救?

2023-01-15 10:21:38 287

原创 一个比一个牛皮的5个杨辉三角特性!

杨辉三角的历史杨辉三角按照杨辉于1261年所编写的《详解九章算法》一书,里面有一张图片,介绍此种算法来自于另外一个数学家贾宪所编写的《释锁算书》一书,但这本书早已失传无从考证。但可以肯定的是这一图形的发现我国不迟于1200年左右。在欧洲,这图形称为"巴斯加(Pascal)三角"。因为一般都认为这是巴斯加在1654年发明的。其实在巴斯加之前已经有许多人普及过,最早是德国人阿匹纳斯(Pertrus APianus),他曾经把这个图形刻在1527年著的一本算术书封面上。

2023-01-14 15:05:26 260

原创 总结一下经典机器学习算法

K近邻算法(KNN)是一种基本分类和回归方法。KNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于一个类别,那该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分类样本所属的类别。

2023-01-14 10:05:19 220

原创 非常实用的代码阅读策略!

谁都喜欢可读性强的代码,希望接手的代码容易阅读,容易理解,从而减少交接的工作量,但并不是所有的代码都有好的易读性,接手前辈的“屎山”通常是一件令开发者非常痛苦的事情。

2023-01-14 09:51:12 348

原创 如何破越发展 to B 市场亏损越多问题?

这直接导致了,相比国外软件是为了让用户更好地完成工作,国内互联网大公司的入局,更像是为了抢风口占市场。前者是技术驱动,后者看中对行业的重新改造,叫得上名字的阿里云、腾讯云等产品,往往是靠着雄厚背景立足,然后快速占领市场。

2023-01-14 09:37:29 152

原创 聊聊 SpringMVC 是如何工作的?

SpringMVC的作用毋庸置疑,虽然我们现在都是用SpringBoot,但是SpringBoot中仍然是在使用SpringMVC来处理请求。我们在使用SpringMVC时,传统的方式是通过定义web.xml,

2023-01-13 13:32:05 115

原创 面试官:什么是自旋锁?自旋的好处和后果是什么呢?

今天主要回答一下面试官常问的一些问题:比如什么是自旋锁?自旋的好处和后果是什么呢?

2023-01-13 13:24:20 173

原创 4个MySQL 数据同步 Elasticsearch 的方案!

今天给大家介绍一个电商中常见的场景 —— MySQL 数据同步 Elasticsearch。商品检索大家应该都在各种电商网站检索过商品,检索商品一般都是通过什么实现呢?搜索引擎Elasticsearch。那么问题来了,商品上架,数据一般写入到MySQL的数据库中,那么用于检索的数据又是怎么同步到Elasticsearch的呢?MySQL同步ES。

2023-01-13 13:20:08 395

原创 很详细,万字教你如何提高 Java 代码质量

每种编程语言都有自己的命名规范,不同语言的风格差异有大有小,下面以Java为例:Java整体命名风格为UpperCamelCase或lowerCamelCase形式。不管是类还是变量命名要见名知意,切勿使用缩写或中文;风格统一,尽量使用英文名词,切勿中英文混合;尽量避免和Java自带类库重名,切勿使用Java关键字命名。

2023-01-12 10:23:36 1227 1

原创 知道这10个让你的API接口突然超时的原因吗?

不知道你有没有遇到过这样的场景:我们提供的某个API接口,响应时间原本一直都很快,但在某个不经意的时间点,突然出现了接口超时。也许你会有点懵,到底是为什么呢?今天跟大家一起聊聊接口突然超时的10个原因,希望对你会有所帮助。

2023-01-12 10:11:32 7614 1

原创 使用MinIO构建分布式文件系统来一次分布式文件系统实战!

随着文件数据的越来越多,传统的文件存储方式通过tomcat或nginx虚拟化的静态资源文件在单一的服务器节点内已经无法满足系统需求,也不利于文件的管理和维护,这就需要一个系统来管理多台计算机节点上的文件数据,这就是分布式文件系统。

2023-01-12 10:04:40 735

原创 MySql树形结构(多级菜单)查询设计方案

多级查询、三级查询本质就是树形结构的遍历,推荐使用多级查询的方式,相比三级查询多级查询的方式抓住了树形结构遍历的本质,方便扩展和维护。技术只是工具,多级查询的方式不是固定的,查询方式合理既可,但通常都需要加关系表辅助设计。

2023-01-11 11:00:05 3077

原创 面试题:为什么不建议在MySQL中使用UTF-8?

主要是目前网络上几乎所有的文章都把 “utf8” 当成是真正的 UTF-8,包括之前我写的文章以及做的项目(捂脸);因此希望更多的朋友能够看到这篇文章。相信还有很多跟我在同一条船上的人,这是必然的。所以,大家以后再搭建MySQL、MariaDB数据库时,记得将数据库相应编码都改为utf8mb4。终有一天,接你班儿的程序员发或你的领导现这个问题后,一定会在心里默默感到你的技术牛B。

2023-01-11 10:24:03 116

原创 你能写出几种 Shell 逻辑与算术?我这里有13种!

相较于最初的 Bourne shell,现代 bash 版本的最大改进之一体现在算术方面。早期的 shell 版本没有内建的算术功能,哪怕是给变量加1,也得调用单独的程序来完成。

2023-01-10 16:02:44 74

原创 如何把 高并发限流 实现的那叫一个优雅!

在电商高并发场景下,我们经常会使用一些常用方法,去应对流量高峰,比如,今天我们聊聊限流。什么是限流呢?限流是限制到达系统的并发请求数量,保证系统能够正常响应部分用户请求,而对于超过限制的流量,则通过拒绝服务的方式保证整体系统的可用性。根据限流作用范围,可以分为;根据限流方式,又分为,下面我们对这块详细进行讲解。

2023-01-10 09:25:49 219

原创 解决 Redis 缓存穿透 / 击穿 / 雪崩以及数据一致性的方案

无论是在开发过程中还是在准备跑路的面试过程中,有关redis相关的,难免会涉及到四个特殊场景:缓存穿透、缓存雪崩、缓存击穿以及数据一致性。如果在开发中不注意这些场景的话,在高并发场景下有可能会导致系统崩溃,数据错乱等情况。现在,结合实际的业务场景来复现并解决这些问题。

2023-01-09 13:11:22 192

原创 程序员该如何用“高科技”智能地教狗狗上厕所

这让我们想当场奖励,或当场训斥都没法做到。由于我有一台服务器,一台普通电脑(带GPU),服务器是7x24开机的,而电脑不是,所以模型就得放在服务器上,用cpu来做serving,这个时候,serving的性能就不是很够了,一个图片需要100ms才能识别完,相当于10FPS。这里我并没有针对模型的性能进行优化,而且取了个巧,先通过进行两帧图片的对比,识别出变化,在有变化产生后再进行模型的确认,所以模型serving的压力只有在崽崽或者我们进厕所的时候才会产生,而一旦厕所没有任何动静,模型自己慢慢就处理完了。

2023-01-09 10:34:36 134

原创 简单谈谈Redis中的几种java客户端以及优缺点!

相对于其他的分布式中间件,Redis 支持的客户端种类非常繁多,涵盖更加全面,除了支持比较流行的 c、c++、java、C#、php、Python 等语言以外,还支持 Objective-C、Swift、Node.js 等等,以下是来自于 Redis 支持的按语言分类的客户端截图。站在 java 开发语言的角度,虽然可供选择的客户端非常多,但是官方主要推荐使用以下三种客户端,原因大概是它们对 redis 提供的支持更加全面、api 操作更佳丰富。

2023-01-09 10:08:20 2242

原创 带你用20张图了解什么是 JVM 运行时数据区

Java虚拟机可以一次支持多个执行线程,每个Java虚拟机线程都有其自己的PC寄存器即为线程独有。PC寄存器会随着线程的创建而创建,会随着线程的结束而死亡。正因为程序计数器记录的是指令地址,所以它占用的内存空间较少,因此它是运行速度最快的存储区域,也是唯一一个在Java虚拟机规范中没有规定任何OutOtMemoryError(内存溢出)情况的区域。在任何时候,每个Java虚拟机线程都在执行单个方法的代码,即该线程的当前方法。如果线程当前正在执行的方法不是native。

2023-01-09 10:00:43 92

原创 一文读懂什么是 Web3 架构

最近看了一些Web3.0的文章,总结了一些个人的理解:Web3.0 通过区块链基础设施管理用户数据,重构用户和互联网平台之间的关系和交互,重新定义了互联网应用的架构方式和交互模式。Web 1.0 中,以浏览性的网站(只能看)为代表,如Baidu、搜狐、163等。Web 2.0 中,以可读+可写的网站为代表,用户之间可以互动,但互联网平台仍然控制着用户数据和信息,如 微信、QQ、钉钉、B站、小红书、抖音等。Web 3.0中、可读+可写+拥有。用户和互联网平台是独立存在的,可以拒绝填写身份信息,

2023-01-08 09:54:52 1290

原创 SpringBoot 框架中的 Tomcat 为什么一定要替换掉?

在SpringBoot框架中,我们使用最多的是Tomcat,这是SpringBoot默认的容器技术,而且是内嵌式的Tomcat。同时,SpringBoot也支持Undertow容器,我们可以很方便的用Undertow替换Tomcat,而Undertow的性能和内存使用方面都优于Tomcat,那我们如何使用Undertow技术呢?本文将为大家细细讲解。

2023-01-08 09:37:21 373

原创 如何把架构图画的好看又漂亮?

你是否被大厂展示的五花八门,花花绿绿的架构设计图所深深吸引,当我们想用几张图来介绍下业务系统,是不是对着画布不知从何下手?作为技术扛把子的筒子们是不是需要一张图来描述系统,让系统各个参与方都能看的明白

2023-01-07 17:54:48 539

原创 如何让你的架构设计应用做到高内聚、低耦合?

最近review公司的代码,发现代码耦合程度特别高,修改一处,不知不觉就把其他地方影响到了,这就让我思考该如何让我们写的代码足够内聚,减少耦合呢?"高内聚、松耦合"是一个非常重要的设计思想,能够有效地提高代码的可读性和可维护性,缩小功能改动导致的代码改动范围。它可以用来指导不同粒度代码的设计与开发,比如系统、模块、类,甚至是函数,也可以应用到不同的开发场景中,比如微服务、框架、组件、类库等。本文我们来探讨下如何让我们的应用做到高内聚、低耦合。

2023-01-07 10:51:45 338 2

原创 微服务架构中的“发件箱模式”你知道吗?

微服务架构如今非常的流行,这个架构下可能经常会遇到“双写”的场景。双写是指您的应用程序需要在两个不同的系统中更改数据的情况,比如它需要将数据存储在数据库中并向消息队列发送事件。您需要保证这两个操作都会成功。如果两个操作之一失败,您的系统可能会变得不一致。那针对这样的情况有什么好的方法或者设计保证呢?本文就和大家分享一个“发件箱模式”, 可以很好的避免此类问题。发件箱模式虽然听上去可能很简单,但是在平时开发中可能会忽略掉。

2023-01-07 10:31:39 184 2

原创 微服务又被泼“过去十年最大的架构错误”冷水了!

自微服务这个概念诞生以来,就伴随着诸多热议。人们要么爱它,要么恨它,似乎没有什么中间地带。在微服务如日中天的几年中,很多公司都尝试进行了微服务转型。彼时,微服务架构提供了一种新颖的重构现有系统的方法,并以提供模块化、可扩展性、可用性的能力成为软件开发行业的新宠。但任何一种架构都不会是适配所有问题的万能钥匙,微服务也不例外。近年来,一些公司放弃微服务实践、选择退回单体架构的消息也不时出现在大众视野。

2023-01-07 09:45:21 116

原创 如何使用Gradle构建一个多模块项目?

相比起 Maven 的 XML 配置方式,Gradle 提供了一套简明的 DSL 用于构建Java 项目,使我们就像编写程序一样编写项目构建脚本。本文将从无到有创建一个用 Gradle 构建的多模块 Spring Boot 项目,JDK 版本为8,IDEA 版本为 2022.3.1 。

2023-01-07 09:35:06 1443 1

原创 15个高并发系统设计锦囊,建立并发思维!

记得很久之前,去面试过字节跳动。被三面的面试官问了一道场景设计题目:如何设计一个高并发系统。当时我回答得比较粗糙,最近回想起来,所以整理了设计高并发系统的15个锦囊,相信大家看完会有帮助的。

2023-01-07 09:32:17 1119 1

原创 你深入了解过什么是CAS乐观锁吗

Compare and Swap,简称CAS,是一种通过乐观锁保证变量操作原子性的机制。我们通常熟悉的加锁方式是通过synchronized关键字,可以很方便地给实例方法、静态方法和代码块加锁,保证操作的原子性。synchronized锁是是悲观的,是同步锁,它假定更新很可能冲突,所以先获取锁,得到锁后才更新。synchronized代表一种阻塞式算法,得不到锁的时候,进入锁等待队列,等待其他线程唤醒,有上下文切换开销。原子变量的更新逻辑是非阻塞式的,更新冲突的时候,它就重试,不会阻塞…………

2023-01-06 17:33:38 451 1

原创 数据库优化完爆90%性能毛病的八大通用绝招

毫不夸张的说咱们后端工程师,无论在哪家公司,呆在哪个团队,做哪个系统,遇到的第一个让人头疼的问题绝对是数据库性能问题。如果我们有一套成熟的方法论,能让大家快速、准确的去选择出合适的优化方案,我相信能够快速准备解决咱么日常遇到的80%甚至90%的性能问题。从解决问题的角度出发,我们得先了解到**问题的原因;其次我们得有一套思考、判断问题的流程方式,**让我们合理的站在哪个层面选择方案;最后从众多的方案里面选择一个适合的方案进行解决问题,找到一个合适的方案的前提是我们自己对各种方案之间的优缺点………………

2023-01-06 17:27:04 73

原创 简单聊聊什么是数据库系统!

各位小伙伴们,最近忙于自己的事情,难得闲下心来想在这里记录些什么,在自己做网络知识相关笔记的时候,才想起自己的知识库里存有之前学习的数据库相关的知识,所幸的是自己的勤快做的笔记能够存留下来,于是自己想记录些数据库相关的知识,有意无意,或者面试准备,就可以随便瞄一眼,好了,话不多说,来正事儿,咱们先尝点甜头,回温回温下数据库这么回事儿。本质上来说,它是信息的统筹,人们的日常生活,身边事迹,所接触的都是可以被记录的,而且可以存储很长的时间,它的作用可想而知。DBMS的组成,分为查询,更新,模式更新。

2023-01-06 13:29:08 203

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除