自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(146)
  • 资源 (1)
  • 收藏
  • 关注

原创 CMS内容管理系统的设计与实现:多站点模式的实现

在一套内容管理系统中,其实有很多站点,比如企业门户网站,产品手册,知识帮助手册等,因此会需要多个站点,甚至PC、mobile、ipad各有一个站点。每个站点关联的有站点所在目录及所属的域名。多站点CMS系统站点表设计是构建高效、安全、可扩展平台的关键环节。站点表作为系统的核心配置中心,不仅需要存储基础站点信息,还需承载数据隔离策略、权限控制规则和模板管理机制,直接影响系统的安全性和扩展能力。

2025-06-10 00:16:23 812

原创 CMS内容管理系统的设计与实现:架构设计

本文提出了一套CMS系统的渐进式架构设计方案。对于中小型项目推荐模块化单体架构(Vue3+Spring Boot),大型项目建议采用微服务架构(Spring Cloud Alibaba)。文章详细阐述了架构演进路线,从初期单体到后期微服务的分阶段实施策略,并提供了模块化分层设计的具体实现方案,包括业务垂直切分、客户端横向隔离和技术纵向分层。在后端实施层面,提出了领域对象复用方案和API路径设计规范,推荐采用/api/admin和/api/portal的双前缀模式。该方案强调根据项目规模和发展阶段灵活选择架构

2025-06-08 22:02:17 862

原创 高性能MYSQL:复制同步的问题和解决方案

MySQL复制中断常见原因及解决方案 摘要: MySQL复制中断主要由数据损坏/丢失(主备库意外关闭导致日志不同步)、非事务型表更新失败、混合事务型/非事务型表使用、不确定语句执行差异、主备存储引擎不同以及备库数据被手动更改等因素引起。解决方法包括:设置sync_binlog保证日志同步、使用pt-table-checksum校验数据、跳过损坏事件、避免混合表类型、统一存储引擎配置等。对于严重损坏,需手动定位日志事件边界或重新同步数据。未来版本中基于行的复制模式可减少部分问题。

2025-06-08 06:16:59 844

原创 高性能MYSQL:复制同步实战

MySQL内建的复制功能是构建基于MySQL的大规模、高性能应用的基础,这类应用使用所谓的“水平扩展”的架构。我们可以通过为服务器配置一个或多个备库的方式来进行数据同步。复制功能不仅有利于构建高性能的应用,同时也是高可用性、可扩展性、灾难恢复、备份以及数据仓库等工作的基础。事实上,可扩展性和高可用性通常是相关联的话题。首先简要介绍复制如何工作,然后讨论基本的复制服务搭建,包括与复制相关的配置以及如何管理和优化复制服务器。

2025-06-08 06:08:52 900

原创 高性能MYSQL(三):性能剖析

性能优化核心是降低查询响应时间而非单纯减少资源消耗。正确的优化步骤包括:精确测量任务耗时(90%时间应用于测量)、分析执行与等待时间、通过性能剖析定位瓶颈工具应提供详细任务列表并按耗时排序。警惕平均值掩盖的异常情况,注意低频但高延迟查询。MySQL优化需启用慢查询日志(设置long_query_time=0捕获所有查询),使用微秒级精度分析。优化原则遵循阿姆达尔定律,优先处理占总响应时间高的查询,同时考虑成本收益比。服务器负载剖析可发现效率低下查询,带来直接和间接性能提升。

2025-06-02 17:29:27 880

原创 使用JSP踩过的坑

【JSP开发避坑指南】摘要:本文总结了JSP开发中的常见问题:1)使用out.println()而非System.out进行输出,函数内打印需注入JspWriter对象;2)带"#"的URL跳转建议用前端location.href;3)Java代码中的return会终止整个页面渲染;4)request.getParameter可统一获取GET/POST参数;5)区分<%! %>(类级声明)和<% %>(方法级代码)的作用域差异。这些经验可帮助开发者避免JSP维护中

2025-05-25 21:50:07 592

原创 基于vue3的权限管理系统脚手架搭建项目实战(二):登录与路由权限控制

本文介绍了基于Vue3的权限管理系统脚手架搭建项目的第二章,主要围绕用户登录流程的完善展开。首先,分析了用户使用系统的行为方式,明确了用户需要通过打开页面和发送请求来使用功能。接着,详细设计了登录页面,并通过状态管理工具pinia处理用户登录状态,包括登录、获取用户信息和登出等功能。此外,还介绍了如何使用导航守卫进行权限控制,确保用户在已登录状态下才能访问特定页面。通过vue-router和axios等工具,实现了页面路由、请求发送和权限管理的封装,确保系统的安全性和可维护性。

2025-05-15 17:00:13 788

原创 系统架构设计师:设计模式——行为设计模式

行为模式涉及算法和对象间职责的分配。行为模式不仅描述对象或类的模式,还描述它们之间的通信模式。这些模式刻画了在运行时难以跟踪的、复杂的控制流。它们将用户的注意力从控制流转移到对象间的联系方式上来。

2025-05-04 21:51:33 1297

原创 系统架构设计师:设计模式——结构型设计模式

结构型设计模式涉及如何组合类和对象以获得更大的结构。结构型类模式采用继承机制来组合接口或实现。一个简单的例子是采用多重继承方法将两个以上的类组合成一个类,结果这个类包含了所有父类的性质。这一模式尤其有助于多个独立开发的类库协同工作。其中一个例子是类形式的 Adapter 模式。一般来说,适配器使得一个接口与其他接口兼容,从而给出了多个不同接口的统一抽象。为此,类适配器对一个 adaptee 类进行私有继承。这样,适配器就可以用 adaptee 的接口表示它的接口。

2025-05-02 11:30:00 1139

原创 系统架构设计师:设计模式——创建型设计模式

创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建、组合和表示它的那些对象。一个类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化委托给另一个对象。随着系统演化得越来越依赖于对象复合而不是类继承,创建型模式变得更为重要。当这种情况发生时,重心从对一组固定行为的硬编码(hard-coding)转移为定义一个较小的基本行为集,这些行为可以被组合成任意数目的更复杂的行为。这样创建有特定行为的对象要求的不仅仅是实例化一个类。

2025-05-01 17:54:24 870

原创 系统架构设计师:设计模式概述

在 20 世纪 70 年代,Christopher Alexander 提出了城市建筑的模式,他认为:模式就是描述一个不断发生的问题和该问题的解决方案。随后,Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 写了一本著名的参考书《设计模式:可复用面向对象软件的基础》。后人也因为这本书称这四个人为四人组,将这本书中描述的模式称为 GoF(Gang of Four)设计模式。

2025-05-01 17:53:29 954

原创 Kubernetes详细教程(五):服务Service

在传统架构中,用户访问公司内的服务可能通过了多层代理、网关、防火墙等。在Kubernetes中,访问Kubernetes中的应用同样也会经过多层代理、网关、防火墙等。但是在传统架构中,可能是通过Nginx、HAProxy、LVS、公有云的SLB、ELB等实现的负载均衡和域名路由,虽然Kubernetes也是通过诸如此类的技术实现的域名路由或者负载均衡,只不过对应的名字叫法可能有所变化,读者不要把这些当作一个比较新颖的东西,其实内部的实现和之前并无区别。在传统架构配置多个相同服务的负载均衡可能使用的是

2025-04-23 07:14:19 780

原创 Kubernetes详细教程(四):深入掌握Pod及调度

为避免开头就讲述概念,先创建一个Pod试下。在生产环境中,很少单独运行一个Pod,因为单独创建的Pod并不能实现一些高级的发布策略,所以在实际使用中经常会用Deployment、DaemonSet、StatefulSet等高级控制器调度并管理Pod。当然有时候也会单独启动一个Pod用于测试业务等,此时可以单独创建一个临时Pod。

2025-04-19 07:23:59 603

原创 Kubernetes详细教程(三):部署应用、了解常用命令及编写资源清单

前面我们部署成功了kubernetes的集群,接着我们要学会如何使用它部署个应用以及如何编写资源清单。

2025-04-15 02:59:00 1160

原创 Kubernetes详细教程(二):安装与配置

本文安装的Kubernetes版本是1.28版本,就K8S各个版本的安装来看,细节上基本还是有比较大的差别的,同时因为外网不能访问的问题,官方的安装教程也不一定管用,我也查了不少资料,踩了不少坑。正常来说,高可用的生产环境至少有3台Master节点,3台Node节点。其中,Master节点不能用于承载业务,防止出现故障。在学习、测试环境下,那么至少有1台Master节点和2台Node节点,每台节点至少2核CPU和4GB内存。这么多服务器,费用开支紧张的同学,可以买个16G内存条,通过多开虚拟机的方式。

2025-04-13 09:07:30 1093

原创 Kubernetes详细教程(一):入门、架构及基本概念

随着Docker等容器技术的流行,越来越多的企业开始采用容器来打包和部署应用程序。随着容器数量的增加,确保所有服务能够正确地找到并通信变得更加困难。当某个容器由于软件错误或硬件故障而崩溃时,如果没有自动化的监控和恢复机制,运维人员需要手动重启或重新部署受影响的服务。面对这一挑战,企业迫切需要一种能够自动化管理大规模容器集群的解决方案。为了填补这一市场空白并分享其宝贵经验,谷歌在2015年决定将Borg的设计理念与最佳实践开源,推出了Kubernetes项目。

2025-04-06 16:53:00 1359

原创 持续集成与Jenkins安装使用教程

持续集成(Continuous integration,简称CI)指的是,频繁地(一天多次)将代码集成到主干。持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。通过持续集成,团队可以快速的从一个功能到另一个功能,简而言之,敏捷软件开发很大一部分都要归功于持续集成。

2025-04-02 17:27:27 1340

原创 GITLAB部署安装教程

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上提供了wiki、问题跟踪和CI/CD(持续集成/持续部署)等功能。它允许团队协作开发软件,提供了一个完整的DevOps生命周期的解决方案,从计划、创建、验证、打包、发布到配置、监控等各个环节。但是我们一般只用它的基本免费功能,作为私有仓库使用,然后与jenkins配套使用。

2025-03-21 11:37:49 3786

原创 docker学习使用教程

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。多数技术人员在谈到Docker时,主要是指Docker引擎。Docker引擎是用于运行和编排容器的基础设施工具。我们可以通过Dockerfile。

2025-03-10 14:09:01 2259

原创 python中如何组织项目工程文件

一个典型的Python项目工程目录结构可以帮助你更好地组织代码、资源和测试,从而使得项目更加清晰和易于维护。

2025-03-01 21:42:14 1471

原创 ERP系统的库存模块业务逻辑及设计

传统上通常将“库存管理”理解为对物料的进、出、存的业务管理,但这种理解在ERP系统中是不全面的。APICS词汇中对库存的定义是“以支持生产、维护、操作和客户服务为目的而存储的各种物料,包括原材料和在制品、维修件和生产消耗、成品和备件等”​。库存管理工作应该包括物料的存储、收发、使用及计划与控制等相关的各个方面。

2025-02-28 11:12:32 1039

原创 python入门及基本使用

如今AI技术特别火爆,而python又是AI技术的必要语言。我作为java程序员,也是有必要学一下python的技术的,以与时俱进。python官网下载地址:https://www.python.org/downloads一般下载最新的版本,注意加入python到环境变量中。输入python出现版本信息就算安装成功了除了需要解释器,还需要IDE编代码的工具,python的编写工具有很多,推荐使用pycharm。pycharm官网下载地址:https://www.jetbrains.com.cn/py

2025-02-22 22:09:06 905

原创 软件需求规格说明书怎么写?附标准格式样例

【根据不同业务背景的读者,应该提醒重点阅读哪些内容。【术语表应该要解释在本文件中多次出现、易于混淆或者重要的术语,应该被wiki单独管理。【面对破解混沌不清的项目目标,一是破解混沌不清的项目目标,寻找真正的项目发起人,二是外部溯源,寻找外部因素所激发的项目】【要么是解决问题的,要么是创造机会的】例如:(1)解决预约安排不合理的问题:避免出现体检部门超负荷;(2)解决物资供应脱节问题:通过安全库存量管理避免物资短缺现象出现。

2025-02-15 11:32:44 3924

原创 DeepSeek本地部署教程

现在DeepSeek比较火,可以将模型安装在自己电脑上进行使用。害怕有隐私泄露安全隐患的话,可以本地部署一个试试。

2025-02-05 17:20:20 18119

原创 mybatis plus 持久化使用技巧及场景

mybatis plus提供了很多强大的持久化工具,新手容易对这些工具使用困难,下面我总结了一下mybatis plus持久化的使用技巧及使用场景。

2025-02-04 09:38:17 754

原创 CMS内容管理系统的设计与实现:概述

内容管理系统(Content Management System, CMS)是一种由后端内容管理系统和前端内容展示平台两部分组成的软件系统。内容的创作人员、编辑人员、发布人员通常使用后端内容管理系统来提交、修改、审核和发布内容,最终在前端内容展示平台展示给用户,供用户消费(指用户接受内容的方式和行为)​。这里的“内容”可以是文字、图片、视频、音频以及文件等形式的信息。在设计内容管理系统时,要站在内容和管理两个角度,基于从内容的生产到用户的消费的整个生命周期来考虑CMS产品设计闭环。

2025-01-23 20:35:44 1844

原创 ERP系统的财务会计基础知识:财务管理

有时候接到任务需要开发ERP系统,或者与ERP系统进行对接,那么ERP系统中的财务业务知识还是要懂的。

2025-01-22 15:14:42 1384

原创 基于若依框架的动态分页逻辑的实现分析

如果让我们自己写分页查询的逻辑,应该怎么写呢?在前端要完成分页的逻辑实际要做的工作还是挺多的。1.分页查询应该支持查询参数的输入,对于一个有众多属性的列表,可能有很多查询参数,对于不同的参数类型,有的需要like模糊查找、有的需要equals相等、有的必须是一个between时间范围。2.分页查询要有一个查询区的页面组件提供查询参数的输入,这个要考虑查询区的形式,提供平铺式的,还是提供一个简单的搜索输入框,要考虑是否记录历史值,使用get还是post发送请求。

2025-01-18 16:12:08 1022

原创 Springboot项目Druid运行时动态连接多数据源的功能

项目支持多数据库连接是个很常见的需求,这不仅是要在编译前连已经知道的多个数据库,有时还要在程序运行时连后期增加的多个数据源来获得数据。

2024-12-26 17:15:04 1077 2

原创 低代码开发平台搭建思考与实战

低代码开发平台是一种平台软件,人们能通过它提供的图形化配置功能,快速配置出满足各种特定业务需求的功能软件。具有以下特点:提供可视化界面进行程序开发 零代码或少量代码快速生成应用什么是低代码产品唯一不可缺少的功能?很多人认为是可视化编辑,那么非可视化编辑就是代码编辑。既然可视化编辑是低代码平台必不可少的功能,那可视化编辑就是低代码平台的必要条件。

2024-11-20 11:30:35 2168 1

原创 调用返回的消息契约对象常用后缀命名汇总

在调用/返回风格的程序中,程序员常常被接收和返回的java对象该如何命名而困扰。下面是我总结的针对不同场景的一些命名规范,解决你不知道该如何命名的难题,旨在帮助在Java项目中更有效地命名消息契约模型(DTO)。这些规范可以帮助确保代码的一致性和可读性。

2024-11-18 23:46:20 785

原创 系统架构设计师:软件架构的演化和维护

软件架构一般会经历初始设计、实际使用、修改完善和退化弃用的过程,其中修改完善的过程实际上就是软件架构的演化和维护过程,演化和维护的目的就是为了使软件能够适应环境的变化而进行的纠错性修改和完善性修改等。软件架构的演化和维护过程是一个不断迭代的过程,通过演化和维护,软件架构逐步得到完善,以满足用户需求。

2024-11-15 23:00:36 1327

原创 系统架构设计师:系统架构设计基础知识

从第一个程序被划分成模块开始,软件系统就有了架构。现在,有效的软件架构及其明确的描述和设计,已经成为软件工程领域中重要的主题。

2024-11-15 22:57:21 3425

原创 GIT常用操作及多人提交代码的工作流程

Git 是一个分布式版本控制系统,用于追踪文件的变更历史。它主要用于软件开发中的源代码管理,但也可以用于任何类型的文件。

2024-10-23 01:18:07 581

原创 centos系统安装oracle数据库教程(linux命令行安装)

一般来说我们Windows下进行安装Oracle都很简单,但Linux下却要输入很多命令,配置比较麻烦。以下的安装步骤是本人经过安装Linux下的Oracle经验,希望能帮到大家。

2024-10-22 20:02:37 1717

原创 关于项目从java8升级到java17需要做的变更

现在java最新版本都升级到22了,本着你升任你升,我用java8的原则,之前我的项目也一直是java8。但是最近看到java8项目的占用率逐渐减少,java17和java21的版本占有率逐渐提升,都超过市场一半以上份额了。本着追求新技术的考虑,新版本更优秀的性能以及兼容性的考虑,我将java8升级到了java17了。

2024-10-09 15:10:52 1154 1

原创 基于RBAC的通用权限管理系统的详细分析与实现(实现篇-Spring Security安全管理框架)

安全可以说是公司的红线了,一般项目都会有严格的认证和授权操作,在Java开发领域常见的安全框架有Shiro和Spring Security。Spring Security是一个相对复杂的安全管理框架,功能比Shiro更加强大,权限控制细粒度更高,对OAuth 2的支持也更友好,又因为Spring Security源自Spring家族,因此可以和Spring框架无缝整合,特别是Spring Boot中提供的自动化配置方案,可以让Spring Security的使用更加便捷。

2024-10-03 14:37:25 2039 1

原创 基于RBAC的通用权限管理系统的详细分析与实现(理念篇——权限对象、权限项、功能权限、数据权限、权限组、权限设计)

在与人沟通的过程中,我们很多次提到了权限,但是权限具体的含义每个人理解的含义都不明确,这样很容易造成双方信息不对称,有的人就只是把权限理解成某个页面的是否可访问,但是有的人却理解成其他的东西。所以我们要彻底的定义一下权限是什么?“权限”这个词语,我们谈论时到底是名词属性还是动词属性?这对于权限的含义很重要。如果是名词属性的话,那么它应该是有具体的指代物;如果是动词,则应该具有行为表示。- 权限的名词属性:api接口、页面、业务功能等。- 权限的动词属性:可访问、新增、编辑、可操作、不可操作等

2024-10-02 10:38:28 6391

原创 实现领域驱动设计(DDD)系列详解:集成限界上下文

一个项目中通常存在着多个限界上下文,并且我们需要在它们之间进行集成。在**上下文映射图**中存在两种主要形式:一种是通过绘制一些简单的框图来展示它们之间的集成关系;另一种则是通过代码来实现这些集成关系。到了具体的技术实现,需要确定限界上下文的物理边界,因为它会直接影响架构的设计与实现。限界上下文的物理边界,实际指的是通信边界,以进程为单位分为进程内与进程间两种。

2024-09-24 17:33:14 1365

原创 ffmpeg常用命令大全

ffmpeg常用命令处理大全

2024-09-22 11:53:50 2055

空空如也

空空如也

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

TA关注的人

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