![](https://img-blog.csdnimg.cn/direct/30e586de0e5f4af589c87bdcb8660906.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
底层服务/编程功底系列
文章平均质量分 92
用「道术法器」为题写这个分享有着极大的风险,一是这个被各种领域用烂的话题很容易被视为套路水文,二是老祖宗传承下来的这个哲学理解蕴含着大智慧,害怕自己理解尚浅,不仅对这个哲学理解尚浅,对数据思维的理解也尚浅,何能有深刻的感悟呢?但话说回来,so what?每一份沉淀都是一种成长,欢迎指正。
洛神灬殇
前优酷资深工程师,一个具有高洞察力的理性自律小i人 — INTJ,
著作《深入浅出Java虚拟机—JVM原理与实战》,
10年以上开发经验,参与设计过多个大型互联网项目,定期分享技术干货和项目经验,
希望大家可以多多支持我,点赞关注一下
展开
-
【Git技术专题】如何使用git中的tag进行版本开发控制?
git仓库的tag是git版本库的一个标记,指向某个commit id标记的快照记录指针,所以,标签也是版本库的一个快照。tag主要用于发布版本的管理一个当版本发布后,可以为git当前的HEAD(commit id)打上 v.1.0.1、v.1.0.2等这样的标签。tag感觉跟branch有点相似,但是本质上和分工上是不同的。git push origin v1.0-beta # 推送到远程仓库。原创 2024-04-21 21:16:49 · 772 阅读 · 0 评论 -
【YAML语法规范指南】从入门到精通,揭秘神秘语法,引领配置文件解析指南(基础结构篇)
YAML利用这些原语,并添加了一个简单的类型系统和别叠机制,以形成一种用于序列化任何数据结构的完整语言。虽然大多数编程语言都可以使用YAML来进行数据序列化,但YAML擅长于那些从基本意义上讲是围绕这三个基本原语构建的语言。这些语言包括新一波的敏捷语言,如:Java、Perl、Python、PHP、Ruby和Javascript等。原创 2024-02-04 21:34:27 · 1365 阅读 · 1 评论 -
【深入浅出Java性能调优】「底层技术原理体系」详细分析探索Java服务器性能监控Metrics框架的实现原理分析(Dropwizard度量基础案例指南)
在应用在线上运行时,经常需要处理大量的数据。在业务代码中,我们通常会非常关注某些方法的调用次数和响应时间等信息。这种场景通常需要使用metrics统计来实现。为了实现这样的功能,我们可以使用现有的度量工具库,而不必自己编写度量插件。其中,一个常用的度量工具库是Dropwizard Metrics。Metrics的核心是MetricRegistry类,它是应用程序的所有指标的容器。首先,我们需要定义并创建一个核心注册组件服务,用于管理和注册Metric度量组件。原创 2024-02-03 16:40:48 · 1633 阅读 · 1 评论 -
【揭秘SAML协议 — Java安全认证框架的核心基石】 从初识到精通,带你领略Saml协议的奥秘,告别SSO的迷茫与困惑
SAML(Security Assertion Markup Language)是由OASIS制定的基于XML的开放标准。它用于在身份提供者(IdP)和服务提供者(SP)之间交换身份验证和授权数据,从而支持跨域单点登录,提高身份认证和授权管理的安全性和效率。原创 2024-02-02 19:54:57 · 1586 阅读 · 0 评论 -
【分布式技术专题】「分布式技术架构」 探索Tomcat技术架构设计模式的奥秘
Pipeline 就是连接每个子容器的管子,里面传递的 Request 和 Response 对象好比管子里流的水,而 Valve 就是这个管子上开的一个个小口子,让你有机会能够接触到里面的水,做一些额外的事情。Tomcat 中观察者模式也有多处使用,前面讲的控制组件生命周期的 Lifecycle 就是这种模式的体现,还有对 Servlet 实例的创建、Session 的管理、Container 等都是同样的原理。接口代表的是抽象主题,它定义了管理观察者的方法和它要所做的其它方法。原创 2024-01-22 14:51:05 · 1232 阅读 · 2 评论 -
【Alibaba工具型技术系列】「EasyExcel技术专题」实战技术针对于项目中常用的Excel操作指南
Ø EasyExcel入口类,用于构建开始各种操作Ø ExcelReaderBuilder ExcelWriterBuilder 构建出一个 ReadWorkbook WriteWorkbook,可以理解成一个excel对象,一个excel只要构建一个Ø ExcelReaderSheetBuilder ExcelWriterSheetBuilder 构建出一个 ReadSheet WriteSheet对象,可以理解成excel里面的一页,每一页都要构建一个。原创 2024-01-18 19:22:52 · 1198 阅读 · 1 评论 -
推荐收藏 | 【Git实战专题】「必坑宝典」带你深入剖析Git操作指令下的奥秘原理和运作机制
Git是一个分布式版本控制系统,它可以跟踪文件的修改、记录历史版本,并支持多人协作开发。上面是Git中最常用的命令,用于在工作目录、暂存目录(也称为索引)和仓库、远程仓库之间复制文件。命令可以用于从历史提交中获取文件的副本,并将其放入工作目录和暂存区域。这对于恢复特定版本的文件或者查看历史文件的内容非常有用。同时,也可以用于切换分支,但在这种情况下,需要使用不同的参数和选项。原创 2024-01-17 17:55:51 · 955 阅读 · 1 评论 -
【数据结构专题】「基础数据算法」史上手把手带你认识一下数据结构的基本概念与术语
C是含两个实数的集合{c1,c2};R={P},而P是定义在集合C上的一种关系{},其中有序偶表示c1是复数的实部,c2是复数的虚部。数据对象:D={e1,e2,e3 l e1,e2,e3 -> ElemSet(定义了关系运算的某个集合) }数据关系:R1={,}基本操作:操作结果:构造了三元组T,元素e1,e2和e3分别被赋以参数vl,v2和v3的值。操作结果:三元组T被销毁。初始条件:三元组T已存在,1≤i≤3。原创 2024-01-09 14:03:48 · 1064 阅读 · 0 评论 -
作者推荐 |【深入了解系统性能优化】「实战技术专题」全方面带你透彻探索服务优化技术方案(方案分析篇)
性能调优是个很复杂、很细致的过程,要根据实际情况调整,不同的机器、不同的应用、不同的性能要求调优的手段都是不同的。也没有一个放之四海而皆准的配置或者公式。再比如操作系统工具,和操作系统本身相关的所谓大页机制,都需要大家平时去积累,去观察,去实践。原创 2023-12-17 11:01:15 · 965 阅读 · 0 评论 -
【算法技术专题】精彩解密KMP算法之跃进式搜索的深度探索
KMP算法(Knuth-Morris-Pratt算法)是一种字符串匹配算法,用于在一个字符串S内查找另一个字符串P的出现位置。KMP算法的核心思想是利用已经匹配过的部分信息,尽量减少不必要的字符比较,从而提高匹配效率。原创 2023-12-13 15:45:40 · 1035 阅读 · 1 评论 -
【底层服务/编程功底系列】「网络通信体系」带你攻克网络技术之TCP协议的三次握手和四次链接的技术盲区
无论进行多少次握手,都无法百分之百地确保成功建立连接,因为最后一次报文可能会丢失,或者出现延迟等各种情况。成功进行三次握手只能说明双方现在以相当高的概率可以进行正常通信。原创 2023-12-11 17:12:30 · 472 阅读 · 1 评论 -
【夯实技术基本功】「底层技术原理体系」全方位带你认识和透彻领悟正则表达式(Regular Expression)的开发手册(正则符号深入解析 )
{x}表示前面的字符或字符组恰好出现 x 次。{x,}表示前面的内容出现 x 或更多的次数。{x,y}表示前面的内容至少出现 x 次,但不超过 y 次。这种形式的花括号可以帮助我们更精确地控制重复内容的匹配次数,并满足特定的需求。^[a-zA-Z0-9_]{1,}$ //所有包含一个或多个字母、数字或下划线的字符串^[0-9]{1,}$ //所有的正数^\-{0,1}[0-9]{1,}$ //所有的整数^\-{0,1}[0-9]{0,}\.{0,1}[0-9]{0,}$ //所有的小数。原创 2023-12-08 21:52:34 · 894 阅读 · 0 评论 -
【夯实技术基本功】「底层技术原理体系」全方位带你认识和透彻领悟正则表达式(Regular Expression)的开发手册(正则表达式定义 )
目前的软件世界中广泛应用着正则表达式,包括*nix(Linux、Unix等)、HP等操作系统,以及PHP、C#、Java等开发环境和许多其他应用软件。无论是在哪个领域,你都能看到正则表达式发挥重要作用的踪影。使用正则表达式可以通过简洁的代码实现强大的功能。然而,为了追求简洁和强大,正则表达式代码的复杂性较高,从而给学习者带来了一定的困难。因此,学习正则表达式需要付出一些努力,但一旦入门后,并参照一定的参考指南,使用它就会变得相对简单有效。,很多人可能被这样的代码吓到过。原创 2023-12-08 21:50:35 · 1006 阅读 · 0 评论 -
【编程基础心法】「创建模式系列」让我们一起来学编程界的“兵法”设计模式(工厂模式)
首先我们先定义一个接口Product,作为我们的产品模型。void use();接下来我们定义一下对应的实现类,作为不同产品的一个实现实体,方便我们用工厂方法去调用进行构建。@Override@Override接下来我们定一下关于对应的工厂方法,这个工厂方法作为构建对象的一个工厂类。} else {在上面的代码中,我们定义了一个简单工厂类SimpleFactory,它有一个静态方法createProduct,根据传入的参数type来创建不同的产品对象。原创 2023-12-06 19:43:20 · 350 阅读 · 0 评论 -
【编程基础心法】「设计模式系列」让我们一起来学编程界的“兵法”设计模式(序章)
总之,设计模式是一种非常有用的技术,它可以帮助开发人员更好地组织和管理代码,提高代码的可读性和可维护性。在实际开发中,开发人员应该根据具体的需求选择合适的设计模式来解决问题。原创 2023-12-06 19:40:00 · 776 阅读 · 0 评论 -
【底层服务/编程功底系列】「网络通信体系」深入探索和分析TCP协议的运输连接管理的核心原理和技术要点
服务器收到SYN报文后,会发送一个SYN+ACK报文作为响应,表示接受连接请求,并确认客户端的SYN报文。这是为了确保连接的正常关闭,并防止可能丢失的报文段导致的连接问题。服务器收到客户端发送的SYN包后,会发送一个带有SYN和ACK(Acknowledgment)标志的TCP报文段作为响应,这个报文段被称为SYN-ACK包。在TCP连接中,已经在上面的【TCP之保活计时器(keepalive timer)】的内容中,全面介绍过了,主要的目的是为了帮助检测连接,释放一些宕机或者出现问题的客户端服务。原创 2023-10-24 15:44:38 · 173 阅读 · 0 评论 -
作者推荐 | 【深入了解系统性能优化】「实战技术专题」全方面带你透彻探索服务优化技术方案(系统服务调优)
为了应对将来的高业务量,目前需要扩容服务器,将2台服务器扩容至4台服务器,然后将服务器由2核4G升级成为4核8G。因此在升级过程中对于参数的调整也存在了一定的迷惑期。原创 2023-08-07 18:56:58 · 247 阅读 · 0 评论 -
作者推荐 | 【底层服务/编程功底系列】「底层技术原理」史上最清晰的采用程序员的视角方式进行深入探索Linux零拷贝技术原理及实现
现在,零拷贝功能在Linux下几乎家喻户晓,但仍有很多人对其了解有限。为了解开这个功能的神秘面纱,我决定撰写一篇关于深入探讨的文章。本文将从用户模式应用程序的角度出发,介绍零拷贝的概念,省略了内核级的技术细节。希望通过本篇文章,可以帮助大家能更好地理解这个有用功能。为了更好地解释问题和解决方案,我们首先需要了解零拷贝是什么。让我们以网络服务器守护进程向客户端提供存储在文件中的数据为例,来说明这个过程中涉及的操作。上面的代码看起来比较简单,但是实际情况比表面看起来要复杂得多。原创 2023-08-04 15:57:20 · 1387 阅读 · 0 评论 -
【分布式技术专题】「架构设计方案」盘点和总结RBAC服务体系的功能设计及注意事项技术体系
权限管理是后台系统的重要组成部分,主要目的是控制不同人对资源的访问权限,以避免操作错误和隐私数据泄露等风险问题。我在公司负责权限管理,对该领域的设计很熟悉。公司采用微服务架构,因此权限系统独立于其他业务系统,包括商品中心、订单中心、用户中心、仓库系统、小程序和多个APP等十几个系统和终端。页面权限:用户登录系统后可见的页面,通过菜单进行控制。菜单分为一级和二级分类。只要用户拥有一级和二级菜单权限,就可以访问相应的页面。操作权限:页面的功能按钮,包括查看、新增、修改、删除、审核等。原创 2023-07-27 14:13:10 · 260 阅读 · 2 评论 -
【底层服务/编程功底系列】「手把手教学系列」带你打造一个属于自己的规则引擎服务,打破任何业务难题(逻辑模型和API设计)
以下是规则引擎的核心逻辑模型的大概架构图,如下所示:接下来我们,针对于Rule规则模型以及RuleEngine运作引擎模型的大概行为以及服务能力进行相关的介绍和说明。原创 2023-07-24 11:36:12 · 102 阅读 · 0 评论 -
【人工智能技术专题】「入门到精通系列教程」零基础带你进军人工智能领域的全流程技术体系和实战指南(LLM、AGI和AIGC都是什么)
人工智能是一个庞大的研究领域。虽然我们已经在人工智能的理论研究和算法开发方面取得了一定的进展,但是我们目前掌握的能力仍然非常有限。机器学习是人工智能的一个重要领域,它研究计算机如何模拟或实现人类的学习行为,以获取新的知识或技能,并通过重新组织已有的知识结构来不断提高自身的性能。深度学习是机器学习中的一个研究方向,通过多层处理,将初始的“低层”特征表示逐渐转化为“高层”特征表示,从而可以用“简单模型”完成复杂的分类等学习任务。深度学习在人工智能的各个领域都有广泛的应用。原创 2023-06-20 19:47:33 · 429 阅读 · 0 评论 -
【开发者必备学习档案】梳理和统计相关的开发者资源大全
Awesome 系列虽然挺全,但基本只对收录的资源做了极为简要的介绍,如果有更详细的中文介绍,对相应开发者的帮助会更大。就是 kahun 发起维护的 系统管理员 资源列表,内容包括:备份/克隆软件、云计算/云存储、协作软件、配置管理、日志管理、监控、项目管理。从下面的目录来看,本项目的工作量小不了,所以非常期待能有更多程序员一起来参与。HDFS:Java编写的,用于Hadoop框架的分布式、可伸缩、可移植文件系统。TahoeLAFS:安全、分散、容错、点对点分布式数据存储和分布式文件系统。原创 2023-04-15 16:53:16 · 545 阅读 · 0 评论 -
【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(下)
链表数据-主要用于存储每个延时任务节点。tasks也可以改成双向链表数组的结构:即节点存贮的对象中有指针,组成环形,可以通过数组的下标灵活访问每个节点,类似 LinkedHashMap。游标指针索引时间轮轮盘的容量大小,如果是分钟级别,一般就是60个格时间轮轮盘的层级,如果是一级,它的上级就是二级init初始化时间轮轮盘对象模型,主要用于分配分配每一个轮盘上面元素的TimewheelTask,用于延时队列的执行任务线程,已经分配对应的每一个节点的延时时间节点数据。原创 2023-04-08 19:19:38 · 4048 阅读 · 3 评论 -
【AIGC未来的发展方向】面向人工智能的第一步,一文告诉你人工智能是什么以及未来的方向分析
深度学习是机器学习的一种更高级的形式,它模仿人类神经元的运作模式,通过神经网络层层递归,将输入的数据不断地处理和推理以达到最终的输出结果。通过机器学习,计算机可以不断地 “感知” 与之相关的数据,并从中不断学习、发掘数据中的规律和关联,最终能够生成预测模型,并在接受新的数据时,更新和优化模型。未来,随着技术的不断发展,ChatGPT也将会不断更新和升级,为用户带来更多的惊喜和便捷。1. 更高效的机器学习算法和技术:机器学习是AI的基石,未来的AI将会拥有更高效、更强大的机器学习算法和技术。原创 2023-04-08 16:16:13 · 913 阅读 · 3 评论 -
【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(上)
最近大家都相比遇到了就业瓶颈了,很多公司要不就是不招人了,要不就是把门槛抬的很高,所以针对于一些分布式角度而言的技术知识点,更是必备条件以及重中之重了。那么今天笔者就针对于分布式协议以及一些算法原理进行详细的分析和原理介绍。使基于分布式架构下的所有节点在进行事务处理过程中保持原子性与一致性而设计的一种算法。2PC的改进版本,将2PC二阶段提交的过程一分为二, 形成了Can Commit, Pre Commit, Do Commit三个阶段组成的事务协议。调度模型。原创 2023-04-05 18:46:43 · 266 阅读 · 2 评论 -
精华推荐 |【算法数据结构专题】「延时队列算法」史上非常详细分析和介绍如何通过时间轮(TimingWheel)实现延时队列的原理指南
时间轮的介绍时间轮的作用高效处理批量任务降低时间复杂度高效管理延时队列缺点:时间精确度的问题时间轮的使用场景时间轮的实现方案减少线程分配CPU的负载和资源浪费减少延时任务或定时任务实现原理时间轮功能设计时间轮的数据结构单时间轮基本逻辑模型时间轮数据结构模型时间轮处理逻辑计算延时时间存储读取延时数据任务队列单时间轮的问题和弊端内存和资源的消耗巨大轮询线程仍然还会慢慢的出现遍历效率低问题浪费内存空间问题轮数时间轮基本逻辑模型主要由一下两个字段组成执行bucket下的延时逻辑轮数计算的公式。原创 2023-02-25 18:19:53 · 1002 阅读 · 1 评论 -
【并发技术系列】「多线程并发编程」技术体系和并发模型的基础探究(夯实基础)
让我们通过本篇文章一同进入并发编程技术的世界里面,相信通过这篇文文章一定会对话你的并发技术体系有一定帮助以及夯实你的基础功底。原创 2023-01-12 19:56:07 · 627 阅读 · 1 评论 -
【并发编程技术】「技术辩证分析」在并发编程模式下进行线程安全以及活跃性问题简析
线程安全,有两个重要的特征说明:“共享”和“可变共享是指可以被多个线程同时访问;可变是指变量的值在生命周期内是可以变化的;CAS有人翻译为Compare And Set或Compare And Swap都是正确的。多线程并发执行的状态下,锁的状态改变,基本都是使用CAS原理,它有一个比较别扭的叫法“CPU硬件同步原语”,算法是基于CPU硬件的,原子性操作,不会被其他线程打断。CAS的算法,比较当前值和期望的值是否相等,如果相等,则将当前值赋予一个新值。原创 2023-01-12 19:47:42 · 578 阅读 · 1 评论 -
我人生的里程碑之【作为独立开发者,第一次承接外包项目的心得经历,也许说出你的心声哦!】
说起来不怕大家笑话,当时的我们人员并不是很充足,总体下来,包含项目的组织者(Eric本人)一共只有4.5个人,为什么有0.5呢,那是因为有一个人是兼职(平时百分之50的经历需要应付考研)。因为此项目当时还属于一个类似于前后端一体化的项目,后续被我们优化成为了前后端分离的项目,前端采用的快速集成的UI框架,所以不需要过多专业的前端开发人员介入。考虑到了项目的过于复杂和庞大以及客户要求的水平和服务能力过高,所以针对于本项目而言却是是一个很大的调整哦。客户本身对于项目的需求认识不是很清晰、并且需求调整的频率过高,原创 2023-01-11 20:47:54 · 394 阅读 · 0 评论 -
编程基础心法「IO模型原理分析」彻底明白网络IO模型的原理(夯实基础)
最后,再举几个不是很恰当的例子来说明这四个IO Model,有A,B,C,D四个人在钓鱼:A用的是最老式的鱼竿,所以呢,得一直守着,等到鱼上钩了再拉杆;(同步阻塞)B的鱼竿有个功能,能够显示是否有鱼上钩,所以呢,B就和旁边的MM聊天,隔会再看看有没有鱼上钩,有的话就迅速拉杆;(非阻塞)C用的鱼竿和B差不多,但他想了一个好办法,就是同时放好几根鱼竿,然后守在旁边,一旦有显示说鱼上钩了,它就将对应的鱼竿拉起来;(io多路复用机制)原创 2023-01-06 23:06:55 · 199 阅读 · 1 评论 -
编程内功心法「多线程并发编程」技术体系和并发模型的基础探究(夯实基础)
让我们通过本篇文章一同进入并发编程技术的世界里面,相信通过这篇文文章一定会对话你的并发技术体系有一定帮助以及夯实你的基础功底。原创 2023-01-03 17:09:24 · 479 阅读 · 1 评论 -
编程内功心法「底层原理系列」这绝对是你的知识盲点,NUMA的为什么存在
以C=3为例,则对于节点1而言,2,3,5则为邻居节点,4,6,7,8为远端节点,显然访问开销的关系为 本地节点原创 2023-01-03 17:01:13 · 579 阅读 · 1 评论 -
编程心灵鸡汤-程序员除了技术的提高,软实力也很重要24条建议
软技能通常是被低估的。几乎所有的软件工程师都知道要关注技术的提高,但你忽视的软技能很可能会影响你的职业生涯。下面我将介绍24个对程序员非常重要的软技能,以及我对这些技能的看法和感受。原创 2022-12-28 09:25:30 · 622 阅读 · 0 评论 -
「绝密档案」“爆料”完整秒杀架构的设计到技术关键点的“八卦追踪”
高性能:涉及高并发读和高并发写的支持,如何支撑高并发,如何抵抗高IOPS?核心优化理念其实是类似的:高并发读就尽量"少读"或"读少",高并发写就数据拆分,以便减少并发写出现的冲突。一致性:秒杀的核心关注是商品库存,有限的商品在同一时间被多个请求同时扣减,而且要保证准确性,显而易见是一个难题。如何做到既不多又不少?高可用:大型分布式系统在实际运行过程中面对的工况是非常复杂的,业务流量的突增、依赖服务的不稳定、应用自身的瓶颈、物理资源的损坏等方方面面都会对系统的运行带来大大小小的的冲击。原创 2022-12-17 15:17:24 · 831 阅读 · 0 评论 -
「绝密档案」“爆料”完整秒杀架构的设计到技术关键点的“情报信息”
对于今天我们要介绍的内容就属于高并发的一个最极端的场景之一:“秒杀”,这个名词一般会在“大促”的时候出现,当然也会在某些平台活动上出现,那么肯定会有小伙伴会说,秒杀系统要注意哪些问题啊!为啥会比较难呢,难在哪里啊!只保证AC就是一个单体应用,根本不是分布式。意义当然有,在分布式出现之前都是这么搭系统。倘若这个系统的节点之一挂了,不会发生脑裂而是整个系统直接宕掉。进一步说如果网络中存在的节点越多,分区容忍性越高,但要复制更新的数据就越多,一致性就越难保证。原创 2022-12-17 15:16:25 · 4695 阅读 · 0 评论 -
【算法技术专题】如何用Java实现一致性 hash 算法( consistent hashing )(上)
一个 cache 服务器 m down 掉了(在实际应用中必须要考虑这种情况),这样所有映射到 cache m 的对象都会失效,怎么办,需要把 cache m 从 cache 中移除,这时候 cache 是 N-1 台,映射公式变成了 hash(object)%(N-1);相比Hash取模,一致性Hash算法的优点就是扩容后影响的缓存数据较少,如果是n个节点扩容到n+1个的话,影响的缓存数是0~1/n,即最多让一个节点的缓存失效。对于线上的业务,增加或者减少一台机器的部署是常有的事情。原创 2022-12-17 15:10:06 · 5179 阅读 · 0 评论 -
【算法数据结构专题】「线程锁算法专项」初探CLH队列锁机制原理分析
自旋锁说白了也是一种互斥锁,只不过没有抢到锁的线程会一直自旋等待锁的释放,处于busy-waiting的状态,此时等待锁的线程不会进入休眠状态,而是一直忙等待浪费CPU周期。因此自旋锁适用于锁占用时间短的场合。互斥锁说的是传统意义的互斥锁,就是多个线程并发竞争锁的时候,没有抢到锁的线程会进入休眠状态即【sleep-waiting】,当锁被释放时候,处于休眠状态的一个线程会再次获取到锁。缺点:就是这一些列过程需要线程切换,需要执行很多CPU指令,同样需要时间。如果CPU执行线程切换的时间比锁占用的时间还长,那原创 2022-12-17 15:07:03 · 780 阅读 · 0 评论 -
【算法数据结构专题】「限流算法专项」带你认识常用的限流算法的技术指南(分析篇)
通过控制数据的网络数据的发送或接收速率来防止可能出现的DOS攻击。而实际的软件服务过程中,限流也可用于API服务的保护。由于提供服务的计算机资源(包括CPU、内存、磁盘及网络带宽等)是有限的,则其提供的API服务的QPS也是有限的,限流工具就是通过限流算法对API访问进行限制,保证服务不会超过其能承受的负载压力。原创 2022-12-17 15:04:20 · 460 阅读 · 0 评论 -
编程内功心法「公钥密码学系列」基础介绍公钥证书与私钥标准(1)
在公钥密码学(也称为非对称密码术)中,加密机制依赖于两个相关的密钥,一个公钥和一个私钥。公钥用于加密消息,而只有私钥的所有者才能解密消息。X.509是定义公钥证书格式的标准。 因此,这种格式描述了其他信息中的公钥。DER是最流行的编码格式,用于在文件中存储 X.509 证书、PKCS8 私钥等数据。这是一种二进制编码,无法使用文本编辑器查看生成的内容。PKCS8是用于存储私钥信息的标准语法。可以选择使用对称算法对私钥进行加密。该标准不仅可以处理 RSA 私钥,还可以处理其他算法。PKCS8 私钥通常通过 P原创 2022-12-06 12:50:27 · 688 阅读 · 1 评论 -
编程内功心法「底层原理系列」 底层架构原理,分析CPU处理器鲜为人知的那些秘密
这里看不到L4 Cache,多是由于只有L1~L3才封装在CPU里。一样的多个核之间的L1、L2也会有缓存一致性问题,相似多核CPU有一些协议保证多个CPU内部缓存之间一致性的协议(MESI),同一个CPU内部的多核内部的缓存的一致性问题应该也是有方案解决的。逻辑核彷佛有些时候被翻译成逻辑处理器,而处理器一般被我理解为CPU,因此逻辑核,就是逻辑CPU吗? 但这种翻译真的会有点模糊不清容易形成误解。多CPU 和 单CPU多核多CPU估计也有市场,也有些服务器是多CPU的。多个核心之间通讯不须要原创 2022-12-06 10:50:38 · 1000 阅读 · 1 评论