深圳幻海软件技术有限公司 欢迎您!

  • 设计模式之解释器模式

    解释器模式字面意思,也即解释某些内容的含义。这种设计模式是实际开发中最不容易用到的。比如SQL解析,符号处理引擎,会用到解释器模式,属于更底层的开发人员才会用到的设计模式。本文就以解释器模式的概念、角色和简单的例子说明解释器模式,读者对这部分内容了解即可。一、概念解释器模式是指给定一门语言,定义它的

  • 浅拷贝和深拷贝

    title:浅拷贝和深拷贝概念浅拷贝:只拷贝最外面一层的数据;更深层次的对象,只拷贝引用。深拷贝:拷贝多层数据;每一层级别的数据都会拷贝。总结:拷贝引用的时候,是属于传址,而非传值。关于传值和传址的区别,是很基础的内容,详见《JavaScript基础/对象简介.md》这篇文章。深拷贝会把对象里所有的

  • AOP思想应该怎么去理解!

    我们都知道,在面试的时候,很多面试官喜欢问基础的知识,但是基础的内容说的都是AOP的理论,然后问到实际讲解Spring的AOP的时候,却又问的不是那么的细致,因为毕竟是面试,但是当你面试一些稍微大型的公司的时候,他们就喜欢刨根问底的询问一些你了解的AOP都应用在哪些地方,又是怎么使用,今天阿粉就来说

  • Kafka的春天-重试机制

    哈喽,大家好,我是指北君。最近业务上用到了SpringKafka,所以系统性的探索了下SpringKafka的各种用法,发现了很多实用的特性,下面介绍下SpringKafka的消息重试机制。0.前言原生Kafka是不支持消息重试的。但是SpringKafka2.7+封装了RetryTopic这个功能

  • 三个Python小工具,Linux服务器性能直线飞起!!!

    为加快巡检速度和知晓服务器状况,我使用了multiprocessing.dummy多线程、pampy模式匹配和一个elementUI组件,这些工具确能帮忙处理实际问题:一行代码实现并行原本二十多台服务器巡检用shell需3分钟完成,用multiprocessing.dummy模块后只需十几秒pamp

  • Spring Boot加一个注解,轻松实现 Redis 分布式锁

    一、业务背景有些业务请求,属于耗时操作,需要加锁,防止后续的并发操作,同时对数据库的数据进行操作,需要避免对之前的业务造成影响。二、分析流程使用Redis作为分布式锁,将锁的状态放到Redis统一维护,解决集群中单机JVM信息不互通的问题,规定操作顺序,保护用户的数据正确。梳理设计流程 新

  • 阿里一面:Spring Bean 默认是单例的,高并发情况下,如何保证并发安全?

    Spring的bean默认都是单例的,某些情况下,单例是并发不安全的,以Controller举例,问题根源在于,我们可能会在Controller中定义成员变量,如此一来,多个请求来临,进入的都是同一个单例的Controller对象,并对此成员变量的值进行修改操作,因此会互相影响,无法达到并发安全(不

  • 三个Python工具,Linux服务器性能直线飞起!!!

    大家好,我是派森酱。由于工作需要,服务器每周需巡检一次。除了内存、cpu、磁盘、网络连接等数据外,还有不同的服务。为加快巡检速度和知晓服务器状况,我使用了multiprocessing.dummy多线程、pampy模式匹配和一个elementUI组件,这些工具确能帮忙处理实际问题:一行代码实现并行原

  • 聊聊 Java 数据结构与算法中的堆最小堆和最大堆

    一、前言堆的历史堆的数据结构有很多种体现形式,包括;2-3堆、B堆、斐波那契堆,而在JavaAPI中最常用的是用于实现优先队列的二叉堆,它是由JWJWilliams在1964年引入的,作为堆排序算法的数据结构。另外在Dijkstra算法等几种高效的图算法中,堆也是非常重要的。二、堆的数据结构在计算机

  • 听说 TCC 不支持 OpenFeign?这个坑松哥必须给大家填了!

    我一直觉得网上讲分布式事务的理论很多,案例代码很少,所以咱们今天就整一个例子,一起来把这个捋一捋。1.什么是TCC模式相比于上篇文章所聊的AT模式,TCC(Try-Confirm-Cancel)模式就带一点手动的感觉了,它也是两阶段提交的演化,但是和AT又不太一样,我们来看下流程。官网上有一张TCC

  • 为 FastAPI 配置日志的三种方法

    你好,我是somenzz,可以叫我征哥,最近在用FastAPI的时候,发现FastAPI的官方文档没有配置日志的相关说明,今天就分享一下FastAPI配置日志的三种方法。第一种,就像写脚本那样记录日志这一种方法最简单直接,平时写脚本的时候怎么记录日志,这里就怎么记录日志,通常就是先配置日志格式,然后

  • 如何用printf写一个自己的日志打印系统?

    日志打印的注意事项在编写程序后,我们可以随手在需要的地方加入打印信息,同时需要考虑如下事项:日志输出是有代价的,特别是在嵌入式系统,或者对执行时序要求较高的应用场景。因此:   a)只有在需要的地方加入,不能滥用。   b)一定要有一个全局

  • 聊聊 Undermoo -为 Memory Broker 设置备份

    项目地址:https://github.com/doyoubi/undermoon为MemoryBroker设置Replica构建二进制文件:复制$cargobuild1.运行replica复制$RUST_LOG=warp=info,undermoon=info,mem_broker=infoUND

  • HarmonyOS 自定义组件之上拉抽屉

    想了解更多内容,请访问:51CTO和华为官方合作共建的鸿蒙技术社区https://harmonyos.51cto.com简介HarmonyOS开发自定义组件目前还不是很丰富,在开发过程中常常会有一些特殊效果的组件,这就需要我们额外花一些时间实现,这里给大家提供了一个BottomSheet上拉抽屉的组

  • HarmonyOS Sample 之 DistributedMusicPlayer分布式音乐播放器

    想了解更多内容,请访问:51CTO和华为官方合作共建的鸿蒙技术社区https://harmonyos.51cto.comDistributedMusicPlayer分布式音乐播放器介绍本示例主要演示了如何通过迁移数据进行音乐的分布式播放。实现了音乐播放的跨设备迁移,包括:播放哪首歌曲、播放进度、以及

  • 什么是2038问题?

    什么是2038问题不知道你有没有听过2038问题?无论你是否听过,本文将带你认识什么是2038问题。Unix时间戳定义为从格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。而在C语言中,常用time_t来表示。举个例子:复制#i

  • 惊讶!我定的日志规范被CTO在全公司推广了

     打印日志是一门艺术,但长期被开发同学所忽视。日志就像车辆保险,没人愿意为保险付钱,但是一旦出了问题又都想有保险可用。  图片来自Pexels 我们打印日志的时候都很随意,可是用的时候会吐槽各种SB包括自己!写好每一条日志吧,与君共勉!日志是什么?日志,维基百

  • Java并发编程(JUC)模拟AND型信号量

    AND型信号量可能大家都听说过并可能都有一定的理解,但是你有使用过么?今天就使用Java来模拟实现!本文是对上篇文章(进程同步机制)的一次实践,通过JUC提供的一些机制来模拟一些OS中的AND型信号量,因为记录型型信号量可以等价于JUC中提供的Semaphore(信号量),但是对于AND型信号量因为

  • 在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式

    介绍你需要将SVG文件转换为PNG、JPEG、TIFF、WEBP和HEIF格式吗?本文将指导你如何转换为所有这些类型的格式。我们将使用Node.js和Sharpnpm包来完成大部分繁重的工作。目录 安装SharpNpm包 SVG转PNG SVG转JPEG SV

  • Spring Cloud Stream 使用延迟消息实现定时任务(RabbitMQ)

     应用场景我们在使用一些开源调度系统(比如:elastic-job等)的时候,对于任务的执行时间通常都是有规律性的,可能是每隔半小时执行一次,或者每天凌晨一点执行一次。然而实际业务中还存在另外一种定时任务,它可能需要一些触发条件才开始定时,比如:编写博文时候,设置2小时之后发送。对于这些开

推荐阅读