- 博客(707)
- 资源 (3)
- 收藏
- 关注
原创 MQ队列 消息队列的七种经典应用场景
曾经使用过 ActiveMQ 、RabbitMQ 、Kafka 、RocketMQ 这些知名的消息队列 和大家分享消息队列的七种经典应用场景。
2024-03-29 15:35:46 82
原创 byte与string的两种转换方式和底层实现
byte和string的两种转换方式。不过Go语言提供给我们使用的还是标准转换方式,主要是因为在你不确定安全隐患的情况下,使用强转化方式可能不必要的问题。
2024-03-29 15:31:57 120
原创 Python 中将字符串中的换行符替换为其他字符或字符串
在上面的示例中,我们首先导入了re模块,然后定义了一个包含换行符的文本字符串。在Python中,要删除字符串中的换行符,我们可以使用strip()函数。在这里,strip("\n")中的\n表示要删除的字符,即换行符。下面是实现“Python正则去掉换行符”的步骤,我们将使用Python的re模块来进行正则表达式的匹配和替换。下面是一个示例代码,演示了如何使用Python的正则表达式去掉文本中的换行符。接下来,我们使用strip()函数删除字符串中的换行符。首先,我们需要获得包含换行符的字符串。
2024-03-29 15:22:17 1
原创 比 ElasticSearch 快 1000 倍的日志引擎
SigLens凭借高效的日志处理能力和简易的操作流程,正迅速在开源社区中获得认可。从基础部署到复杂查询,SigLens都展现出其强大的实用性。
2024-03-28 10:46:32 4
原创 三分钟学会在 RabbitMQ 中实现发布订阅模式
在上述代码的channel.exchangeDeclare(EXCHANGE_NAME, "fanout"),我们声明一个名为"log"的exchange,同时我们定义其类型为"fanout",意味着它会将接收到的所有消息广播给所有它所知道的队列。以下是使用RabbitMQ实现发布-订阅模式的一种例子,我们将使用RabbitMQ的Fanout Exchange。结论:掌握发布-订阅模式和消息发送失败处理策略,对于掌握消息队列的使用至关重要,可为系统的稳定性和扩展性提供保障。
2024-03-28 10:19:39 6
原创 SpringCloud项目开发中实用技巧总结
通过 spring.factories添加 PropertySourceLocator 类型的 Bean 来添加其他属性源。@Override在spring.factories中添加如下配置以上是本篇文章的全部内容。
2024-03-28 10:12:39 4
原创 python 字符串中的单词反转
这段代码定义了一个名为reverse_sentence()的函数,它接受一个字符串作为参数,并返回反转后的字符串。这段代码使用空格作为分隔符,将reversed_word_list列表中的单词拼接成字符串,并将结果存储在reversed_sentence变量中。这段代码使用切片操作[::-1]将word_list列表进行反转,并将反转后的列表存储在reversed_word_list变量中。这段代码将字符串"Hello World"按照空格进行分割,并将分割后的单词存储在word_list变量中。
2024-03-28 09:50:26 4
原创 Python 集成测试:提高软件质量的关键步骤
集成测试是软件开发的关键步骤,用于验证不同组件的协同工作。Python提供了unittest和pytest等工具来简化集成测试的编写和执行。编写良好的集成测试有助于提高软件质量、减少缺陷和改进应用程序的稳定性。通过遵循最佳实践和自动化集成测试,可以在持续集成流程中集成测试,并在开发周期的每个阶段执行它们。
2024-03-27 10:45:27 4
原创 Python Watchdog:实时监控文件系统的终极解决方案
文件系统监控是许多应用程序的关键部分,用于实时检测文件和目录的更改。Python Watchdog是一个优秀的第三方库,用于实现高效的文件系统监控。它提供了一种简单而强大的方式来监控文件和目录的创建、修改、删除等事件。
2024-03-27 10:41:21 4
原创 Python多线程编程全解析:基础到高级用法
Python中有多线程的支持。Python的threading模块提供了多线程编程的基本工具。在下面,我将列举一些基础的多线程用法和一些高级用法,并提供相应的源代码,其中包含中文注释。
2024-03-27 10:28:31 3
原创 快速上手 Elasticsearch:Docker Compose 部署详解
Elasticsearch 作为一款强大的搜索和分析引擎,为我们处理海量数据提供了便利,在实际项目中具有广泛的应用前景。文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html。创建挂载目录./es/config,./es/data,./es/plugins,赋予读写权限。在我们的服务器上创建我们的部署目录,在部署目录下创建docker-compose.yml文件。如果不出意味的话我们的服务应该是启动了。
2024-03-27 10:15:50 56
原创 Redis事务的概念及相关命令的使用
然后,依次执行了三个set命令,将键"aa"设置为值"22",将键"bb"设置为值"33",将键"cc"设置为值"44"。然后,依次执行了两个set命令,将键"aa"设置为值"11",将键"ee"设置为值"EE"。然后,依次执行了四个set命令,将键"aa"、“bb”、“cc"和"dd"分别设置为对应的值"AA”、“BB”、“CC"和"DD”。当事务中命令知识逻辑错误,就比如给字符串做加减乘除操作时,只能在执行过程中发现错误,这种事务执行中失败的命令不影响其他命令的执行。
2024-03-27 10:10:34 2
原创 java如何判断字符串是不是中文
System.out.println(str + " 不包含中文字符");System.out.println(str + " 不包含中文字符");System.out.println(str + " 包含中文字符");System.out.println(str + " 包含中文字符");Java中的正则表达式提供了匹配中文字符的模式,可以使用这个模式判断字符串是否包含中文字符。以上是几种常见的判断是否为中文字符的方法,根据实际需求选择合适的方法即可。// 判断字符串是否为中文字符。
2024-03-27 10:06:22 2
原创 超级最全的python基础篇
Python支持多种数据类型,在计算机内部可以把任何数据看成一个”对象”,而变量赋值就是将变量和数据对象关联起来,即变量指向该数据对象.例如x=y,表示把变量x指向y所指向的数据对象,随后对y的赋值并不影响x的指向.Python的整数和浮点数没有大小的限制.若超出一定范围就用inf(无限大)表示.tuple表示元组,即不可变的有序元素的集合.即没有修改元素的函数,例如append(),insert(),元素赋值等.
2024-03-26 17:39:16 682
原创 SpringBoot 快速实现 api 加密
该项目使用RSA加密方式对API接口返回的数据加密,让API数据更加安全。别人无法对提供的数据进行破解。Spring Boot接口加密,可以对返回值、参数值通过注解的方式自动加解密。首先我们当然是了解RSA加密RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。两者之间有数学相关,该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。
2024-03-26 10:56:47 934
原创 搞懂分库分表 12 种分片算法
本文中我们讲解了ShardingSphere-jdbc所支持的12种分片算法,每种算法都具有独特的特点。在实际应用中,需要结合具体的业务场景来灵活选择和应用适合的分片算法。
2024-03-26 10:40:34 104
原创 Python爬虫:从干饭开始,轻松掌握技巧
本文的重点在于引导读者如何初步掌握爬虫技术。初步掌握爬虫技术并不难,但是在实际操作中可能会遇到一些困难,比如一些网站不允许直接访问,需要登录或者进行各种人机验证等。因此,最好先从爬取一些新闻资讯类的网站开始,因为这样相对容易。涉及用户支付等敏感信息的网站就不那么容易获取了。
2024-03-26 10:22:40 4
原创 Python 里面 search() 和 match() 的区别
例如,'er\b'可以匹配"never"中的'er',但不能匹配"verb"中的'er'。\B匹配非单词边界。flags:可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为: re.I忽略大小写 re.L表示特殊字符集\w,\W,\b,\B,\s,\S依赖于当前环境 re.M多行模式 re.S即为.并且包括换行符在内的任意字符(.不包括换行符) re.U表示特殊字符集\w,\W,\b,\B,\d,\D,\s,\S依赖于Unicode字符属性数据库 re.X为了增加可读性,忽略空格和#后面的注释。
2024-03-26 10:07:12 4
原创 适用于Vue 3的高颜值UI组件库!
Element Plus 使用 TypeScript + Composition API 进行了重构,提供完整的类型定义文件,使用 Vue 3.0 Composition API 降低耦合、简化逻辑,使用 Lerna 维护和管理项目,完善了 52 种国际化语言支持,支持了黑暗模式。其支持 Typescript、按需引入、暗黑模式、主题定制、国际化,并提供 VS Code 插件保障良好的开发体验。NutUI 是一套由京东出品的移动端 Vue2、Vue3 组件库,支持一套代码生成 H5 和小程序。
2024-03-25 11:16:59 8
原创 读懂Javascript中的数组的创建、读取和查找等操作
在JavaScript中,定义数组并添加内容非常简单。// 定义一个空数组// 添加内容到数组myArray.push('第一项');myArray.push('第二项');myArray.push('第三项');// 输出数组内容// 输出: [ '第一项', '第二项', '第三项' ]在这个例子中,我们首先定义了一个名为myArray的空数组。然后,我们使用push方法将三个字符串元素添加到数组中。最后,我们使用console.log来输出数组的内容。// 定义并初始化数组。
2024-03-25 11:12:52 10
原创 别让 Docker 毁了你的 MySQL!
Docker 容器技术的火热,越来越多的应用开始被"装箱"。我们这些开发者享受着 Docker 带来的便捷和灵活,几乎恨不得把所有东西都塞进容器里。于是,连 MySQL 这样的有状态服务,也开始频频出现在 Docker 的舞台上。但是,?是否会给系统稳定性和数据安全带来隐患?这个问题在社区里引发了激烈的讨论。
2024-03-25 11:07:10 228
原创 spring多数据源动态切换的实现原理及实现
当系统执行数据库操作之前,会先获取数据源链接,即调用getConnection方法,该类重写的getConnection方法,会获取到真正的目标数据源,进而将数据库操作委托给目标数据源进行处理。根据业务需求选择不同类型的数据源,实现对多数据库的支持。数据源负载均衡:根据负载均衡策略来选择合适的数据源,将请求均匀地分配到不同的数据源上,提高系统的整体性能和可伸缩性。读写分离:为了提高数据库的读写性能,可能会采用读写分离的方式,根据读写操作的类型来选择合适的数据源,实现读写分离。* 数据源名称,默认主库。
2024-03-25 10:38:06 510
原创 机器学习:Github上排名前19个强化学习 (RL)项目
其他流行的 RL 项目包括 rllab,一个用于开发和评估强化学习算法的工具包;gym,用于开发和比较强化学习算法的工具包;此外,您还可以在线找到教程和课程,帮助您开始 RL 开发。最后,重要的是要记住,开发 RL 应用程序需要练习和耐心 - 但只要有足够的奉献精神和努力工作,您就可以成为该领域的专家。项目源代码网址:https://github.com/google-research/football。项目源代码网址:https://spinningup.openai.com/en/latest/
2024-03-24 17:39:22 11
原创 软件License授权原理
本文将介绍License的生成原理,理解了License的授权原理你不但可以防止别人破解你的License,你甚至可以研究别人的License找到它们的漏洞。可找回是指用户申请的License一旦丢失或者要续期,基于第一次申请License时创建的源文件,再一次生成新的License,新的License会携带用户当初申请时的信息。保密性是指License里携带的data信息具有一定的隐蔽性,这样可以防止想要破解License的人寻找到生成License的规律,进而伪造自己的License。
2024-03-24 17:27:29 5
原创 编写高性能的Java代码
在一个大型金融交易系统的优化过程中,通过使用JVisualVM分析工具,成功发现了系统中CPU密集型的热点代码,并对其进行了优化,从而提高了系统的并发处理能力。例如,在一个电子商务网站中,通过使用内存缓存来缓存商品信息和用户数据,成功减少了数据库的访问次数,提升了页面的加载速度。同时,对于一些复杂的查询操作,我们引入了缓存机制,减少了数据库的访问次数。性能分析和调优是优化Java代码的关键步骤之一,通过使用专业的性能分析工具,我们可以深入了解程序的执行情况,发现潜在的性能瓶颈,并采取相应的优化措施。
2024-03-24 17:24:16 3
原创 ECS Fargate 上部署 SkyWalking UI 并通过 ALB 提供服务
记录返回的 ALB ARN,例如:arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/skywalking-ui-alb/abcdef0123456789。记录返回的任务定义 ARN,例如:arn:aws:ecs:us-east-1:123456789012:task-definition/skywalking-ui-task:1。通过 http:// 访问 SkyWalking UI。
2024-03-24 17:21:05 3
原创 Java 中 Set 集合实现添加元素保证不重复的
只要创建对象,就给每一个对象分配一个HashCode码,当添加到set中的对象hashCode不相同的时,没有调用equals方法,并且对象直接存到Set集合中;当HashCode码相同的时候,会调用equals方法,来查看是否是同一个对象,是,就不存进去,反之。例题: 程序启动后,可以从键盘输入接收多个整数,直到输入quit时结束输入,把所有输入的整数倒序排列打印。例题:键盘接收一个字符串,程序对其中所有字符进行排序,要求保留重复的。//键盘接收一个字符串, 程序对其中所有字符进行排序 要求保留重复的。
2024-03-24 17:02:33 3
原创 Node.js 中发出 HTTP 请求的五种方法
axios比superagent的功能列表很长,尽管 node-fetch 看起来很有前途并且安装大小很小,但我不确定该 API 是否足够用户友好——至少对我来说是这样。
2024-03-23 20:54:04 8
原创 鸿蒙原生应用开发-ArkTS语言基础类库多线程
RemoteObject对象的主要作用是实现远程通信的功能,它允许在不同的进程间传递对象的引用,使得不同进程之间可以共享对象的状态和方法,服务提供者必须继承此类。Actor并发模型作为基于消息通信并发模型的典型代表,不需要开发者去面对锁带来的一系列复杂偶发的问题,同时并发度也相对较高,因此得到了广泛的支持和使用,也是当前ArkTS语言选择的并发模型。使用异步并发可以解决单次I/O任务阻塞的问题,但是如果遇到I/O密集型任务,同样会阻塞线程中其它任务的执行,这时需要使用多线程并发能力来进行解决。
2024-03-23 20:47:27 6
原创 HarmonyOS应用开发-搭建开发环境
搭建 HarmonyOS 应用的开发环境,介绍下载安装 DevEco Studio 开发工具和 SDK 的详细流程。华为鸿蒙 DevEco Studio 是面向全场景的一站式集成开发环境,面向全场景多设备,提供一站式的分布式应用开发平台,支持分布式多端开发、分布式多端调测、多端模拟仿真,提供全方位的质量与安全保障。
2024-03-23 20:20:48 4
原创 使用 Spring Boot 的自动装配特性
第二个,这个配置类是放在第三方jar包里面,如何通过SpringBoot中的约定优于配置的一个理念,去把这个配置类的全路径,放在classpath:META-INF/spring.factories文件里面,这样的话,SpringBoot就可以知道第三方jar包里面这个配置类的位置。1.启动类的main方法中,调用了类SpringApplication中的一个run()方法,这个run()方法的主要作用是去加载启动类。(1)在类SpringApplication中的第一个run()方法,把参数传了进去。
2024-03-23 20:15:44 6
原创 为什么说 Java 程序员必须掌握 Spring Boot
Spring Boot 简化了基于 Spring 的应用开发,通过少量的代码就能创建一个独立的、产品级别的 Spring 应用。综上我们可以这样来理解,正是由于 Spring Ioc 和 Spring Aop 两个强大的功能才有了 Spring ,Spring 生态不断的发展才有了 Spring Boot ,使用 Spring Boot 让 Spring 更易用更有生命力,Spring Cloud 是基于 Spring Boot 开发的一套微服务架构下的服务治理方案。
2024-03-22 16:14:33 9
原创 掌握Docker网络驱动程序:优化容器通信
通过了解常见Docker网络驱动程序的优点和限制,并遵循推荐的实践,可以利用Docker容器的全部功能,并为应用程序优化通信。为Docker系统选择正确的网络驱动程序以提供最佳的容器连接、性能、安全性和网络隔离是至关重要的。连接到桥接网络的容器可以通过主机的内部网络相互通信。网络是容器化的重要组成部分,Docker提供了各种网络驱动程序来支持容器之间的通信以及与外部网络的通信。本文将探讨Docker中网络驱动程序的重要性、它们的功能、可用的多种类型,以及选择合适的驱动程序来优化容器网络的最佳实践。
2024-03-22 16:07:48 5
原创 基于EasyExcel实现百万级别数据导出
以上便是笔者的百万级别数据导出的落地方案,可以看出笔者着重在分页查询大小和分页查询sql上进行重点优化,通过平衡分页查询的数据量和IO次数找到合适的pageSize,再通过上一次分页查询结果定位下一次查询的id作为where条件,避免分页查询时的全秒扫描以得到符合业务需求的高性能sql,从而完成百万级别数据的高效导出。这里需要注意一点,因为我们分页查询面对的是百万级别的数据,所以随着分页的推进势必出现深分页导致查询效率势降低,所以为了提高分页查询的效率,我们可以利用查询数据有序的特性,通过。
2024-03-22 14:39:50 3
原创 14个 JavaScript 中鲜为人知的技巧
事实证明,这些额外的括号仅仅是为了告诉 JavaScript 解析器即将发布的代码是函数表达式,而不是函数。可以想象,知道了这一点,有很多方法可以跳过那些多余的括号,并且仍然可以制作出有效的IIFE。它是一个数组,类似于对象,可以在所有函数中使用。注意:本文并不包括诸如提升(Hoisting),闭包,代理,原型继承,async-await,生成器之类的东西。好吧,事实证明,在ES5之前,您实际上可以在大多数浏览器中为原始的 undefined 分配一个新值,像是 undefined =“ abc”。
2024-03-22 14:29:56 6
原创 必须了解的十个免费 Devops 工具
DevOps 是一组实践和方法,将开发(创建软件的人员)和运维(部署和维护软件的人员)团队聚集在一起。这有什么意义吗?为什么 DevOps 这么重要?让我们以一种易于理解的方式去了解它。想象一下,你是一个拼图团队的一员。开发团队负责设计和制作拼图,而运维团队负责将拼图拼在一起并确保拼完后的正确的。在传统流程中,开发团队和运维团队各干各的,缺乏交流,这就导致交付延迟和最终产品不完全合适。而 DevOps 确保每个人从一开始就一起工作,分担责任并持续沟通,以更快更有效地方式解决问题。
2024-03-22 14:22:43 2
原创 检查 docker 镜像和容器的磁盘空间使用情况
test-data将映射到容器内/var/lib/app/content上,操作test-data目录等价于操作/var/lib/app/content。如果要查找特定volumes的位置,可以用docker volume ls检查volumes名或 ID。一个是常规 Docker Volumes,另一个是bind mount。自动创建一个名为nginx-test的volumes。查看GraphDriver字段。
2024-03-22 14:17:11 1
原创 Docker 快速搭建Nginx +Redis + Mysql
注:docker cp ff6fc中的 "ff6fc" 为容器ID(docker ps可查看),也可换成容器名,例如上面容器名是nginx,可写成 docker cp nginx:/etc/nginx/nginx.conf /usr/local/nginx/ ,但是要区分唯一性。# bash 其实就是表示载入容器后运行bash(命令语言解释程序), 因为docker中必须要保持一个进程(运行的程序)的运行,要不然整个容器就会退出,所以说,bash就担任起了docker中运行的那个进程的角色!
2024-03-21 17:37:55 966
原创 容器运行时:Containerd容器管理
一个容器真正运行起来是由 Task 任务实现的,Task 可以为容器设置网卡,还可以配置工具来对容器进行监控等。nginx 指定容器名称 使用 ctr container create 命令创建容器后,容器并没有处于运行状态,其只是一个静态的容器。这个 container 对象只是包含了运行一个容器所需的资源及配置的数据结构,例如:namespaces、rootfs 和容器的配置都已经初始化成功了,只是用户进程(本案例为nginx)还没有启动。杀掉容器后可以看到容器的状态变成了 STOPPED。
2024-03-21 11:47:14 6
原创 Linux系统小技巧:Docker容器与镜像的清理
除了容器和镜像外,Docker还会占用一些其他的空间,比如构建缓存、容器卷等。这个命令会删除所有已经停止的容器、无标签的镜像以及构建缓存。这个命令会删除所有无标签的镜像,也就是那些没有被任何容器引用的镜像。这个命令会删除所有已经停止的容器,但不会删除正在运行的容器。使用docker ps -a命令可以列出所有的容器,包括正在运行的和已经停止的。在执行清理命令之前,请确保我们了解这些命令的作用,并已经备份了重要的数据和配置。清理操作可能会花费一些时间,具体取决于系统中容器和镜像的数量以及磁盘的性能。
2024-03-21 11:41:42 11
python制作烟花 实现动态烟花
2024-02-20
RUST web框架axum快速入门教程
2024-02-20
python opencv 车牌识别代码
2024-02-20
数据集分析汇总,文本到图像的 AI 模型
2024-02-01
Oracle RAC(Real Application Clusters)集群搭建笔记
2024-01-31
linux date命令使用文档
2024-01-31
MySQL面试题文档,MySQL面试题,包含各种场景和知识点,例如基础查询、连接、聚合、事务、表设计等
2024-01-23
详细的程序员简历模板文档,包括个人信息、教育背景、实习经验、项目经验、技能证书、荣誉奖项、自我评价以及求职意向等部分
2024-01-23
Vue面试所涉及的基础知识,各个大厂的经典面试题集合
2024-01-22
Java 基础之面向对象编程教程
2024-01-22
互联网Python与MySQL基础入门
2024-01-18
Python的CVPR人脸 python人脸检测代码
2024-01-08
银行家算法详解及示例代码
2024-01-08
SaaS+多租户系统数据隔离实现方案
2023-11-30
K8S集群 问题排查解决秘诀
2023-11-18
MySQL数据库实现双活操作流程-实操版本.docx
2023-09-18
基于Python实现FTP文件上传与下载操作(FTP&SFTP协议)
2023-08-31
Docker 安装elasticsearch 的部署过程
2023-08-31
ElasticSearch 8.6集群搭建过程
2023-08-22
Redis 集群搭建手册
2023-08-22
clickhouse 搭建流程
2023-08-18
图片信息识别+Python
2023-08-18
Python+手写签名+自动生成
2023-08-14
Linux+分布式文件系统+Moosefs实施方案
2023-07-26
JDK 11-JDK是Java开发工具包,提供了开发、编译、调试和运行Java环境
2023-07-26
Python 实现MySQL数据同步到Elasticsearch(ES)
2023-07-26
SEO权威入门教程
2012-05-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人