全部后端前端产品运维设计测试开发者客栈
最新 最热 官方 加精

Qbian | 2022-11-09 | 开发者客栈

TODO(待办)新功能上线啦 !!! 🎉🎉🎉

地址:[https://www.developers.pub/todo/doing](https://www.developers.pub/todo/doing) 使用场景 生活中 帮忙取快递提醒:下班路过小区快递点,帮家人取个快递,家人可以分配个任务给你,在你快到家的时间定时提醒不要忘记; 重要日期提醒:生活中重要的时刻(生日、纪念日等),可以提前创建好任务,做好定时提醒别错过; 待办事项提醒:生活中看到的一些好看的电影,记录下来周末找个完整的时间刷一刷; 记录想法:生活中随时冒出来的一些奇思妙想,可能过会就会忘掉,可以快速记录下来,事后回顾; 工作中 自动生成日报并推送:工作中每天都需要写日报,可以把当天的工作罗列出来,当天工作内容更明确,效率更高,下班点还会自动生成并推送日报; 自动生成周报并推送:工作中每周都需要写周报,本周完成的工作,在本周结束后,自动生成周报并推送,高效快捷,还不会遗忘; 工作内容定期回顾总结:自定义时间范围,项目标签等统计任务,做工作复盘总结,不断反思进步; 功能列表 个人使

 4942 |  16 |  62 开发者客栈

温酒 | 1天前 | Redis后端相关

Redis大杀器,深入剖析,从简入深

行走江湖多年,关于 Redis 曾经在面试中饱受面试官拷打,本文将以简洁的图文来阐述 Redis ,建立起对redis的透彻印象,同时也会对redis在企业实战中的一些优化来做深度剖析,目的是拿捏redis不求人。 1. Redis介绍 Redis 是什么? (Remote Dictionary Server )-远程字典服务 是一个高性能的键值对(key-value)存储系统。它通常被用作 缓存层 ,以提升应用程序的性能。Redis是内存中的数据结构存储系统,这意味着所有的数据都存储在内存中,使得读取和写入操作都非常快速。 2. Redis安装与配置 [redis安装参考地址](https://link.juejin.cn/?target=https%3A%2F%2Fmnpq-dgz.blog.csdn.net%2Farticle%2Fdetails%2F134233056%3Fspm%3D1001.2014.3001.5502) 3. Redis数据类型 ![图片](https://static.developers.pub...

 16 |  1 |  0 Redis后端相关

晚风 | 1天前 | 前端相关Http

20 张图彻底弄懂 HTTPS 的原理!

前言 近年来各大公司对信息安全传输越来越重视,也逐步把网站升级到 HTTPS 了,那么大家知道 HTTPS 的原理是怎样的吗,到底是它是如何确保信息安全传输的?网上挺多介绍 HTTPS,但我发现总是或多或少有些点有些遗漏,没有讲全,今天试图由浅入深地把 HTTPS 讲明白,相信大家看完一定能掌握 HTTPS 的原理,本文大纲如下: 1. HTTP 为什么不安全 2. 安全通信的四大原则 3. HTTPS 通信原理简述 对称加密 数字证书 非对称加密 数字签名 4. 其它 HTTPS 相关问题 HTTP 为什么不安全 HTTP 由于是明文传输,主要存在三大风险 1、 窃听风险 中间人可以获取到通信内容,由于内容是明文,所以获取明文后有安全风险 2、 篡改风险 中间人可以篡改报文内容后再发送给对方,风险极大 ![图片](https://static.developers.pub...

 12 |  0 |  0 前端相关Http

石昊 | 1天前 | JavaSpring 全家桶后端相关

超音速亚原子 Java 框架来了,0.0015 秒内启动一个应用,太快了。。

1、概述 SpringBoot框架不用多介绍,Java程序员想必都知道。相对来说熟悉Quarkus的人可能会少一些。 Quarkus首页放出的标语:超音速亚原子的Java(Supersonic Subatomic Java)。 它是为 OpenJDK HotSpot 和 GraalVM 量身定制的 Kubernetes Native Java 框架,基于同类最佳的 Java 库和标准制作而成。Quarkus 的到来为开发 Linux 容器和 kubernetes 原生 Java 微服务带来了一个创新平台。 在本文中,我们将对这两个 Java 框架 Spring Boot 和 Quarkus 进行简单的比较。我们可以更好地了解它们之间的异同,以及一些特殊性。我们还会执行一些测试来衡量它们的性能。最后,我们会介绍一个开发人员如何从Spring转换到Quarkus。 2、SpringBoot Spring Boot 是一个基于 Java 的框架,专注于企业应用。它可以简单使用所有 Spring 项目,并集成了许多开箱即用的功能,来帮助开发人员提高生产力。...

 13 |  0 |  0 JavaSpring 全家桶

晴天 | 2天前 | Spring 全家桶后端相关

一文掌握 Spring Boot 中 @Enablexx注解原理

本文讲解了@Enable 类注解是如何生效的以及其核心注解 @Import 的原理,并且用 @EnableAsync 注解来举例。 在项目开发的过程中,我们会遇到很多名字为 @Enablexxx 的注解,比如 @EnableApollo-Config 、 @EnableFeignClients 、 @EnableAsync 等。他们的功能都是通过这样的注解实现一个开关,决定了是否开启某个功能模块的所有组件的自动化配置,这极大的降低了我们的使用成本。 那么你是好奇过 @Enablexxx 是如何达到这种效果呢,其作用机制是怎么样的呢? @Import 原理 按照默认的习惯,我们会把某个功能模块的开启注解定义为 @Enablexxx,功能的实现和名字格式其实无关,而是其内部实现,这里用 @EnableAsync 来举例子。 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Import(AsyncConfigurationSelector.class) pub

 18 |  0 |  0 Spring 全家桶后端相关

青木 | 2天前 | Vue前端相关

嘿,vue中keep-alive有个「大坑」你可能还不知道

背景 背景是这样的,我们使用 vue2 开发一个在线客服使用的IM应用,基本布局是左边是访客列表,右边是访客对话,为了让对话加载更友好,我们将对话的路由使用 <keep-alive 缓存起来。但是如果将所有对话都缓存,未必会造成缓存过多卡顿的问题。自然,就使用上了 <keep-alive 提供的 max 属性,设置一个缓存对话内容组件上限,按照 <a class="wx_search_keyword" LRU</a 算法,会销毁最旧访问的组件,保留最近使用的组件。本以为美好如期而至,直到上线后翻大车了,真实对话量大了,内存飙升卡顿。后来具体分析内存增长点,通过 vue 的 devtool 查看组件树,发现对话内容组件一直是递增,并非维持在 max 设置的数量上限!各位看官稍安勿躁,下面就具体分析造成这个「大坑」的原理,以及解决它的方案。 情景模拟 为了方便模拟背景案例,这里就用 vue2 简单的写一个demo。对话列表组件 APP.vue ,点击列表中的某个访客,加载与访客对话内容。 <template   <div id="ap

 13 |  0 |  0 Vue前端相关

OOM | 2天前 | Spring 全家桶后端相关

Spring Cloud Gateway 数字签名、URL动态加密就该这样设计!

在网络传递数据的时候,为了防止数据被篡改,我们会选择对数据进行加密,数据加密分为对称加密和[非对称加密]()。其中RSA和AES,TLS等加密算法是比较常用的。 对称加密 对称加密是指加密和解密使用相同的密钥的加密方法。其基本流程包括以下步骤 1. 密钥生成:双方协商生成一个共享密钥或由一方生成密钥并安全地传输给另一方。 2. 加密:使用共享密钥对原始数据进行加密,得到加密后的数据。 3. 传输:将加密后的数据传输给另一方。 4. 解密:接收方使用相同的共享密钥对加密数据进行解密,得到原始数据。 非对称加密 非对称加密是指加密和解密使用不同的密钥的加密方法,通常称为公钥和私钥。其基本流程包括以下步骤: 1. 密钥对生成:生成一对密钥,一个是公钥,另一个是私钥。公钥可以公开,而私钥需要保密。 2. 公钥分发:将公钥发送给需要加密数据的一方。 3. 加密:使用公钥对原始数据进行加密,得到加密后的数据。 4. 传输:将加密后的数据传输给另一方。 5. 解密:接收方使用私钥对加密数据进行解密,得到原始数据。 结合使用: 在实际应用中,对称加密和非对称加密通常会结合...

 24 |  0 |  0 Spring 全家桶后端相关

女王范 | 3天前 | Http后端相关

面试官:你背诵一下,OSI七层网络模型

今天我们来聊聊网络协议。 1. [OSI模型]() 网络协议是网络中两台计算机之间传输数据的标准语言。各种计算机系统使用 OSI(Open Systems Interconnection)模型规定的标准相互通信。OSI 模型有七个抽象层,每个层都有不同的职责和协议。 下图显示了 OSI 模型中每一层的功能。每一层都为其上层提供一类功能,并由其下层为其提供服务。 应用层 应用层最接近终端用户。大多数应用程序都位于这一层。我们从后端服务器请求数据,无需了解数据传输的具体细节。这一层的协议包括 HTTP、SMTP、FTP、DNS 等。 表现层 这一层处理[数据编码]()、加密和压缩,为应用层准备数据。例如,HTTPS 利用 TLS(Transport Layer Security)实现客户端与服务器之间的安全通信。 会话层 该层用于打开和关闭两个设备之间的通信。如果数据量较大,会话层就会设置检查点,避免...

 32 |  0 |  0 Http后端相关

念旧。 | 3天前 | Redis后端相关

感觉Redis变慢了,这些可能的原因你查了没 ?(下)

前言 Redis变慢排查的上一篇【[感觉Redis变慢了,这些可能的原因你查了没 ?(上)](https://www.developers.pub/article/1269832)】,我们是基于Redis命令为入口,比如命令使用不得当,bigkey问题,以及集中过期问题来看现象和如何进行优化处理的,认真读过的同学想必大家对这些现象和处理方式有了比较深的印象。 本期将基于存储层,比如AOF和[RDB]()持久化、内存分配机制、系统层以及一些额外的影响因素,来看看这些情况是如何导致对Redis造成影响的! 先看下篇的大纲: 持久化 借用上篇图,在服务层影响Redis性能的因素中,在存储层就涉及到持久化可能导致的影响,那到底是在什么情况下会发生呢! A...

 20 |  0 |  0 Redis后端相关

念旧。 | 3天前 | Redis后端相关

感觉Redis变慢了,这些可能的原因你查了没 ?(上)

前言 本期继续分享关于Redis的知识,让你掌握在Redis变慢后不会慌张,冷静下来分析问题,为了方便阅读,文章分为上下两篇! Redis 作为一款业内使用率最高的内存数据库,其拥有非常高的性能,单节点的[QPS]()压测能达到18万以上。但也正因此如此,当应用访问 Redis 时,如果发现响应延迟变大时就会给业务带来非常大的影响。 比如在日常使用Redis时,肯定或多或少都遇到过下面这种问题: 大部分兄弟面对这种访问变慢问题的排查就会一头雾水,不知道从哪里下手才好,因为不理解 Redis 的架构体系、核心功能的实现原理甚至一些命令的使用限制等。 今天就可能引起Redis变慢的原因一一分析,上篇看完后你将会形成一个比较完整的排查思路方案! Redis真的...

 31 |  0 |  0 Redis后端相关

奈我何 | 4天前 | JavaScript算法

万字总结 JS 数据结构与常用的算法

一、前言 首先,为什么我会学习数据结构与算法呢,其实主要是有两方面 第一,是我在今年的flag里明确说到我会学这个东西 第二,学了这些,对自己以后在工作或者面试也会带来许多好处 然后,本文是最近学习的一个 <span class="wx_text_underline" 总结文章</span ,文中的算法题, 大部分都是leetcode中 的,如不太理解题意,可直接去leetcode中找到对应的题。 二、基本概念 常常听到算法的时候,就会有人说到 时间复杂度 , 空间复杂度 。那么这俩玩意是啥呢,下面我们就来一一解释 1. 时间复杂度 其实就是一个函数,用大 O 表示, 比如 O(1)、 O(n)... 它的作用就是用来 定义描述算法的运行时间 O(1)     let i = 0     i += 1 O(n): 如果是 O(1) + O(n) 则还是 O(n)     for (let i = 0; i < n; i += 1) {  

 65 |  0 |  0 JavaScript算法

流苏 | 4天前 | DockerMySQL数据库

为什么不建议在Docker中跑MySQL?

容器的定义:容器是为了解决“在切换运行环境时,如何保证软件能够正常运行”这一问题。 目前,容器和 Docker 依旧是技术领域最热门的词语,无状态的服务容器化已经是大势所趋,同时也带来了一个热点问题被大家所争论不以: 数据库 MySQL 是否需要容器化? 认真分析大家的各种观点,发现赞同者仅仅是从容器优势的角度来阐述 MySQL 需要容器化,几乎没有什么业务场景进行验证自己的观点;反过来再看反对者,他们从性能、数据安全等多个因素进行阐述 MySQL不需要容器化,也举证了一些不适合的业务场景。下面,我们就聊一下 Docker 不适合跑 MySQL 的 N 个原因! 数据安全问题 不要将数据储存在容器中,这也是 Docker 官方容器使用技巧中的一条。容器随时可以停止、或者删除。当容器被rm掉,容器里的数据将会丢失。为了避免数据丢失,用户可以使用数据卷挂载来存储数据。 但是容器的 Volumes 设计是围绕 Union FS 镜像层提供持久存储,数据安全缺乏保证。如果容器突然崩溃,数据库未正常关闭,可能会损坏数据。另外,容器里共享数据卷组,对[物理机]()硬...

 24 |  0 |  0 DockerMySQL

柚香 | 4天前 | 前端相关JavaScript

JavaScript新数组方法介绍,不更改原数据的数

ECMAScript 2023 规范最近已经定稿,其中提出的 Array 对象新方法将为 JavaScript 带来更好的可预测性和可维护性。toSorted、toReversed、toSpliced 和 with 方法允许用户在不更改数据的情况下对数据执行操作,实质是先制造副本再更改该副本。 变异与副作用 Array 对象总是有点自我分裂。sort、reverse 和 splice 等方法会就地更改数组,[concat]()、map 和 filter 等其他方法则是先创建数组副本,再对副本执行操作。当我们通过操作让对象产生变异时,则会产生一种副作用,导致系统其他位置发生意外行为。 举例来说,当 reverse 一个数组时会发生如下情况。 const languages = ["JavaScript", "TypeScript", "CoffeeScript"]; const reversed = languages.reverse(); console.log(reversed); // = [ 'CoffeeScript', 'TypeScript', 'J

 15 |  0 |  0 前端相关JavaScript

iron Man | 5天前 | DDD后端相关

DDD死党:异构冗余模式充分发挥引擎潜力

1. 异构冗余是一种常态 我们开发的系统基本上都是“数据密集型”系统,单个工具已经不能满足应用系统的需求,总体工作被拆分成一系列能被单个工具高效完成的任务,并通过 应用代码 将它们缝合起来。应用通过 API 的方式,对外提供服务,屏蔽内部的复杂性。 很多存储引擎已经提供了对数据复制(冗余)的支持,可大幅提升引擎的吞吐和性能,但仅限于“同构冗余”,比如 MySQL 的主从复制机制: image 当读成为系统压力时,我们可以为Master构建多个 Slave 节点,将读请求从 Master 迁移至 Slave 集群,从而提升系统读请求上限。 “同构冗余” 属于技术红利,每个人都能直接享受。但,“异构冗余”则属于系统设计范畴,需要开发人员进行设计实现。 在实际工作过程中,经常出现主存储引擎无法应对的场景。比如,在一个电商平台中,以 MySQL 作为主存储引擎,你会遇到: 1. 性能瓶颈。商品详情页,需要...

 22 |  0 |  0 DDD后端相关

花小染 | 5天前 | 前端相关CSS

CSS 实现弧形卡片的 3 种方式

在平时开发中,有时候会碰到下面这种“弧形”样式,主要分为“内凹”和“外凸”两种类型,如下 该如何实现呢?或者想一下,有哪些 CSS 属性和“弧形”有关?下面介绍 3 种方式,一起看看吧 一、border-radius 通常情况下,我们用 border-radius 都是这样 <pre data-line="15" <section <span </span <span </span <span </span </section <code data-line="15" <span <span div</span {<br/ </span <span <span border-radius</span : <span 20</span px;<br/ </span <span }<br/ </span </code </pre 这样表示 4 个角都是圆角,并且是标准的正圆 ![图片](https://static.dev...

 26 |  0 |  0 前端相关CSS

孤音 | 5天前 | Spring 全家桶后端相关

微服务框架之争:Quarkus 是 SpringBoot 的替代品吗?

1 概述 [SpringBoot]()框架不用多介绍,Java程序员想必都知道。相对来说熟悉[Quarkus]()的人可能会少一些。Quarkus首页放出的标语:超音速[亚原子]()的Java(Supersonic Subatomic Java)。 它是为 OpenJDK HotSpot 和 [GraalVM]() 量身定制的 Kubernetes Native Java 框架,基于同类最佳的 Java 库和标准制作而成。Quarkus 的到来为开发 Linux 容器和 kubernetes 原生 Java 微服务带来了一个创新平台。 在本文中,我们将对这两个 Java 框架 Spring Boot 和 Quarkus 进行简单的比较。我们可以更好地了解它们之间的异同,以及一些特殊性。我们还会执行一些测试来衡量它们的性能。最后,我们会介绍一个开发人员如何从Spring转换到Quarkus。 2 SpringBoot Spring Boot 是一个基于 Java 的框架,专注于企业应用。它可以简单使用所有 Spring 项目,并集成了许多开箱即用的功能,来...

 21 |  0 |  0 Spring 全家桶后端相关

观云 | 1周前 | Spring 全家桶后端相关

监控 Spring Cloud 微服务的实践方案

1简介 [Spring Cloud]()是一个基于Spring Boot实现的微服务框架,它提供了丰富的微服务功能,如分布式配置、服务注册与发现、服务熔断、负载均衡等。为了更好地管理和监控这样复杂的微服务系统需要对其进行监控。 2监控意义和应用场景 1. 监控的重要性 监控可以实时了解系统的运行状态当系统出现问题时及时发现并采取措施,避免系统崩溃。同时可以根据监控数据进行系统性能优化,提升系统吞吐量和性能。 2. 监控应用场景 监控可以应用在多种场景中如下: 系统运行状态 系统资源利用率,如CPU、内存、磁盘等 接口访问次数和延迟 错误率和异常监控 日志信息监控 3监控体系架构 监控体系架构主要包含以下三个部分: 1. 数据源采集 通过在微服务中集成相应的监控组件采集系统运行状态和性能参数,如使用Spring Boot Actuator模块进行监控和采集。 <!-- 引入Spring Boot Actuator模块 - <dependency   <groupId org.springf

 31 |  0 |  0 Spring 全家桶后端相关

大牛猫 | 1周前 | Redis后端相关

面试官:Redis执行用户命令的过程是怎样的?你该如何应对

前言 Redis想必每一个后端人员都是非常熟悉,在我日常的开发中,基本上使用Redis作为缓存中间件,而且使用Redis让我们完成很多需求、解决了不少业务问题,这里问个问题看看你会怎么答? Redis怎么执行命令的呢? 面对这个问题想必大部分朋友心里的答案是:客户端发送命令给到服务端,服务端收到执行之后再处理将命令执行结果返回给客户端,简单来说如下图: 那么具体的更细节呢过程? 继续追问的话,能回答上来的还是比较少的,可能跟我之前一样无法表述出来,或者根本没深入了解学习过。 但是从今天开始我们讲能轻松应对,今天的文章将会深入Redis到底是如何执行我们输入的命令的,看了本文肯定能对你进阶学习Redis有很大的帮助!无论从面试角度,还是积累知识厚度方面都能有一个全面的认识。 分享文章内容前,老规矩,贴个文章大纲给大家,提前了解要讲的知识点。 ![图片](https://static.developers...

 27 |  0 |  0 Redis后端相关

蔡文姬 | 1周前 | ZookeeperRedis后端相关

分布式锁的各种实现,看完这篇你就懂了!

今天我们讲讲分布式锁,网上相关的内容有很多,但是比较分散,刚好自己刚学习完总结下,分享给大家,文章内容会比较多,我们先从思维导图中了解要讲的内容。 01 什么是分布式锁 分布式锁是控制分布式系统之间同步访问共享资源的一种方式,通过互斥来保持一致性。 了解分布式锁之前先了解下线程锁和进程锁: 线程锁:主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段。线程锁只在同一[JVM]()中有效果,因为线程锁的实现在根本上是依靠线程之间共享内存实现的,比如[Synchronized]()、Lock等。 进程锁:控制同一操作系统中多个进程访问某个共享资源,因为进程具有独立性,各个进程无法访问其他进程的资源,因此无法通过synchronized等线程锁实现进程锁。比如Golang语言中的sync包就提供了基本的同步基元,如[互斥锁]()。 但是以上两种适合在单体架构应用,但是分布式系统中多个服务节点,...

 33 |  0 |  0 ZookeeperRedis

布朗熊 | 1周前 | MySQL数据库

详解 canal 同步 MySQL 增量数据到 ES

canal 是阿里知名的开源项目,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。 这篇文章,我们手把手向同学们展示 使用 canal 将 MySQL 增量数据同步到 ES 。 1 集群模式 图中 server 对应一个 canal 运行实例 ,对应一个 JVM 。 server 中包含 1..n 个 instance , 我们可以将 instance 理解为 配置任务 。 instance 包含如下模块 : eventParser 数据源接入,模拟 slave 协议和 master 进行交互,协议解析 eventSink Parser 和 Store 链接器,进行数据过滤,加工,分发的工作 eventSto...

 25 |  0 |  0 MySQL数据库

推荐标签 🏷️

后端相关 前端相关 Java JavaScript Spring 全家桶 算法 Redis React