- 博客(40)
- 收藏
- 关注
原创 日常编写业务需求时几种编程模式整理
六边形架构(也称为端口和适配器架构)将应用程序的核心逻辑与外部依赖(如数据库、UI)分离。微服务架构将应用程序拆分为多个小型、独立的服务,每个服务负责特定的业务功能。CQRS 将读写操作分离,使用不同的模型处理命令(写操作)和查询(读操作)。MVC 是一种经典的分层架构模式,广泛应用于 Web 开发和桌面应用程序。MVVM 是 MVC 的变体,主要用于数据绑定场景(如前端框架)。事件驱动架构基于事件的产生和消费,适合异步处理和实时系统。:负责管理应用程序的数据和业务逻辑。数据绑定简化了视图和模型的同步。
2025-03-19 11:41:59
715
3
原创 dockerfile/docker-compose构建镜像上下文目录编写要点
第二个路径表示上下文目录(可以理解为从这个位置开始去找对应的文件,在dockerfile中的COPY ./auth.jar /home/test/auth.jar,其中./auth.jar就表示从宿主机设置的上下文目录开始找auth.jar文件,这个例子中我以'.'为上下文目录且auth.jar文件在service目录下能找到对应的jar包,所以COPY ./auth.jar /home/test/auth.jar命令可以顺利运行)jar包:/service/auth.jar。
2024-11-03 21:02:30
510
1
转载 VMware 虚拟机中 Linux 系统Centos7磁盘空间扩容
最近在使用Docker容器的过程中,往往会上传许多文件,下载镜像等操作会导致虚拟机的磁盘空间被大量的占用。由于前期规划的磁盘空间过小,之前没有接触过虚拟机的扩容,简单的认为可以直接修改机器配置,修改磁盘大小,就可以进行扩容,解决磁盘空间不足的问题。但真正遇到该问题,准备解决的时候,发现并不简单,需要在虚拟机中按顺序执行许多的指令,才能实现扩容。比如个人的虚拟机,初试分配的是20G,目前磁盘可用只用18M:想在现有基础上对根目录【 / 】扩充 10 个 G,该如何操作呢?
2024-04-06 11:25:34
392
1
原创 修改nacos注册服务的ip地址
现在想将nacos上的ip地址修改为局域网ip。nacos上面显示的ip地址为以太网。通过修改服务yml文件配置。本地服务接口也能成功访问!在添加你局域网的ip。
2024-03-06 10:09:08
2291
转载 mysql数据库索引类型
前面已经知道,Hash 索引是将索引键通过 Hash 运算之后,将 Hash运算结果的 Hash 值和所对应的行指针信息存放于一个 Hash 表中,由于不同索引键存在相同 Hash 值,所以即使取满足某个 Hash 键值的数据的记录条数,也无法从 Hash 索引中直接完成查询,还是要通过访问表中的实际数据进行相应的比较,并得到相应的结果。任何事物都是有两面性的,Hash 索引也一样,虽然 Hash 索引效率高,但是 Hash 索引本身由于其特殊性也带来了很多限制和弊端,主要有以下这些。
2024-03-01 09:32:31
105
原创 解决docker中overlay2爆满,磁盘清理问题
是一个用于清理未使用资源的 Docker 命令。它可以帮助您释放磁盘空间,清理停止的容器、未被标记的镜像、未被任何容器引用的网络、挂载点和构建缓存等.可以先把你日后要用到的容器先全部启动,再执行这个命令。就不会把这些容器删除,以供下次使用。等这些命令运行完之后docker就会释放掉很大一部分空间来解决磁盘爆满的问题。但是如果说你已经停掉的容器日后还要用怎么办?将无用的镜像以及容器删除。千万不要直接运行这个命令。发现时磁盘容量不够了。与之相同操作的命令还有。
2024-01-26 21:12:17
1553
原创 解决连接数据库只能使用localhost连接数据库,使用ip则报错
当使用localhost或者127.0.0.1就正常访问。在数据库中找到user表将root对应得Host改为'%'当我在使用自己的ip作为数据源连接本地的数据库时,报错。
2024-01-26 11:35:30
677
转载 springboot封装响应数据,异常处理
SpringBoot:如何优雅地进行响应数据封装、异常处理?-腾讯云开发者社区-腾讯云 (tencent.com)
2024-01-24 17:30:01
58
原创 uniapp使用真机调试报未授权错误问题解决,亲测有效
首先要使hbuilderx能识别到手机设备,需要找到手机版本信息多次触发激活开发者模式,找到开发者选项-->开启usb调试,数据线连接电脑(找到你的网络连接,把你当前连接的网络的其他网络设备禁用就可以正常运行。然后选择andriod基座运行。
2024-01-18 17:11:51
1161
原创 SpringBoot项目整合knife4j
我选择的版本是springboot2.7.1,knife4j3.0.3。编写测试类(可写可不写,可以扫描到)knife4j配置文件。
2024-01-15 14:43:04
448
原创 uniapp如何封装请求响应拦截器
uniapp提供了uni.request的api直接可以访问我们后台的数据,如果要对请求和返回的数据进行处理必须要对请求进行封装处理。这段代码是为了去除原生uni.request接收到的请求结果中所带有的null值。后台返回5,响应拦截器加一返回。使用拦截器封装的请求。
2023-12-22 15:05:19
1845
原创 分布式状态下高并发问题处理方案之redisson的引入(理论)
在日常开发项目的过程中,我们的项目系统由于用户量增加,特别是用户访问量特别大的情况下,用户去请求操作我们的系统资源,往往会导致我们后台系统会在高并发的情况下,发生数据错乱的问题,那这些问题要该如何去解决呢?下面我会根据不同状态下的场景,由浅入深来解决我们实际开发过程中遇到的问题。通过一个简单的例子来让大家更直观的感受:用户对库存的操作在多线程的环境下,多个线程直接访问我们的系统资源,在我们直接操作库存的那一部分代码中,未作任何处理的情况下由于线程执行的顺序不确定,可能导致资源数量被重复修改或超卖。使用。
2023-12-22 11:20:34
2348
原创 过滤器与拦截器使用的正确姿势
过滤器与拦截器的功能非常的相似,都是对请求处理的机制,那他俩有什么区别呢,又或者说什么时候要使用到过滤器,什么时候使用到拦截器呢?现在我们来逐一分析一下。
2023-12-20 15:15:29
1008
原创 uniapp使用vuex整合各个模块
异步请求和状态修改的组合:如果需要先发送异步请求获取数据,然后根据获取的数据修改状态,可以通过 Action 发送异步请求,并在请求成功后触发 Mutation 来修改状态。批量状态的修改:如果需要修改多个状态属性,或者需要根据某些条件来修改状态,可以将这些逻辑放在 Action 中,并在 Action 中触发相应的 Mutation。复杂业务逻辑:如果需要处理复杂的业务逻辑、多个状态的修改或条件判断等,可以将这些逻辑封装在 Action 中,并在 Action 中触发相应的 Mutation。
2023-12-19 16:06:14
1286
1
原创 使用rabbitmq处理订单系统
订单系统能够快速响应用户支付请求,并将订单信息发送到 RabbitMQ 后即可返回响应给用户,而不需要等待邮件和短信的发送完成。消费者应用可以根据自身的处理能力和负载情况,适时地处理订单消息,保证系统的可扩展性和稳定性。整个订单系统的流程在步骤 1 到步骤 9 的基础上,引入了 RabbitMQ 来处理订单消息的异步通知。订单系统将订单信息通过 RabbitMQ 发送到消息队列中,然后消费者应用连接到 RabbitMQ,订阅队列并接收订单消息,执行相应的业务逻辑,如发送订单确认邮件和短信通知给用户。
2023-12-18 14:32:13
1236
转载 mybatis的xml文件常用写法
如果传递的是一个List,则mybatis会封装为一个list为key,list值为object的map,如果是array,则封装成一个array为key,array的值为object的map,如果自己封装呢,则colloection里放的是自己封装的map里的key值。此外,如果标签返回的内容是以AND 或OR 开头的,则它会剔除掉。使用时比较灵活, new一个这样的实体类,我们需要限制那个条件,只需要附上相应的值就会where这个条件,相反不去赋值就可以不在where中判断。
2023-12-18 14:08:27
842
转载 swagger注解的含义及其用法
swagger @Api @ApiOperation @ApiImplicitParams @ApiResponses @ApiModel @ApiModelProperty 基本使用总结-优快云博客
2023-12-18 09:19:21
43
原创 微服务怎么做降级处理为什么要做降级处理
此外,降级处理还可以提供更好的用户体验,因为它允许系统以有限的功能继续运行,而不是完全无响应。:在面对故障或高负荷情况时,临时关闭某些非关键或资源密集型的服务功能,以减少对系统整体性能的影响。例如,对于电商网站,可以在高峰期关闭一些不紧急的推荐功能,以保证核心的商品搜索和下单功能的可用性。在微服务架构中,降级处理是一种应对故障或高负荷情况的策略,旨在确保系统的可用性和稳定性。通过降级处理,你可以在面临异常情况时减少对核心功能的依赖,并提供一种简化但仍具备基本功能的备选方案。
2023-12-13 12:31:51
246
1
原创 docker部署前端文件
在linux目录下创建一个文件夹(我创的是nginx文件夹)并在下面创建dockerfile与nginx.conf文件如下。如果不配置后端代理的话不需要指定upstream backend块 和location /***将自定义的nginx.conf文件挂载到容器默认的nginx.conf文件夹下替换掉并暴露端口。root根目录下一定要有index.html文件。将打包好的dist文件夹传到一开始创建的文件夹下。也可以在编写dockerfile文件时。编写nginx.conf文件。
2023-12-07 09:52:33
88
转载 微服务项目使用nacos集群并且使用nginx进行请求转发出现com.alibaba.nacos.api.exception.NacosException: Client not connected,
我们在nginx配置的代理tcp端口为8847,这个端口可以看成是grpc的端口,因为grpc的端口 = nacos主端口 + 1000,因此我们套这个公式就可以得出,nacos的主端口为 = 8847- 1000 = 7847,而我们微服务项目配置nacos端口,其实配置是主端口,因此实际上我们配置要写成。在使用nginx进行请求转发时,必须使用TCP转发,不能使用http转发,否则会被nginx断开连接。为什么要减1000,是因为使用gRPC通信的方式与主端口偏移量为1000,上面有提到。
2023-12-01 16:50:54
592
1
原创 使用dockerfile配置nginx代理到各个服务器地址
upstream backend 块表示的是代理到哪些个服务器。在nginx目录下再创建dockerfile文件并编辑。在ngin中创建nginx.conf文件。vim编写nginx.conf文件。执行docker构建命令。
2023-12-01 15:12:01
184
1
原创 初始化vue3+ts项目中报错提示 找不到模块“./XXX.vue”或其相应的类型声明
在vite-env.d.ts文件中添加以下代码。原因:ts识别不了**.vue文件。
2023-10-06 12:31:21
508
1
转载 ts泛型的使用
现在功能倒是实现了,但是你看着这个函数陷入了沉思,倒不是因为产品经理的需求让你烦恼,而是有一丢丢代码洁癖的你开始思考有没有什么方法让这么一大串的东西简单点呢?这咋办,于是你在想,我能不能先随便写个东西占着地方,等我真正用的时候再告诉你我需要什么类型。老给我划红线提示我没传参数,我也很急啊,因为我真的不知道该写什么类型,我现在也没确定。”这样才完整,看着产品小姐姐满脸笑容的样子,你也生气不起来,于是又加上了两行代码。各退一步,TS 允许你在图书馆占座,但是你得告诉它占座的人是谁,占座的那个人你得用。
2023-10-01 18:57:00
52
原创 解决vue3+ts项目初始化配置文件报错的问题
将tsconfig.node.json和tsconfig.json文件修改。将vetur插件禁用。
2023-10-01 15:51:33
347
原创 git add . 报错: LF will be replaced by CRLF the next time Git touches it
【代码】git add . 报错: LF will be replaced by CRLF the next time Git touches it。
2023-09-12 18:58:14
143
原创 Uniapp生命周期函数
UniApp 的生命周期函数与 Vue 的生命周期函数类似,但也有一些特定于 UniApp 的生命周期函数。需要注意的是,不同平台(如小程序、H5、App)对生命周期的支持和触发时机可能会有所差异,因此在开发过程中应仔细查阅相关文档并根据目标平台进行适配。这些生命周期函数提供了不同阶段执行代码的机会,你可以在相应的生命周期函数中编写逻辑代码,进行初始化、数据加载、页面交互等操作。此外,UniApp 还提供了一些特定于平台的生命周期函数,用于处理特定平台的事件和行为,如小程序平台的。
2023-09-10 20:42:19
2598
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人