- 博客(7)
- 收藏
- 关注
原创 软件编码要注意的安全问题
在软件开发领域,程序员的素养不仅仅体现在写出高效、功能完善可扩展的代码,更要确保代码的安全性。安全编码是构建可靠软件系统的基石,它涉及到从设计到实现的每一个环节,很大部分软件程序员对编码安全意识淡薄,错误编码极容易导致系统性能下降,数据泄露,被植入恶意代码造成不必要的损失。对于硬件,通信,中间件的我们只要经常关注,多和运维工程师沟通常升级加固即可,软件程序员在平常编码中多点安全意识能大大保障系统的稳定性,以下是一份全面的安全编码指南,旨在提升程序员在安全方面的素养。
2024-11-03 14:02:08
890
原创 微服务拆分真的要谨慎
如果基于一个服务进行改造,需要将不同的接口放在不同的队列中处理,这不仅工作量大,而且需要开发者具备较高的技术水平和更多的学习成本。比如,一个 Java 应用的微服务往往需要至少 256M 的内存,而如果采用 RPC 远程调用,原本可以整合在一个服务中的几个微服务过度拆分后,在某些业务有一定关联的情况下,调用时线程池很容易被打满。其次,调用链路太长也是一个严重的问题。灵活性方面,每个微服务都能够独立部署和更新,彼此之间互不干扰,这使得系统的更新和维护变得更加便捷高效,不会因为一个服务的变动而影响到整个系统。
2024-10-21 23:15:40
584
原创 Java并发多线程中线程池选择,线程参数如何界定
对于有界队列,需要合理设置队列长度以避免任务积压或线程饥饿,比如Tomcat,如果队列很长但消费能力低,响应时间会很长,可能导致用户体验不佳,可以根据每秒并发数和等待时间来设置队列长度。高并发应用:在高并发场景下,可以根据实际负载情况动态调整线程池大小,或采用动态线程池(如基于任务队列长度动态调整线程数的线程池)来应对。适用于任务执行时间相对均衡,且任务数量适中的场景。最后:线程池使用不当会有很多坑的,如滥用线程池、父子线程都用一个线程池,不同业务使用不同的线程池避免被某个业务影响对堆积导致影响了全局。
2024-10-16 07:07:00
691
原创 Python装饰器
装饰器体现了装饰器模式。在 Python 中,装饰器就是通过将一个函数包装在另一个函数中,在不修改被装饰函数内部代码的情况下,为其添加额外的行为,这与装饰器模式的理念一致。装饰器本质上是一个函数,它接受一个函数作为参数,并返回一个新的函数。装饰器的引入能大大降低代码重复,增强功能,解偶等作用,这点和Java中的自定义注解有点类似,准确点说更像Spring中的aop面向切面编程。例如,用装饰器为一个函数添加日志记录功能,就如同给这个函数 “装饰” 上了日志记录的特性,而不改变函数本身的核心业务逻辑。
2024-10-16 07:04:26
349
原创 URule规则引擎SpringBoot初始化报错:No revision available 解决办法。
打开URule的journal_global_revision表,里面的版本ID为空,设置成1就好使,网上搜索也没发现相关问题,本人遇到了。debug到这一行,执行一个更新sql出现报错。
2024-10-16 07:01:46
511
原创 Vertx-client框架-高性能 HTTP 请求框架
随着互联网的发展,应用程序对网络通信的要求越来越高。传统的同步阻塞式 IO 模型在处理大量并发请求时往往会出现性能瓶颈,虽然有些支持异步获取结果的框架,但是在高并发情况负载较高的情况下也会出现一些问题。
2024-10-14 02:21:35
816
原创 一次MYSQL数据库连接数被打满的优化方案。
为了解决这个问题,在不考虑接入新的中间件,也不考虑扩容的情况下,‘我们主要从以下几个方面进行了优化: 业务流程优化:允许在某些情况下出现脏数据,对于失败的结果采用不同的处理方案。这导致请求获取连接超时且无法回收,配置的连接超时时间为3秒,还涉及到了RPC远程调用消费能力不足,导致RPC的线程池被打满,系统已经不可用,返回时间最长达几十秒。通过链路追踪、观察服务器性能和错误日志,我们发现主要瓶颈在于某个服务的MySQL数据库连接数被打满,新的请求无法获取连接,导致连接超时和事务超时错误日志频发。
2024-10-14 02:14:00
543
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅