- 博客(70)
- 资源 (15)
- 收藏
- 关注
原创 多数据源实时合并查询策略
既然不在一张表中,而且需要排序,就很难通过一次查询解决从多个数据源中获取数据并保证正确排序并分页,多次查询是不可避免的,关键在于如何正确的合并数据和减少查询的次数。
2024-12-05 09:42:32
957
原创 常见的分布式解决方案的横向对比
在进行分布式架构技术选型时,不同的方案有不同的优势和局限。性能需求:如果对性能要求极高(尤其是高并发、高吞吐量),Kafka、Redis、Dubbo等可能是更好的选择。技术栈兼容:如果已经使用了Spring框架,Spring Cloud和Spring Cloud Alibaba自然是更好的选择。扩展性:对于横向扩展需求较大的系统,Kafka、Cassandra、Vitess等分布式系统可能更适合。开发和维护成本。
2024-11-29 16:14:35
1787
原创 设计一款支持一万人同时在线聊天的软件【AI总结文字】
如果我们想设计一款支持一万人同时在线聊天的软件,包括私信和群聊,该怎么做呢?让我用简单的语言来聊一聊这个过程,并探讨各个环节可能出现的瓶颈以及解决方案。设计一款大型的聊天软件需要综合考虑多个方面,但只要我们一步一步地规划和实施,并且持续关注系统的性能和用户体验,就能构建出一个高效、稳定的聊天平台。通过以上步骤,我们可以搭建一套支持一万人同时在线聊天的系统。为了支持一万名用户同时在线,我们需要可靠的服务器来处理大量的连接和数据传输。
2024-11-29 15:26:17
893
原创 JAVA应用不同并发级别的技术选型,过犹不及
多线程 vs 异步编程:异步编程适合I/O密集型,减少线程使用,而多线程适合计算密集型,能够充分利用多核CPU。线程池 vs Akka:线程池适合中等并发,资源控制简单;Akka更适合极高并发和分布式系统,提供了更高的灵活性。锁 vs 无锁:无锁编程减少了锁竞争,提升高并发下的性能,但实现复杂;传统锁机制则适合简单场景,但在高并发下可能会带来性能瓶颈。最终,技术的选型和实现应根据具体的业务需求、性能要求以及资源情况来决定。通过。
2024-11-28 10:50:31
1064
原创 Vue 路由配置与环境差异问题解析:开发与生产环境中的行为差异
在 Vue.js 项目的开发过程中,路由配置常常会涉及到路径、重定向、动态加载等各种复杂的操作。通常情况下,我们在 开发环境 中的路由配置能够正常工作,而在 生产环境 中,却可能会遇到一些意料之外的问题,尤其是当使用了像 Nginx 这样的服务器时。这些问题通常源于路由配置中的冲突、路径重写不当或者环境配置不一致。本文将通过具体的实例解析开发环境与生产环境中 Vue 路由行为的差异,并提供一些常见问题的解决方案。Vue 路由()是 Vue.js 应用中用于管理视图和 URL 路径之间关系的核心工具。在 Vu
2024-11-28 10:10:18
883
原创 Spring家族发展史
Spring的模块化设计使得它能够在多个层面提供灵活、可扩展的功能,并通过松耦合的方式实现高效的协作。开发人员可以根据需要选择使用不同的模块,简化开发过程。同时,Spring的扩展性也让它能够与众多外部框架和工具无缝集成,形成了一个庞大且活跃的生态系统。Q2:Spring、Spring MVC、Spring Boot、Spring Cloud,这些Spring家族成员,他们是如何渐渐发展成今天的样子,他们对比之前的框架有着什么优点和缺点?然后细说下spring boot starter。@Bean。
2024-11-27 15:38:17
1233
原创 讨论JAVA、JVM与Spring
优势:JVM仍然在大规模、高并发、高可用性的系统中占据优势,尤其是在企业级应用、分布式计算、金融系统等领域。其强大的内存管理、垃圾回收、并发支持、JIT编译、跨平台特性和生态系统,使得Java依然是这些领域的首选技术。边界:JVM的能力边界主要体现在性能开销、内存占用和启动速度方面。在低延迟、高性能要求的应用(如实时系统)中,JVM的自动内存管理和垃圾回收机制可能会带来性能瓶颈。此外,JVM应用的内存使用和启动时间相对较长,这在一些对资源要求严格的场景中可能会成为限制因素。
2024-11-27 14:39:07
1263
2
原创 nginx超长讨论汇总与常见问题
Nginx通过事件循环和I/O多路复用的设计,避免了传统多进程/多线程模型中的频繁上下文切换,显著提高了高并发环境下的性能。Nginx的事件循环是一个单线程的机制,能够同时处理大量并发连接,而不需要为每个连接创建新的线程或进程。通过非阻塞I/O和高效的事件调度,Nginx最大程度地减少了上下文切换的开销,从而提升了吞吐量和响应速度。在上下文切换方面,传统模型中的上下文切换主要指的是保存和恢复进程或线程的寄存器状态和内存映像,而Nginx通过事件驱动。
2024-11-26 18:44:41
1116
原创 使用 Dockerfile 和启动脚本注册 XXL-Job 执行器的正确 IP 地址
通过这种方式,容器在启动时会动态获取自身的 IP 地址,并将其正确注册到 XXL-Job 中,解决了动态 IP 地址在调度回调时无法访问的问题。这种方法适用于在 Kubernetes 或 Docker Swarm 中部署多个动态 IP 的容器环境。
2024-09-27 15:31:38
1212
原创 Lombok 与 EasyExcel 兼容性问题解析及建议
手动编写关键属性的 Getter 和 Setter 方法,确保方法可被反射访问。正确配置 Lombok,包括 IDE 插件和构建工具依赖,确保方法正确生成。遵循 JavaBean 规范,方法命名和可见性应符合要求。谨慎使用 Lombok 的高级特性,避免更改方法的生成方式或命名。通过上述措施,可以有效解决 Lombok 与 EasyExcel 的兼容性问题,确保数据解析和处理的正确性。
2024-09-20 13:46:15
1641
原创 Redisson的几种锁的通俗说明
锁就像一个确保数据安全的钥匙,防止多个线程同时访问和修改同一个资源。通过锁,线程在访问共享资源之前,必须先获取锁,其他线程只能等当前线程释放锁后才能访问。RLock是最常用的锁类型,适合绝大多数常见场景。其他锁(如读写锁、信号量、闭锁等)适合特定的并发控制需求。锁的选择取决于具体的应用场景,通常情况下,使用简单的 RLock 就足够。
2024-09-04 19:28:51
868
原创 如何解决XXL-JOB依赖包冲突导致的`XxlJobSpringExecutor`类找不到问题
在多个项目互相依赖的环境下,依赖冲突问题非常常见。通过使用IDEA的依赖分析工具,可以快速定位问题并排除冲突。使用IDEA的依赖树功能查看冲突包。在pom.xml中排除冲突依赖。重新构建并验证项目是否正常运行。这种方法不仅适用于XXL-JOB的依赖冲突,也适用于其他类似的依赖冲突问题。合理管理依赖,避免不必要的冲突,可以提升项目的稳定性和开发效率。
2024-09-04 13:28:56
1447
原创 程序员不能一门心思扎进问题,要多注意进度,积极汇报
如果有明确的任务和明确的时间,就要有明确的交代或汇报,而不是说到了交任务的时间,自己没有完成任务时再去解释原因,那个时候可能因为你的进度问题而影响了其他人,如果早点汇报这个问题,领导可能会协调资源或启用其他的替代方案。当然,工作中会遇到意外的问题,而这些问题又是无法绕过的,必须花时间去解决问题,那么需要尽早汇报问题,告知遇到的情况和当前的进展,如果解决问题的时间不好预测,那么可能还需要其他的备用方案。工作以目标为导向,始终谨记自己本周或当天的任务是什么,而不是轻易的就被一些事情转移了注意力。
2024-08-13 14:16:20
401
原创 Python处理None值插入MySQL以及一些常见的错误
正确处理Python中的None值并将其插入到MySQL数据库中,是开发中一个重要的环节。避免直接拼接 SQL 字符串:这不仅容易引发类型错误,还可能带来SQL注入的风险。使用参数化查询:这是处理None值最安全、最可靠的方法。通过占位符,数据库驱动程序会自动将None转换为SQL中的NULL。批量插入:使用方法可以有效地批量处理数据插入,进一步提升性能。通过遵循这些最佳实践,你可以确保None值在插入MySQL时被正确地处理为NULL,从而避免常见的错误和潜在的安全问题。
2024-08-13 14:02:04
1426
原创 略记一次抓取内容后解密及登录的经历
从我这个不专业的爬虫工程师来看,爬虫工作是比较看耐心的,尤其是登录和其他的破解环节,一定要相信,从理论上来破的东西,它确实就能破,但确实太考验耐心了。最后再拿下登录返回的token,准备一台手机,自动接收验证码,然后启一个接受短信的服务存到redis,至此登录、请求接口、解密数据全部完成。,key是接口有返回的,但iv对方网站就隐藏的很好,除了这个iv,其他的问题都解决了,加密字符串也成功解密。尤其是解密的代码,调用栈太长了,我水平不够,整整看了2天,才从这种代码中找出了它主要的解密方式,
2024-08-09 10:42:44
1179
原创 几种python常见的包管理方式
pip是最基础的包管理工具,几乎适用于所有场景。Conda更适合需要管理环境和多种语言依赖的复杂项目,尤其是数据科学领域。Virtualenv和Pipenv都是轻量的虚拟环境管理工具,适合独立的 Python 项目。Poetry是现代 Python 项目管理的全能工具,推荐用于新项目。Pipx则非常适合安装和管理独立的命令行工具。
2024-08-09 09:49:16
1475
原创 模块化设计瞎谈
总体来说,模块设计,需要对业务有充分的了解,分清楚业务的边界,并尽量降低外部对它的影响,这样的设计是为了更好的复用,可扩展性更强,而且可以降低不同模块间人员协作的成本。
2023-09-22 18:23:24
298
原创 python多线程定时任务重复执行问题
定时任务如果在主线程中会导致主线程阻塞,所以最好使用单独的线程去做定时任务。在使用异线程的过程中,容易出现任务多次执行问题,以下是个简单的例子
2023-09-14 11:54:00
1453
原创 实体类使用了@builder导致父类的属性无法通过mapstruct映射问题
所以,如果需要将属性映射到父类中去,需要在去掉@builder,或者在mapstruct映射时使builder不生效即可。属性没有被映射,这是因为通过builder模式去创建的vo,默认是不会带上父类的属性的。通过dto转vo,其中。
2023-09-06 15:58:49
3074
原创 mybatisplus getSqlSegment的and问题
mybatis-plus的${ew.sqlSegment}的and问题${ew.customSqlSegment} 不需要where标签包裹${ew.sqlSegment} 需要where,在条件的开头会不会自动拼接and?在3.x版本好像去掉了在开头拼接and(我看源码下来,没有看到有拼接and,如果在哪里有,请告知下,谢谢),所以就自己去拼接and了,简单继承了下。MyQueryWrapper.java/** * * <p> * mybatis plus 3.10以后的
2022-03-14 14:49:18
4592
原创 There is no getter for property named ‘paramNameValuePairs‘ in ‘class java.lang.String‘
There is no getter for property named ‘paramNameValuePairs’ in ‘class java.lang.String’mybatisplus在调用mapper时,sql语句中使用了某个参数,但是在参数列表中却没有找到该参数就会报这个错误。
2022-03-14 14:41:21
1045
原创 PhantomJS has crashed. Please read the bug reporting guide at....
PhantomJS has crashed. Please read the bug reporting guide at…服务器环境centos解决方法先上我这边的问题原因,字体问题,在服务器安装需要的字体,问题即得到解决。我的排查过程在测试环境和我本机都没有问题,但在线上就崩溃了,这个问题一时也让我有点崩溃,几乎检查了所有代码相关的问题,没有发现任何异常,那么问题只能出在工具或服务器环境上了。一、找错误日志我希望能从phantomjs的日志上去发现问题所在,但无奈没找到phantomjs的
2022-03-11 18:19:50
3410
原创 自定义shiro过滤器没有Set Cookie问题。
自定义shiro过滤器没有Set Cookie问题。比如我们通常会针对ajax的请求,返回json数据,一般的实现大概是这样。public class MyUserFilter extends UserFilter { @Override protected boolean onAccessDenied(ServletRequest servletRequest, ServletResponse servletResponse) throws Exception { H
2022-02-16 18:39:07
1166
原创 编译OpenJDK感言
记一次关于自己编译openjdk的一点感言。这次也没有什么特别的原因,就是突然想看看几乎每日在用的JVM到底是个什么样子,老听别人讲怎么怎么地,感觉自己的理解还是差那么点意思(可能差很多),就想着自己去一探究竟。记不清什么时候第一次开始编译openjdk源码了,但此前都以失败告终,挺惭愧的,基本都是动手弄了几个小时,然后因为各种原因没继续下去就放弃了。我想了想,老是一次弄几个小时就放弃,这效率低的也没谁了,只有投入没有产出啊,只要没搞出来,产出几乎等于零。搞来搞去一直搞不出来挺难为情,于是乎就决定这次不
2021-12-10 19:44:03
309
原创 记一个spring boot max-file-size的变化
记一个max-file-size的配置变化,在几个大版本中,配置发生了变化。项目报错the request was rejected because its size (22970849) exceeds the configured maximum (10485760)1.3.3.RELEASEmultipart.max-file-size=1Mb # Max file size. V...
2018-12-07 12:22:08
20874
1
原创 《程序员的自我修养》笔记
本书作者:陈逸鹤以下是我读此书时作的一些笔记,当然书中还有很多值得参考的想法,就不一一列举了。一万小时说法☆ 这个说法很普遍了,它再次提醒了我如何去做一个领域的专家。如果平均每天八小时在这个领域上,那么一年300天=300 * 8 = 2400,保持这种学习激情在上面,五年内就可以成为专家了,我算了算自己在这个领域投入的时间(主要学习时间),除去我没有怎么写代码的时间,我从14年开始...
2018-11-21 21:26:22
2655
原创 Spring Cloud入门级使用
在Spring boot项目中使用Spring cloud组件,首先要明白当前自己用的Spring boot对应的Spring cloud版本是什么。参考 https://spring.io/projects/spring-cloud Release Trains 部分。一定要将注意版本问题,最好匹配下版本,不然容易出现意外的错误。我的项目是基于spring boot 2.0.1.RELEA...
2018-11-20 20:59:57
4791
原创 Shiro集成redis和JWT碰到的问题
对Shiro的使用,一般都会涉及到自定义验证身份的问题。那么就需要实现自己的 AuthorizingRealm ,Authorizing是授权的意思, realm 有领域的意思,合起来大概就是自定义实现授权的地方了。基本的使用教程本文就不讲了,网上有很大。我主要记下自己在集成redis和jwt过程中碰到的几个问题。一、与redis集成后,redis没有生效的问题。我们首先要明白redis与s...
2018-11-19 21:36:01
3750
4
原创 Your browser sent a request that this server could not understand. Additionally, a 400 Bad Request e
访问域名报如下错误Bad RequestYour browser sent a request that this server could not understand.Additionally, a 400 Bad Request error was encountered while trying to use an ErrorDocument to handle the reque...
2018-08-24 15:03:42
32874
1
原创 Maven中使用spring boot多重继承依赖的问题
如果项目存在多重继承关系,当父pom中使用<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.12.RELEASE&...
2018-06-22 13:44:57
4430
原创 Repeated column in mapping for entity分析
一个实体类 Company 中有两个字段如下: @Basic @Column(name = "creator_id") public String getCreatorId() { return creatorId; } @ManyToOne @JoinColumn(name = "creator_id", reference...
2018-04-24 11:48:07
21009
6
原创 Python 导入json格式全国统一地区代码到数据库表
Python 导入json格式全国统一地区代码到数据库表,代码如下,表结构仅供参考import jsonimport MySQLdbimport uuid# 打开数据库连接db = MySQLdb.connect("localhost", "root", "root", "smz", charset='utf8')# 使用cursor()方法获取操作游标cursor = db...
2018-04-20 16:14:38
645
原创 IDEA使用心得
要搜索IDEA的配置,可以Preferences(偏好)中搜索,如搜索 Live TemplatesLive Templates 可自定义模板,Live Templates 中定义了大量的可使用的模板,如 Java 通用的 也可点击添加自定义模板或注释。Help ——&gt; Find Action这个功能是很有用的。假如你不记得一些功能或快捷键在哪,可以试着在Find A...
2018-04-19 14:24:06
1612
原创 activemq正常启动后停止
activemq正常启动后,访问localhost:8161/admin 异常,并且./bin/activemq status显示ActiveMQ not running,即ActiveMQ当前是停止状态。但在启动时日志输出是正常的。分析解决在activemq目录下运行 ./bin/activemq console 会以调试模式启动,并将日志输出到当前页面。 运行后报错如下:...
2018-03-27 18:46:27
8607
原创 2017年终总结
引:还有不到一周时间即将过年了,在这年底的最后一个周末休息日,是应该回望下自己17年都干了些什么,对新年有什么展望。既然是个人总结那自然是和自己有关的任何事都可以说一说,也就无所谓次第,更不讲究什么写文手法了。工作篇虽说不讲究次第,但我头脑中冒出的第一个想写的却是工作,虽然我不想强调工作对我的重要性,我也一再申明我是个热爱生活的男人,工作它仅仅是作为我生存的一个保障和一个人之于社会...
2018-02-10 14:32:49
361
原创 centos7.2中tomcat启动很慢的问题
有几台服务器,一台是centos6.5的,一台是centos7.2的,同样的tomcat配置,同样的jdk,同样的war包,centos6.5上启动项目只要十几秒,centos7.2启动却要两百秒,相差十多倍。苦思冥想,没找到原因,只剩机器本身配置问题.centos6.5的是16G内存的 centos7.2是8G内存的但各自tomcat分配的内存是够的,所以不可能是机器内存的问题,对比t...
2018-02-09 13:00:20
991
C# 连接 SqlServer, Mysql
2014-05-19
javascript考勤日历
2017-04-21
spring boot logback demo
2017-08-25
spring boot导出excel
2017-06-28
C# 服务,监控Mysql数据库并执行操作
2014-05-19
C# WINFORM小游戏
2013-06-07
python导出chrome书签到markdown文件
2017-12-27
effective java 3rd 英文版
2019-09-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人