如何实现前后端交互

如何基于 Redis 实现分布式锁

什么是分布式锁 分布式锁:不同进程必须以互斥方式使用共享资源的一种锁方法实现。 实现分布式锁的基础 互斥。任何时刻,只有一个客户端持有锁。 无死锁。最终总是有可能获得锁,即使持有锁的客户端已经崩溃。 单个 Redis 分布式锁实现 上锁 上锁需要考虑俩点 原子性 锁能自动释放 首先要考虑持有锁的客户 ......
分布式 Redis

Kafka技术专题之「性能调优篇」消息队列服务端出现内存溢出OOM以及相关性能调优实战分析

本篇文章介绍Kafka处理大文件出现内存溢出 java.lang.OutOfMemoryError: Direct buffer memory,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。 ......
性能 实战分析 队列 实战 内存

【Spring专题】「开发指南」夯实实战基础功底之解读logback-spring.xml文件的详解实现

logback的maven配置 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>2.0.3</version> </dependency> <dependency> <grou ......

作者推荐 | 【分布式技术专题】「架构设计方案」图解学习法总结集群模式下的各种软负载均衡策略实现及原理分析

通常来说,负载均衡分为硬件负载均衡及软件负载均衡。硬件负载均衡,顾名思义,在服务器节点之间安装专门的硬件进行负载均衡的工作,F5或者A10便为其中的佼佼者。软件负载均衡则是通过在服务器上安装的特定的负载均衡软件或是自带负载均衡模块完成对请求的分配派发。例如,平时我们使用的Nginx或者API-Gat... ......
分布式 集群 架构 原理 策略

超详细讲解如何搭建自己的文件服务器

由于FTP、HTTP、Telnet等协议的数据都是使用明文进行传输的,因此从设计上就是不可靠的。人们为了满足以密文方式传输文件的需求,发明了vsftpd服务程序。vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不... ......
服务器 文件

遥感图像识别(标注)软件实现

遥感图像识别已经有很多成熟的模型和实现,这里我们选择yolov5_obb和dota数据集,以说明并实现一种思路:那就是先识别、再标注、再训练的过程。鉴于领域内数据往往比较封闭,对此类数据的标注实现难度较大,所以需要模型迁移。首先基于已经训练的成果,实现初步标绘;而后通过人在回路的修正,获得精确的结果 ......
遥感 图像 软件

RabbitMQ、RocketMQ、Kafka延迟队列实现

延迟队列在实际项目中有非常多的应用场景,最常见的比如订单未支付,超时取消订单,在创建订单的时候发送一条延迟消息,达到延迟时间之后消费者收到消息,如果订单没有支付的话,那么就取消订单。 那么,今天我们需要来谈的问题就是RabbitMQ、RocketMQ、Kafka中分别是怎么实现延时队列的,以及他们对 ......
队列 RabbitMQ RocketMQ Kafka

仿照“全能扫描王”的图像增强-由原理到实现

本文区分目标、ps模拟操作、算法实现、算法原理、延申扩展等几个部分对背景去除增强这种典型算法进行了剖析。 ......
全能 图像 原理

PowerDotNet平台化软件架构设计与实现系列(15):支付平台

PowerDotNet个人项目中功能全面而强大的一个系统是支付平台。我对PowerDotNet的自信很大程度上来自于经过PowerDotNet重写后的支付、财务、结算、CRM等业务型公共服务系统的稳定运行。 使用PowerDotNet和PowerDotNetCore特别开发的业务逻辑型公共服务既有极 ......
平台 PowerDotNet 架构 软件

基于Unet+opencv实现天空对象的分割、替换和美化

传统图像处理算法进行“天空分割”存在精度问题且调参复杂,无法很好地应对云雾、阴霾等情况;本篇文章分享的“基于Unet+opencv实现天空对象的分割、替换和美化”,较好地解决了该问题,包括以下内容: 1、基于Unet语义分割的基本原理、环境构建、参数调节等 2、一种有效的天空分割数据集准备方法,并且... ......
对象 天空 opencv Unet

PowerDotNet平台化软件架构设计与实现系列(14):平台建设指南

软件开发中常见的几种不同服务模型包括SaaS(软件即服务)、LaaS(许可即服务)、PaaS(平台即服务)、CaaS(容器即服务)、IaaS(基础设施即服务)和FaaS(功能即服务)。 很多人认为IaaS和FaaS是趋势,是未来软件设计与开发人员的基本必备技能,PowerDotNet和PowerDo ......
平台 PowerDotNet 架构 指南 软件

intel Pin:动态二进制插桩的安装和使用,以及如何开发一个自己的Pintool

先贴几个你可能用得上的链接 intel Pin的官方介绍Pin: Pin 3.21 User Guide (intel.com) intel Pin的API文档Pin: API Reference (intel.com) intel Pin的下载地址Pin - A Dynamic Binary In ......
二进制 Pintool 动态 intel Pin

vue3项目,记录我是如何用1h实现产品预估1天工作量的界面需求

最近在编写前端界面,硬是一人一周时间加班加点写完了一个项目的前端界面(一级菜单有12个页面+一个控制台大屏,二三级界面有N个),之前预估前端界面的编写需要一个月,我是自己把自己卷死了(没有办法,项目经理说项目要1周写界面,2周发版,我这个项目前端只我1个人,后端有3个人...).......我只想说 ......
界面 需求 项目 产品 vue3

如何用3D流体实现逼真水流效果?

华为应用市场在2022年HDC大会期间发布了一款3D水流主题,基于华为HMS Core Scene Kit服务能力,展现立体灵动的水流岛屿,可跟随用户指尖实现实时流体波动效果,既趣味又解压。 让变幻莫测的物质来实现我们在影视和游戏等多种应用场景中的奇思妙想,从早期步骤繁重的特效制作演变到如今,已经有 ......
流体 水流 效果

如何优化大场景实时渲染?HMS Core 3D Engine这么做

在先前举办的华为开发者大会2022(HDC)上,华为通过3D数字溪村展示了自有3D引擎“HMS Core 3D Engine”(以下简称3D Engine)的强大能力。作为一款高性能、高画质、高扩展性的3D引擎,3D Engine不仅能通过实时光追、水体渲染、体积云雾、多维GPU粒子系统等技术还原真 ......
实时 场景 Engine Core HMS

分享一个你很可能不知道的Java异常实现的缺陷

Java中一个大家熟知的知识点就是异常捕获,try...catch...finally组合,但是很多人不知道这里面有一个关于Java的缺陷,或者说是异常实现的一点不足之处。 ......
缺陷 Java

Python全栈工程师之从网页搭建入门到Flask全栈项目实战(6) - Flask表单的实现

1.表单介绍 1.1.表单知识回顾 常见的表单元素: 表单标签<form> action:表单提交的URL地址 method:表单请求的方式(GET/POSt) enctype:请求内容的形式,如:application/x-www-form-urlencoded、multipart/form-da ......
Flask 表单 实战 工程师 网页

flutter系列之:移动端手势的具体使用

简介 之前我们介绍了GestureDetector的定义和其提供的一些基本的方法,GestureDetector的好处就是可以把任何一个widget都赋予类似button的功能。 今天将会通过几个具体的例子来讲解一下GestureDetector的具体使用。 赋予widget可以点击的功能 一般情况 ......
手势 flutter

图解B树及C#实现(1)

前言 B树(B-tree),也常被记作 B-树,其中“-”不发音。B树的发明者 Rudolf Bayer 和 Edward M. McCreight 并没有给B树中的 B 明确的定义,大家也不必对此纠结太多。 B+树是B树的变体,两者的适用场景是不一样的,以后也会给大家带来B+树的介绍。 本系列将用 ......

有状态软件如何在 k8s 上快速扩容甚至自动扩容

概述 在传统的虚机/物理机环境里, 如果我们想要对一个有状态应用扩容, 我们需要做哪些步骤? 申请虚机/物理机 安装依赖 下载安装包 按规范配置主机名, hosts 配置网络: 包括域名, DNS, 虚 ip, 防火墙... 配置监控 今天虚机环境上出现了问题, 是因为 RabbitMQ 资源不足. ......
状态 软件 k8s k8 8s

<七>lambda表达式实现原理

C++11 函数对象的升级版=>lambda表达式 函数对象的缺点: 使用在泛型算法,参数传递, 比较性质/自定义操作 优先级队列, 需要专门定义出一个类 //lambda表达式语法: //[捕获外部变量](形参列表)->返回值{操作代码} auto func1=[]()->void{cout<<" ......
表达式 原理 lambda lt gt

图解B树及C#实现(2)数据的读取及遍历

前言 本文为系列文章 B树的定义及数据的插入 数据的读取及遍历(本文) 数据的删除 前一篇文章为大家介绍了 B树 的基本概念及其插入算法。本文将基于前一篇的内容,为大家介绍插入到 B树 中的数据该怎么读取及遍历, 本文的代码基于前一篇文章的代码,已经实现的功能可能会被省略,只介绍新增的功能。 在本文 ......
数据

SpringBoot源码学习2——SpringBoot x Mybatis 原理解析(如何整合,事务如何交由spring管理,mybatis如何进行数据库操作)

阅读本文需要spring源码知识,和springboot相关源码知识 对于springboot 整合mybatis,以及mybatis源码关系不密切的知识,本文将简单带过 系列文章目录和关于我 涉及到spring ioc原理,可移步学习:Spring源码学习笔记12——总结篇IOC,Bean的生命周 ......
SpringBoot 源码 原理 事务 Mybatis

Jvm上如何运行其他语言?JSR223规范最详细讲解

一 在Java的平台里,其实是可以执行其他的语言的。包括且不仅限于jvm发展出来的语言。 有的同学可能会说,在java项目里执行其他语言,这不吃饱了撑着么,java体系那么庞大,各种工具一应俱全,放着好好的java不写,还要去执行其他语言干嘛。 写java的都知道,java是需要事先编译的,这意味着 ......
语言 Jvm JSR 223

自己动手基于 Redis 实现一个 .NET 的分布式锁类库

分布式锁的核心其实就是采用一个集中式的服务,然后多个应用节点进行抢占式锁定来进行实现,今天介绍如何采用Redis作为基础服务,实现一个分布式锁的类库,本方案不考虑 Redis 集群多节点问题,如果引入集群多节点问题,会导致解决成本大幅上升,因为 Redis 单节点就可以很容易的处理10万并发量了,这 ......
分布式 Redis NET

小技巧 EntityFrameworkCore 实现 CodeFirst 通过模型生成数据库表时自动携带模型及字段注释信息

今天分享自己在项目中用到的一个小技巧,就是使用 EntityFrameworkCore 时我们在通过代码去 Update-Database 生成数据库时如何自动将代码模型上的注释和字段上的注释携带到数据库中,方便后续在数据库直接查看各个表和各个字段的含义。 实现效果如下: 可以看到我们每张表都有明确 ......

Kotlin + SpringBoot + JPA 服务端开发

Kotlin + SpringBoot + JPA 服务端开发 本篇主要介绍一下 kotlin + springboot的服务端开发环境搭建 1.概述 Kotlin 是一个基于JVM的编程语言, 是IDEA开发工具 jetbrains 公司开发的语言,也被google选为android开发的首选语言 ......
SpringBoot Kotlin JPA

keepalived + nginx 实现高可用

keepalived + nginx 实现高可用 本篇主要介绍一下 keepalived + nginx 来实现 对于nginx的高可用, 还是简单的主备模式 1.概述 前面有了解keepalived 的主备的基本使用, 但是那种是针对宕机等情况 停止了keepalived 的进程实现的 vip的漂 ......
keepalived nginx

Hadoop如何保证自己的江湖地位?Yarn功不可没

前言 任何计算任务的运行都离不开计算资源,比如CPU、内存等,那么如何对于计算资源的管理调度就成为了一个重点。大数据领域中的Hadoop之所以一家独大,深受市场的欢迎,和他们设计了一个通用的资源管理调度平台Yarn密不可分,那Yarn是如何做进行资源管理的呢?它的通用性体现在哪里呢?它是如何保证Ha ......
功不可没 地位 江湖 Hadoop Yarn

如何在SpringBoot中优雅地重试调用第三方API?

前言 作为后端程序员,我们的日常工作就是调用一些第三方服务,将数据存入数据库,返回信息给前端。但你不能保证所有的事情一直都很顺利。像有些第三方API,偶尔会出现超时。此时,我们要重试几次,这取决于你的重试策略。 下面举一个我在日常开发中多次看到的例子: public interface OutSou ......
第三方 SpringBoot API