后端开发
文章平均质量分 87
Spring、Laravel、.Web后端
思月行云
吾求吾失且不暇,何暇论人哉?!
君子性非异也,善假于物也。
展开
-
Spring Boot 如何使用拦截器、过滤器、监听器详解
过滤器的英文名称为 Filter, 是 Servlet 技术中最实用的技术。如同它的名字一样,过滤器是处于客户端和服务器资源文件之间的一道过滤网,帮助我们过滤掉一些不符合要求的请求,通常用作 Session 校验,判断用户权限,如果不符合设定条件,则会被拦截到特殊的地址或者基于特殊的响应。Java中的拦截器是动态拦截 action 调用的对象,然后提供了可以在 action 执行前后增加一些操作,也可以在 action 执行前停止操作,功能与过滤器类似,但是标准和实现方式不同。转载 2024-04-24 10:31:31 · 272 阅读 · 0 评论 -
Golang搭建WebRTC视频通话服务及SIP通信服务
通过以上示例代码,我们演示了如何使用Golang和WebRTC库来创建一个基于WebRTC的视频通话应用。读者可以根据自己的需求进行二次开发和功能扩展。希望本文能够对初学者和开发者在Golang开发中实现基于WebRTC的音视频通话应用提供一些帮助。在本文中,我们介绍了如何使用Golang搭建SIP服务器。我们使用了pion/sip库来处理SIP消息,并创建了一个简单的SIP处理器来处理所有传入的请求。我们还介绍了一些常用的SIP客户端应用程序和命令行测试工具。转载 2024-03-29 11:03:20 · 1225 阅读 · 0 评论 -
Mongodb环境搭建及Go中的使用
Go语言操作mongodb_go mongodb-CSDN博客文章浏览阅读1.5k次。以上就是今天要讲的内容,如何使用go语言操作mongodb,展示了mongodb的部分指令,而mongodb提供的指令远不止这些,在学习的过程中做笔记,以防日后需要使用mongodb会忘记怎么使用,毕竟好记性不如烂笔头。一文教你Go语言如何轻松使用MongoDB_go mongodb-CSDN博客文章浏览阅读1.1k次。本文档详细介绍了如何使用Go语言对MongoDB进行基础操作。转载 2024-03-29 10:52:31 · 155 阅读 · 0 评论 -
一文带你搞懂线程池技术
虽然 Java 对线程的创建、中断、等待、通知、销毁、同步等功能提供了很多的支持,但是从操作系统角度来说,频繁的创建线程和销毁线程,其实是需要大量的时间和资源的。例如,当有多个任务同时需要处理的时候,一个任务对应一个线程来执行,以此来提升任务的执行效率,模型图如下:1.线程数不可控:随着任务数的增多,线程数也会增多,这些线程都没办法进行统一管理2.系统的开销很大:创建线程对系统来说开销很高,随着线程数也会增多,可能会出现系统资源紧张的问题,严重的情况系统可能直接死机。转载 2024-03-06 10:53:46 · 129 阅读 · 0 评论 -
亲测可用!国内最全的docker镜像源
docker 镜像源大全_docker镜像源-CSDN博客。转载 2024-01-24 13:56:30 · 43704 阅读 · 4 评论 -
微服务与网关技术
微服务与网关技术(SIA-GateWay) | 博客水木一. 背景 软件架构,总是在不断的演进中... 把时间退回到二十年之前,当时企业级领域研发主要推崇的还是 C/S一. 背景软件架构,总是在不断的演进中…把时间退回到二十年之前,当时企业级领域研发主要推崇的还是 C/S 模式,PB、Delphi 这样的开发软件是企业应用开发的主流。随着时间不断的推移,基于浏览器的的 B/S 架构开始渐渐流行了起来。转载 2024-01-10 09:51:11 · 168 阅读 · 0 评论 -
CentOS通过源码编译方式安装PHP的gRPC和protobuf扩展
下载PHP的gRPC和protobuf扩展包PHP的gRPC扩展:http://pecl.php.net/package/gRPCPHP的protobuf扩展:http://pecl.php.net/package/protobuf转载 2023-12-22 17:23:21 · 288 阅读 · 0 评论 -
如何将nohup日志写入指定文件
是一个UNIX工具,用于在您退出shell后继续运行命令。确保您有权写入指定的日志文件和路径。如果您没有,命令可能会失败。如何使用nohup将日志写入指定文件。如何使用nohup将日志写入指定文件。例如,如果你想在后台运行。的文件,除非另有指定。转载 2023-12-19 14:54:24 · 901 阅读 · 0 评论 -
CentOS如何查看硬件配置
请注意,这些命令通常需要root权限才能执行。在CentOS系统中,可以使用一些命令来查看硬件配置。其中,命令名是需要安装的命令的名称。转载 2023-12-11 09:46:39 · 1713 阅读 · 0 评论 -
Kafka实现消费者订阅主题和取消订阅
Kafka-消费者订阅主题和取消订阅_consumer is not subscribed to any topics or assign-CSDN博客文章浏览阅读5.6k次。消费者订阅消费者通过 subscribe() 和 assign() 两种方式订阅主题subscribe()使用 subscribe() 可以订阅一个或多个主题,对于这个方法而言,可以以集合的方式订阅多个主题,也可以以正则表达式的形式订阅特定模式的主题。转载 2023-12-06 16:57:53 · 641 阅读 · 0 评论 -
一文读懂 QUIC 协议:更快、更稳、更高效的网络通信
作者 | 李龙彦你是否也有这样的困扰:打开 APP 巨耗时、刷剧一直在缓冲、追热搜打不开页面、信号稍微差点就直接加载失败……如果有一个协议能让你的上网速度,在不需要任何修改的情况下就能提升 20%,特别是网络差的环境下能够提升 30% 以上;如果有一个协议可以让你在 WiFi 和蜂窝数据切换时,网络完全不断开、直播不卡顿、视频不缓冲;你愿意去了解一下它吗?它就是 QUIC 协议。本文将从 QUIC 的背景、原理、实践部署等方面来详细介绍。转载 2023-11-22 10:07:05 · 603 阅读 · 0 评论 -
【避坑指南】你知道吗?Python中Socket的Close方法是假的!
Python中Socket的用法及Close方法假关闭Socket连接的问题_python socket close_mjiansun的博客-CSDN博客文章浏览阅读3.6k次。最近用python的写了一个传输通讯测试工具,但是发现在Server端调用close方法后,如果循环没有break的话,此连接还可以继续用来发送和接收数据。所以,我就觉得很是奇怪,难道close方法关闭的连接没有起作用吗?经过试验后,确实如此。转载 2023-11-03 11:37:47 · 583 阅读 · 0 评论 -
【优质推荐】为什么遍历SynchronizedList需要「额外」加锁
这篇文章,我们简单分析了Java同步集合在遍历的时候应该如何做好线程安全。知识点很小,主要的目的是引导大家思考。我们平时看了太多的八股文了,都是简简单单的说同步集合的遍历需要自己加锁,但是鲜有文章会具体阐述为什么需要加锁?应该怎么加锁?为什么不从源码上来保证迭代的线程安全性?所以,在日常的学习中,我们要多加思考,不能死记硬背,要结合实践来理解。#Java##并发##锁#作者:我是祖国的花朵synchronizedX的迭代器遍历为什么需要加锁?_牛客网来源:牛客网。转载 2023-11-02 10:49:49 · 630 阅读 · 0 评论 -
为什么pymysql总是读到过期的数据
最近用 Flask 写了几个接口部署在服务器上,然后用 Pytest 来做测试,但遇到了问题,搞了大半天才把问题解决。转载 2023-10-30 09:44:36 · 288 阅读 · 0 评论 -
如何通过自适应心跳保活搭建高效保活的长连接体系
通过长时间保持双方连接,从而:提高通信速度确保实时性避免短时间内重复连接所造成的信道资源 & 网络资源的浪费心跳保活机制的整体介绍如下注:很多人容易混淆 心跳机制 & 轮询机制,此处给出二者区别设计方案流程设计其中,标识 “灰色” 的判断流程参考上文描述很多人认为,TCP协议自身就有KeepAlive机制,为何基于它的通讯链接,仍需在应用层实现额外的心跳保活机制?先来看看KeepAlive机制 是什么看完本文后,相信在高效维持长连接的需求下,你可以完美地解决了!(具体总结如下)转载 2023-10-24 15:40:34 · 242 阅读 · 0 评论 -
QUIC 协议详解
本文尽量用通俗易懂的语言介绍了 QUIC 协议实现原理,目的是让大家对 QUIC 有一个基本的了解,当然,这只是 QUIC 协议的冰山一角,更详细具体的内部实现还需要深入研究标准文档和源码,如果文中有描述不对的地方,欢迎批评指正,多多交流。客户端发送的 5 个数据包(56789)服务器都收到了,并且回应了 5 个 ACK,但是第 5 个数据包的 ACK 丢失了,导致客户端的发送窗口无法向前移动,也就无法发送新的数据,这就是 TCP 层的队头阻塞问题。那拥塞窗口的大小是如何计算的?转载 2023-10-19 17:14:34 · 2634 阅读 · 2 评论 -
python3安装confluent_kafka包实现kafka操作
= 0.9.1,当时在安装librdkafka时用的是./configure && make && make install,这样默认是把动态库安装到/usr/local/lib下的,所以在Linux的默认共享库路径/lib和/usr/lib下找不到。选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share。转载 2023-10-14 00:45:49 · 842 阅读 · 0 评论 -
php调用grpc环境配置及依赖安装详解
最近几天在搞golang的grpc,跑通之后想用php作为客户端调用一下grpc服务,结果拉了,一个php的grpc服务安装,搞了好几天,总算搞定了。对了,搞定的是linux下的,自己本地是M1的mac,还没有搞定?将此行添加到 php.ini 文件中的任意位置,例如 /etc/php7/cli/php.ini。您可以通过运行 php --ini 找到此文件。根据proto文件,自动生成php客户端相关文件。更多免费资料敬请关注下方公众号「风色年代」转载 2023-09-08 09:58:44 · 687 阅读 · 1 评论 -
Docker环境下搭建Redis集群(Cluster)及动态扩展
docker环境下组建redis集群转载 2023-05-19 10:44:47 · 1124 阅读 · 0 评论 -
js前端直传阿里云OSS,解决大文件上传限制
使用js直传oss阿里云存储文件,解决大文件上传服务器限制_js上传oss_孙奋斗的博客-CSDN博客使用js直传oss阿里云存储文件,解决大文件上传服务器限制每个OSS的用户都会用到上传服务。Web端常见的上传方法是用户在浏览器或App端上传文件到应用服务器,应用服务器再把文件上传到OSS。具体流程如下图所示。客户短上传和数据直传到OSS相比,以上方法有三个缺点:上传慢:用户数据需先上传到应用服务器,之后再上传到OSS。网络传输时间比直传到OSS多一倍。转载 2023-04-11 09:15:14 · 3725 阅读 · 2 评论 -
【优质推荐】一张图搞懂Java常用集合
一张图搞懂Java常用集合转载 2023-04-10 13:52:01 · 161 阅读 · 0 评论 -
【优质推荐】一张图囊括.Net完整技术体系
一张图囊括.Net完整技术体系转载 2023-04-10 13:52:08 · 228 阅读 · 0 评论 -
【优质推荐】EntityFramework使用介绍
EntityFramework使用介绍及范例详解转载 2023-04-10 13:41:43 · 596 阅读 · 0 评论 -
【优质推荐】史上最全的常用 SQL 语句大全
作者信息:知乎: @张赐荣赐荣博客: www.prc.cx模式定义了数据如何存储、存储什么样的数据以及数据如何分解等信息,数据库和表都有模式。主键的值不允许修改,也不允许复用(不能将已经删除的主键值赋给新数据行的主键)。SQL(Structured Query Language),标准 SQL 由 ANSI 标准委员会管理,从而称为 ANSI SQL。各个 DBMS 都有自己的实现,如 PL/SQL、Transact-SQL 等。SQL 语句不区分大小写,但是数据库表名、列名和值是否区分依赖于具体转载 2023-03-22 15:03:03 · 222 阅读 · 0 评论 -
【优质推荐】RedisCluster集群模式深入分析
Redis集群的做法是 将数据划分为 16384(2的14次方)个哈希槽(slots),如果你有多个实例节点,那么每个实例节点将管理其中一部分的槽位,槽位的信息会存储在各自所归属的节点中。Redis 集群的节点采用 Gossip 协议来广播信息,每个节点都会定期向其他节点发送ping命令,如果接受ping消息的节点在指定时间内没有回复pong,则会认为该节点失联了(PFail),则发送ping的节点就把接受ping的节点标记为主观下线。另外,单台服务机硬件扩容也是有限制的,不可能无限操作。转载 2023-03-20 10:22:58 · 382 阅读 · 0 评论 -
Netty Handler 生命周期讲解
netty从入门到放弃--handler的生命周期_通过handler传递的线程对象的生命周期?_@芋头@的博客-CSDN博客根据我们对netty服务端学习的顺序,我们学习了服务端启动过程,学习了消息载体,pipeline以及handler的使用,接下来学习下handler内部执行的一些情况我们来定义一个 LifecycleChannelInboundHandler ,它继承了ChannelInboundHandlerAdapter,我们来实现父类的方法进行日志打印,观察它每个方法被调用的顺序以及时机。转载 2023-03-18 16:34:39 · 329 阅读 · 0 评论 -
【优质推荐】深度讲解ConcurrentHashMap1.8内部原理
之前介绍了ConcurrentHashMap1.7,采用的是数组+分段锁的方式来实现的。虽然说采用分段锁的方式能够在一定程度上提高并发的效率,但是锁的粒度是Segment级别的,其实还是挺大的。于是,ConcurrentHashMap1.8继续在1.7版本上进行改进,将锁的粒度进一步减小,变成Node级别,又提升了并发的效率。转载 2023-03-18 16:15:05 · 1360 阅读 · 0 评论 -
【优质推荐】Dubbo原理和机制深度剖析
Java并发JVMMySQLSpringRedis分布式高并发Dubbo是一款Java RPC框架,致力于提供高性能的RPC远程服务调用方案。Dubbo 作为主流的微服务框架之一,为开发人员带来了非常多的便利。本文我们重点详解 Dubbo 的原理机制 @mikechen目录Dubbo核心功能Dubbo核心组件Dubbo的架构设计Dubbo调用流程。转载 2023-03-17 13:40:08 · 105 阅读 · 0 评论 -
【优质推荐】深入探讨Dubbo与Feign的区别
本篇文章先会介绍一下Dubbo和Feign,以及它们的区别,对比。Dubbo支持更多功能、更灵活、支持高并发的RPC框架。SpringCloud全家桶里面(Feign、Ribbon、Hystrix),特点是非常方便。Ribbon、Hystrix、Feign在服务治理中,配合Spring Cloud做微服务,使用上有很多优势,社区也比较活跃,看将来更新发展。转载 2023-03-17 09:25:58 · 2634 阅读 · 0 评论 -
Spring Cloud Consul中文手册
通过几个简单的注释,您可以快速启用和配置应用程序中的常见模式,并使用基于Consul的组件构建大型分布式系统。提供的模式包括服务发现,控制总线和配置。Consul实例的运行状况检查默认为“/ health”,它是Spring Boot Actuator应用程序中有用端点的默认位置。默认情况下,密钥的名称是文件的名称。使用这个元数据和在localhost上部署的多个服务实例,随机值将在那里进行,以使实例是唯一的。当客户端注册Consul时,它提供有关自身的元数据,如主机和端口,ID,名称和标签。转载 2023-03-08 10:44:30 · 214 阅读 · 0 评论 -
Springboot集成Nacos并获取其他服务信息
在客户端使用 Nacos 服务时,可以配置多个 Nacos 注册中心地址,当一个地址不可用时,自动切换到另一个地址,从而实现高可用性。在使用 Nacos 进行服务注册和发现时,需要为每个服务配置一个唯一的服务名称。因此,需要保证服务名称的唯一性。在配置 Nacos 注册中心地址时,需要保证配置的地址是正确的。发送检查请求,如果服务无法正常响应,Nacos 将自动将该服务实例从服务列表中移除,以保证服务的可用性。如果使用的是远程的 Nacos 服务,则需要将地址配置为远程 Nacos 服务的地址。转载 2023-03-08 09:18:39 · 2334 阅读 · 0 评论 -
Java中常见的集合类
Java 集合框架 | 菜鸟教程Java 集合框架 早在 Java 2 中之前,Java 就提供了特设类。比如:Dictionary, Vector, Stack, 和 Properties 这些类用来存储和操作对象组。虽然这些类都非常有用,但是它们缺少一个核心的,统一的主题。由于这个原因,使用 Vector 类的方式和使用 Properties 类的方式有着很大不同。集合框架被设计成要满足以下几个目标。该框架必须是高性能的。基本集合(动态数组..转载 2023-03-07 16:06:07 · 123 阅读 · 0 评论 -
AVL树的左旋与右旋
笔者认为AVL树的维持平衡的思想理解起来相对来说还是有点难度的,所以这里做一下总结,希望能帮助到读者。首先,AVL树基于二分搜索树,不同的是它要求每一个节点保持平衡。那么在插入新元素的时候就可能会破坏原本的平衡性(当然删除元素也会,删除和添加是逆向操作,如果明白了本章内容,删除操作也是非常简单的,这一部分内容下一章再进行补充),所以就需要我们使用左旋或者右旋进行维护它的平衡。那么不平衡的情况一共是四种,如下图:imageimageimageimage针对不同的情况,做不同的旋转即可。转载 2023-03-07 15:57:20 · 209 阅读 · 0 评论 -
@FeignClient使用详解
6.然后我们启动注册中心,配置中心以及两个消费者服务,需要了解配置中心和注册中心的搭建可以看我前两篇文章,启动后浏览器我们进行访问。可以看到,返回的数据中已经包含了custorm工程中拼接的数据,说明我们远程调用接口成功,以上就是feign的简单使用。然后在custorm工程中写一个接口,在这个接口里我们只将传输进来的数据再添加一个数据返回回去。@FeignClient使用详解_夜行者~的博客-CSDN博客。2:在方法参数前面添加。转载 2023-03-06 00:25:50 · 937 阅读 · 0 评论 -
SpringBoot - 获取POST请求参数详解
SpringBoot - 获取POST请求参数详解(附样例:表单数据、json、数组、对象)SpringBoot - 获取POST请求参数详解(附样例:表单数据、json、数组、对象)在前文中我介绍了 Controller 如何接收通过 GET 方式传递过来的参数,下面接着演示如何接收通过 POST 方式传递过来的参数。转载 2023-03-06 00:23:25 · 11550 阅读 · 0 评论 -
红黑树B树B+树区别及其适用场景
红黑树B树B+树是我们经常听到的数据结构,在各大组件设计和实现使用的很多,我们只有根本上分析这几种树结构的区别,才能从根本上明白一些组件这样设计的原因.转载 2023-03-02 11:43:27 · 96 阅读 · 0 评论 -
一篇图文彻底弄懂 红黑树、B树、B+树 本质区别及应用场景
面试现场小史:没问题,这个项目前端用的 React+Webpack,后端用的 Nginx+Spring Boot+Redis+MySQL,前后端是分离的,最后用 Docker 进行容器化部署。小史:没问题,这个项目前端用的 React+Webpack,后端用的 Nginx+Spring Boot+Redis+MySQL,前后端是分离的,最后用 Docker 进行容器化部署。小史:红黑树看过很多遍了,但是每次都记不住,它的规则实在是太多了,光定义就有四五条规则,还有插入删除的时候,需要调整树,复杂得很。转载 2023-03-02 10:26:37 · 916 阅读 · 1 评论 -
b树和b+树有什么不同
大家在面试的时候,肯定都会被问到MySql的知识,以下是面试场景:B树 和B+树是 MySQL索引使用的数据结构,对于索引优化和原理理解都非常重要,下面我的写文章就是要把B树,B+树的神秘面纱揭开,让大家在面试的时候碰到这个知识点一往无前,不再成为你的知识盲点!所有关键字存储在叶子节点出现,内部节点(非叶子节点并不存储真正的 data)为所有叶子结点增加了一个链指针简化 B+树 如下图。转载 2023-02-28 08:34:03 · 616 阅读 · 0 评论 -
跳表,红黑树,b+树,hashmap的区别
在计算机中,磁盘存储数据最小单元是扇区,一个扇区大小为512字节,而文件系统的最小存储单元是块,一个块的大小是4k(即如果一个文件及时只有1k,在磁盘上占的空间也是4k)。说了这么多,我就是想表明。转载 2023-02-27 15:35:11 · 595 阅读 · 0 评论 -
Java基础数据结构知识总结
这里补充一下,由于Arraylist和Vector都是由数组实现的,所以他们有一个共同点,索引,这就提供了在进行查找的时候,速度就相对会快一些,不过在考虑查询的时候,又要考虑两者之间的线程问题(Vector会慢一些),但在增加的时候,同样是由List接口实现而来的LinkList不同的是,LinkList的底层是由双向链表实现而来的,所以在插入、删除、修改操作时,使用LinkList的速度又会比Arraylist和Vector都快!3、HashMap的工作效率更高,而TreeMap则是基于树的增删查改。转载 2023-02-27 15:31:40 · 219 阅读 · 0 评论