自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(177)
  • 收藏
  • 关注

原创 让ChatGPT介绍一下ChatGPT

申请新必应内测通过了,我在New Bing中使用下ChatGPT,让ChatGPT介绍一下ChatGPT

2023-02-14 15:18:13 98657 80

原创 SpringCloud和微服务介绍

SpringCloud是在SpringBoot的基础上构建的,用于简化分布式系统构建的工具集。该工具集为微服务架构中所涉及的配置管理,服务发现,智能路由,断路器,微代理和控制总线等操作提供了一种简单的开发方式。

2023-02-12 09:54:21 7320 20

原创 K8S集群管理平台Rancher(2):安装与使用

Rancher 是一个容器管理平台。Rancher 简化了使用 Kubernetes 的流程。下面记录一下手动安装Rancher的步骤。

2023-02-08 13:27:49 8768 18

原创 Kubernetes基础入门

Kubernetes 是一个全新的基于容器技术的分布式架构解决方案,是 Google 开源的一个容器集群管理系统,Kubernetes 简称 K8S。Kubernetes 是一个一站式的完备的分布式系统开发和支撑平台,更是一个开放平台,对现有的编程语言、编程框架、中间件没有任何侵入性。Kubernetes 提供了完善的管理工具,这些工具涵盖了开发、部署测试、运维监控在内的各个环节。

2023-02-07 09:50:45 8954 12

转载 Netty网络编程(六):搭建websocket服务器

websocket是一个优秀的协议,它是建立在TCP基础之上的,兼容HTTP的网络协议。通过Websocket我们可以实现客户端和服务器端的即时通讯,免除了客户端多次轮循带来的性能损耗。既然websocket这么优秀,那么怎么在netty中使用websocket呢?

2023-01-17 19:56:27 10185 16

原创 SpringBoot进阶 - 自定义starter

1 - 创建一个Demo Project,模拟一个需要被封装的DemoModule模块,其中核心方法为exeModuleMethod。3 - 在Maven中引入starter,且在yml中配置相应到参数即可直接初始化DemoModule的实例。2 - 通过starter封装可以直接初始化DemoModule的实例到Spring容器。在META-INF下创建spring.factory文件。创建模块,封装starter,最后使用starter.创建项目 - pom.xml。

2024-12-14 14:39:01 858

原创 用 CSS 实现太阳系运行效果

在编程的浩瀚宇宙中,我们总是在探索能够以最简洁的方式创造出最酷炫效果的方法。而使用 CSS 制作响应式太阳系,绝对能提升你的编程乐趣。如何用 CSS 实现这个神奇的太阳系呢?关键在于巧妙运用 CSS 的动画、定位和尺寸属性。通过定义不同的元素来代表太阳、行星和轨道,然后利用 CSS 动画来模拟行星的旋转运动。仅用几条规则,我们就用纯 CSS 创建了一个简单的 2d 版本的太阳系。如果想更深入地展示你的技术,可以尝试转换为3D。欢迎在评论区贴出你的成果。

2024-08-31 12:29:09 1521 2

原创 Python 实时聊天室搭建:发布订阅频道API实战应用

今天和大家分享一个超级酷炫的项目——使用Python搭建一个即时聊天室。 在这个项目中,我们将深入探索一个强大的工具——发布订阅频道API,它将为我们的聊天室带来实时互动的魔力。在这个信息爆炸的时代,即时通讯已经成为我们生活中不可或缺的一部分。 不论是社交媒体上的即时信息,还是在线游戏中的即时对战,即时通讯技术都在背后默默支撑着我们的每一次互动。 今天,我将带你走进Python的世界,一起动手搭建一个属于自己的即时聊天室。

2024-08-28 20:16:20 717 1

原创 你没有使用过(但应该使用)的前 5 个 HTML 功能

TML 已经有了很大的发展,这些特性展示了它已经变得多么强大和灵活。通过将这些鲜为人知的元素合并到你的项目中,你可以创建响应速度更快、动态更动态且用户友好的网页,同时减少对外部库和框架的依赖。因此,请尝试这些 HTML 功能 — 你可能会惊讶于它们可以在多大程度上增强你的开发过程。

2024-08-26 22:59:06 858 1

原创 在单台计算机上设置多个 ssh 密钥和 git 存储库

在这个简短的指南中,将引导你在同一台计算机上使用 ssh 设置多个 GitHub 帐户,以便不同的存储库将自动与正确的 ssh 密钥和帐户相关联。解释问题:假设你有两个 GitHub 帐户 — 一个用于工作,另一个用于个人使用。这些帐户中的每一个在你的计算机上都有一个或多个要与所述帐户关联的存储库。

2024-08-26 16:30:00 361

原创 10 种 Python 编程优化技术

让我们探索 10 种 Python 编程优化技术,它们可以帮助你编写更高效、性能更高的代码。这些技术对于开发满足性能要求,同时随着时间的推移保持可扩展性和可维护性的强大应用程序至关重要。这些技术也可以按照最佳实践应用于其他编程语言。

2024-08-25 21:30:03 1003

原创 每个开发人员都应该关注的7个优秀的GitHub仓库

GitHub是web上托管软件项目的主导者。GitHub拥有超过2亿个公共存储库,为开发者提供了丰富的知识,包括开源项目、库、学习平台、面试准备、简历写作技巧等等。但是,由于有这么多的存储库,找到有用的存储库很容易变得势不可挡。本文将为您提供7个优秀的GitHub存储库,如果您正在学习编程,您一定要关注这些仓库!

2024-05-19 11:41:10 1324 3

原创 收几个想学 Java全栈 的徒弟,想要高薪的联系我

你是否对编程充满热情,渴望在技术领域中有所建树?你是否想学习Java全栈开发技术,工资过万?你是否渴望有一位经验丰富的导师引领你进入编程的殿堂,传授你精湛的技术和宝贵的经验?如果你的答案是肯定的,那么我将是你理想的选择。我是一名资深的软件工程师,拥有丰富的开发经验和深厚的技术功底。我擅长 **Java、Spring、SpringBoot、MySQL、Redis、RabbitMQ、Kafka** **原理和源码**,同时也精通 **VUE、elementui、nodejs** 等前端技术。

2024-05-19 11:25:54 518

原创 vue3 底层实现原理

无论是使用模板还是直接手写渲染函数,对于一个组件来说,它要渲染的内容最终都是通过渲染函数产生的,然后渲染器再把渲染函数返回的虚拟 DOM 渲染为真实 DOM,这就是模板的工作原理,也是 Vue.js 渲染页面的流程。

2024-05-12 22:36:55 486

原创 Python中os.environ基本介绍及使用方法

`os.environ`是Python中的一个字典对象,它包含了当前进程的环境变量。通过使用`os.environ`,可以获取和设置环境变量的值。我们首先导入了`os`模块,然后使用`os.environ.get()`方法获取名为`PATH`的环境变量的值,并将其打印出来。接下来,我们使用`os.environ[]`来设置一个名为`NEW_VAR`的新环境变量,并将其值设置为`new_value`。最后,我们再次使用`os.environ.get()`方法获取`NEW_VAR`的值,并将其打印出来。

2024-04-02 20:05:46 7875 12

原创 我的2023年总结:往前看,别回头

2023年已经结束,我借此机会回顾一下我的2023年,同时也为2024年立好flag。在2023年,我参与了多个Java项目的开发,我深入接触了java的并发编程和性能优化,学习了线程池、锁机制和性能监测机制工具,显著的提高了系统的并发处理能力和响应时间。

2024-01-05 19:37:26 3165 103

原创 一文读懂OTA【赠书活动|第12期《一书读懂物联网:基础知识+运行机制+工程实现》】

OTA(Over-The-Air,空中下载技术)是一种无线传输技术,用于在物联网设备之间进行远程更新和配置。OTA指的是通过无线通信网络来远程更新或升级嵌入式系统中的软件或固件。OTA 更新是一种方便的方法,用于将新功能、改进后的性能、安全补丁或其他更改推送到嵌入式设备,而无须物理接触设备或用户手动干预。·OTA简化了设备的更新和维护过程。传统的软件更新方法通常需要用户将设备带到服务中心或使用有线连接进行更新,这既耗时又麻烦。而OTA技术则允许设备自动接收并安装更新,大大节省了时间和精力。

2024-01-02 18:00:44 2077 42

原创 解决 Chrome 120 开发人员工具 无法粘贴代码

新增 Self-XSS 保护警告,无法顺利无法在开发人员工具(DevTools) console 贴上 代码,正常应该要跳出 提示窗口,但目前windows有碰到状况是没有跳出来,完全无法点击 Allow 允许粘贴代码。

2023-12-26 09:35:18 34913 5

原创 Tomcat、Nginx的功能对比

Tomcat运行在JVM之上,它和HTTP服务器一样,绑定IP地址并监听TCP端口,同时还包含以下职责:- 管理Servlet程序的生命周期- 将URL映射到指定的Servlet进行处理- 与Servlet程序合作处理HTTP请求——根据HTTP请求生成。HttpServletResponse对象并传递给Servlet进行处理,将Servlet中的HttpServletResponse对象生成的内容返回给浏览器

2023-12-15 09:57:16 1345 1

原创 Apollo新版Beta技术沙龙,震撼来袭!

Apollo Beta在8.0的基础上将工程进行了全面升级,Apollo 8.0首次引入软件包管理的概念,将Apollo各个模块进行了整理并以软件包的形式进行发布,优化了下载安装流程并提升了开发效率。Beta在Apollo 8.0的基础上对感知算法进行了升级优化,Lidar检测采用了比较新的CenterPoint模型并使用百度百万级数据进行训练,视觉上采用了Yolo X、Yolo 3D模型,检测效果和泛化性都得到了巨大提升,而且还提供了增量训练,支持独立自主进行模型训练。

2023-12-05 11:28:09 670 2

原创 微服务 BFF 架构设计

BFF即 Backends For Frontends (服务于前端的后端),由于微服务众多,需要一个统一入口根据不同的业务场景作为前端集成使用。面向后端:BFF 隔离了因不同渠道前端 UI 展示对后端 API 的需求,企业可以在后端构建核心业务领域能力面向前端:BFF 可以根据已有的后端 API,快速满足不同渠道的前端在 UI 展示上的需求,来不断提升用户体验同时,BFF 可以帮助企业进行微服务架构的迁移或者演进。

2023-11-25 17:28:34 2985 4

原创 推荐10 本软件架构技术的好书【赠书活动|第11期《高并发架构实战》】

相信成为一名优秀的架构师是很多程序员的目标,架构师的工作包罗万象,从开发基础框架到设计软件架构,从优化系统性能到修复重要Bug,从新技术选型到做出关键技术决策,从指导工程师开发到沟通、协调各种内外部关系。想要成为一个优秀的软件架构师,需要经过漫长的修炼,构建起自己的软件开发技术体系。但是一切看似纷繁复杂的技术技巧,均有其核心和基本的原理。

2023-11-20 15:25:08 1454 73

原创 分布式系统架构理论与组件

分布式计算将任务分解成更小的部分,分配给多台计算机处理,这样可以节约整体计算时间,大大提高计算效率。互联网大型网站往往面临高并发访问、海量数据处理等问题,必须保证系统高可用、易伸缩等等。分布式架构采用多台机器协同工作,动态伸缩容量,使用冗余节点来消除单点故障,提高系统可用性。

2023-11-16 14:03:29 1711 13

原创 分布式理论基础:BASE理论

BASE 理论本质上是对 CAP 的延伸和补充,更具体地说,是对 CAP 中 AP 方案的一个补充。CAP 理论是忽略延时的,而实际应用中延时是无法避免的。这一点就意味着完美的 CP 场景是不存在的,即使是几毫秒的数据复制延迟,在这几毫秒时间间隔内,系统是不符合 CP 要求的。因此 CAP 中的 CP 方案,实际上也是实现了最终一致性,只是“一定时间”是指几毫秒而已。AP 方案中牺牲一致性只是指分区期间,而不是永远放弃一致性。

2023-11-13 08:30:00 840 19

原创 分布式理论基础:CAP定理

CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)这三个基本需求,最多只能同时满足其中的2个。一致性:数据在多个副本之间能够保持一致的特性。可用性:系统提供的服务一直处于可用的状态,每次请求都能获得正确的响应。分区容错性:分布式系统在遇到任何网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。什么是分区?

2023-11-12 13:03:20 3273 26

原创 MySQL 查看 event 执行记录

EVENTS 表包含了关于每个 EVENT 的详细信息,包括 EVENT 名称、计划执行时间、上次执行时间、下次执行时间等。在使用 EVENT 的过程中,我们可能会需要查看 EVENT 的执行记录,以便了解它们是否按预期执行。在本文中,我们提供了一个简单的示例来演示如何查看 EVENT 的运行记录。以上代码创建了一个名为 cleanup_logs 的 EVENT,每天凌晨3点执行一次,删除 logs 表中30天前的数据。现在让我们通过一个具体的示例来演示如何查看 EVENT 的运行记录。

2023-11-12 12:35:56 1248 9

原创 什么是DDD领域驱动设计

DDD通过领域建模,编排核心业务逻辑后映射到微服务开发的过程,有利于构建出企业可复用的核心能力,减少重复的IT建设,同时开发者可以根据模型和微服务代码设计的对应关系,快速清晰的完成开发。同时后面博文会讲到DDD严格的分层结构设计,能够帮助构建一个“低耦合,高内聚”,可演进的系统。

2023-11-07 08:30:00 966 15

原创 MySQL数据库定时任务——事件

使用 MySQL 事件可以轻松地执行周期性的任务,从而提高数据库效率和性能。掌握如何使用事件是管理和优化 MySQL 数据库的重要知识点,可以更好地理解MySQL事件的特点和使用方式,从而更好地使用MySQL。希望本文对你有所帮助。

2023-11-06 08:30:00 7307 10

原创 技术选型:何时使用Elasticsearch而不是MySQL?

MySQL 是一个关系型数据库管理系统(RDBMS),它使用表(table)来存储结构化的数据,每个表由多个行(row)和列(column)组成,每个列有一个预定义的数据类型,例如整数、字符串、日期等。MySQL 支持主键、外键、约束、触发器等关系型数据库的特性,以保证数据的完整性和一致性 。Elasticsearch 是一个基于 Lucene 的搜索引擎,它使用文档(document)来存储半结构化或非结构化的数据,每个文档由多个字段(field)组成,每个字段可以有不同的数据类型,例如文本、数字、布

2023-10-30 15:25:48 3059 22

原创 RESTful 基础知识

RESTful API本身并不依赖于任何特定的传输协议,但由于HTTP协议具有广泛的应用和支持,因此RESTful API通常使用HTTP协议进行通信。RESTful API是一种基于HTTP协议设计的Web服务接口,它使用HTTP请求方法(如GET、POST、PUT、DELETE)来访问和操作资源。把系统的功能作为服务暴露给外部的其他应用使用,需要把系统中的服务作为API接口暴露出去,一般分为公共接口和私用接口。HTTP请求的头信息中用Accept和Content-Type字段指定,对“表现”的描述。

2023-10-25 15:45:19 496 2

原创 BOA服务器(一):简介

在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流,这种程序结构也就是大家非常熟悉的B/S结构,即在嵌入式设备上运行一个支持脚本或CGI功能的Web服务器,能够生成动态页面,在用户端只需要通过Web浏览器就可以对嵌入式设备进行管理和监控,非常方便实用。本文主要介绍BOA服务器的工作原理。

2023-10-25 08:30:00 1181 12

原创 RabbitMQ原理(五):消费者的可靠性

例如我们当前案例中,处理消息的业务逻辑是把订单状态从未支付修改为已支付。我们在用户支付成功后会发送MQ消息到交易服务,修改订单状态为已支付,就可能出现消息重复投递的情况。不过需要注意的是,交易服务并不知道用户会在什么时候支付,如果查询的时机不正确(比如查询的时候用户正在支付中),可能查询到的支付状态也不正确。因此,RabbitMQ必须知道消费者的处理状态,一旦消息处理失败才能重新投递消息。业务判断就是基于业务本身的逻辑或状态来判断是否是重复的请求或消息,不同的业务场景判断的思路也不一样。

2023-10-24 10:53:36 3373 25

原创 RabbitMQ原理(四):MQ的可靠性

消息到达MQ以后,如果MQ不能及时保存,也会导致消息丢失,所以MQ的可靠性也非常重要。为了提升性能,默认情况下MQ的数据都是在内存存储的临时数据,重启后就会消失。为了保证数据的可靠性,必须配置数据持久化。

2023-10-24 10:48:24 767 10

原创 RabbitMQ原理(三):发送者的可靠性

每个只能配置一个,因此我们可以在配置类中统一设置。我们在publisher模块定义一个配置类:log . error("触发return callback,");} });} }log . error("触发return callback,");} });} }Slf4j;import orglog . error("触发return callback,");} });} }

2023-10-22 09:30:00 778 23

原创 Java面试题总结(二):Java多线程

当一个线程被剥夺cpu使用权时,切换到另外一个线程执行死锁指多个线程在执行过程中,因争夺资源造成的一种相互等待的僵局AQS是一个抽象类,可以用来构造锁和同步类,如ReentrantLock,Semaphore,CountDownLatch,CyclicBarrier。AQS的原理是,AQS内部有三个核心组件,一个是state代表加锁状态初始值为0,一个是获取到锁的线程,还有一个阻塞队列。当有线程想获取锁时,会以CAS的形式将state变为1,CAS成功后便将加锁线程设为自己。

2023-10-19 11:20:19 484 12

原创 Go 语言面试题(三):并发编程

协程泄露是指协程创建后,长时间得不到释放,并且还在不断地创建新的协程,最终导致内存耗尽,程序崩溃。缺少接收器,导致发送阻塞这个例子中,每执行一次 query,则启动1000个协程向信道 ch 发送数字 0,但只接收了一次,导致 999 个协程被阻塞,不能退出。for i := 0;i < 1000;i < 4;i++ {query()缺少发送器,导致接收阻塞。

2023-10-15 10:49:35 705 21

原创 如何看待Unity新的收费模式?

Unity 新的收费模式可能会对开发者产生一定的影响,但其目的是为了提高引擎业务的收入,获得业绩增长。在使用 Unity 引擎进行游戏开发时,开发者需要仔细评估新收费模式的影响,并根据实际情况做出决策。

2023-10-13 12:43:50 556 11

原创 C++ 程序员入门需要多久,怎样才能学好?

C++ 程序员入门需要的时间因人而异,取决于个人的学习能力、时间和精力投入等因素。一般来说,如果您认真学习并不断实践,大约需要几个月到一年的时间才能掌握 C++ 的基础知识和编程技能。此外,学好 C++ 需要不断的实践和学习。只有不断地编写代码、解决问题、学习新技术,才能不断提高自己的编程水平。同时,您也可以参加一些 C++ 编程比赛、开源项目等,以提高自己的实践经验和技能。

2023-10-13 12:35:13 698 8

原创 写过的最蠢的代码

编程是一门艺术,也是一门科学。它可以让我们创造出令人惊叹的作品,也可以让我们陷入无尽的困境。在编程的过程中,我们难免会遇到一些错误、bug或者逻辑问题,有时候甚至会写出一些非常蠢的代码。今天,我就要分享一下我写过的最蠢的代码是什么。这件事发生在我刚开始学习编程的时候,那时候我对编程还一无所知,只是跟着教程和书本学习一些基本的语法和概念。有一天,我想写一个程序,可以计算一个数的阶乘。阶乘就是从1乘到这个数的结果,比如5的阶乘就是1×2×3×4×5=120。

2023-10-13 11:48:45 301 1

原创 如何做系统架构设计

在进行系统架构设计时,首要遵从“适合原则”。架构师首先是技术管理者,技术方案选型权衡取舍做技术决策是核心的职责,那么系统架构设计首先要考虑的就是要满足当前业务出发同时能支持适应业务发展而扩展开发维护,同时也要结合团队技术积累和实力、项目时间和成本投入等全方位的综合评估取舍,而不是为技术而技术。最后,系统架构设计需要遵循一定的步骤和原则,同时要理解业务需求和团队的技术实力,做出合理的架构决策。

2023-10-12 09:46:13 1096 11

ShardingSphere笔记.zip

Apache ShardingSphere 是一款分布式的数据库生态系统, 可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。Apache ShardingSphere 设计哲学为 Database Plus,旨在构建异构数据库上层的标准和生态。 它关注如何充分合理地利用数据库的计算和存储能力,而并非实现一个全新的数据库。 它站在数据库的上层视角,关注它们之间的协作多于数据库自身。

2023-12-01

seata-samples 压缩包

seata-samples 压缩包

2023-02-21

mysql-5.6.50-win 安装包

mysql-5.6.50-win 安装包

2023-02-21

WebStorm开发工具常用设置

WebStorm开发工具常用设置

2023-02-21

idea开发工具常用设置

idea开发工具常用设置

2023-02-21

snmptest测试工具

snmp协议测试工具

2023-02-17

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除