请允许在我们的网站上展示广告
您似乎使用了广告拦截器,请关闭广告拦截器。我们的网站依靠广告获取资金。
我已知悉
文章发布订阅~
通过邮箱订阅文章更新,您将在文章发布时收到及时的邮件提醒~
邮箱
昵称
订阅
关闭
首页
专栏
橙Bot
动态
图库
留言板
友链
1
玩转 Java 国际化:进击的Locale!
2
告别类型声明?Java的var到底该不该用
3
Java模块化:梦想很丰满,现实很骨感
4
并发编程太难写?这些新方法救了我
5
Java如何优雅地创建不可变集合?
橙序员
累计撰写
221
篇文章
累计创建
70
个标签
累计收到
4
条评论
栏目
首页
专栏
橙Bot
动态
图库
留言板
友链
搜索
标签搜索
JDK
响应式编程
R2DBC
小说
成长
公众号
事务
流处理
大数据
旅行
mongo db
SUNO
github
IDEA
安全
注解
总结
求职
分布式事务
CAP
分布式系统
loadbalancer
装修
买房
前端
方案设计
AIGC
JVM
资讯
Netty
NIO
BIO
zookeeper
RocketMQ
MySQL
stable diffusion
spring MVC
spring AOP
JDBC
mybatis
logback
docker
consul
spring event
新冠
连接池
redis
运维
nginx
hiper-v
DDD
搞笑
数据库
团建
游戏
Gradle
心情
好物
eureka
spring framework
spring boot
设计模式
apache common
ShardingSphere
KAFKA
leetcode
spring cloud
feign
ES
起点
目 录
CONTENT
以下是
开发技巧
相关的文章
2024-08-18
深入掌握JDK流处理机制:高效操作集合的秘密,全在这里!
流处理函数提供了对集合进行快速处理的功能,并具有声明式编程、并行处理、链式操作和避免副作用等优点。在实际执行时,通过ArrayList的stream()方法创建了一个Stream实例,利用ArrayListSpliterator来实现数据的遍历和分割。ArrayListSpliterator维护了当前的遍历位置和ArrayList内部数据的一致性,支持并行处理。通过trySplit方法可以分割list,而forEachRemaining方法则用于遍历list并执行相应操作。因此,使用流处理时,可以更高效地对集合进行操作,同时实现较好的性能和可维护性。
2024-08-18
573
0
0
开发技巧
2024-07-28
熟用AI,可以带来哪些提效?
本文介绍了如何通过熟练掌握AI技巧和Prompt学习搭建LLM,以提高工作效率。具体包括技术方案设计、代码开发、测试、技术学习和答疑等方面。在使用GPT提效时,需要明确任务目标与意图,提供具体描述和上下文信息,分步指示,提供示例和模板,以及角色扮演式提问。此外,介绍了LLMChain的组件,包括PromptTemplate、语言模型和可选的输出解析器。通过这些方法和工具,可以更好地利用GPT提高工作效率。
2024-07-28
700
0
0
开发技巧
2024-07-21
一文读懂流处理和批处理
批量处理数据的技术,适用于处理静态的数据集而非连续不断的数据流。批处理通常用于需要离线分析和处理大规模数据的场景,例如数据清洗、ETL(Extract, Transform, Load)过程、数据仓库构建等。批处理的主要特点包括按批次处理数据、高效利用计算资源、适用于离线场景等。常见的批处理框架和工具包括Apache Hadoop、Apache Spark、Apache Hive等。批处理的应用场景包括数据仓库构建、报表生成、离线数据分析等。与流处理相比,批处理通常具有较高的处理延迟,但适用于对历史数据进行分析和决策。在实际应用中,流处理和批处理技术常常结合使用,以满足不同的数据处理需求。
2024-07-21
1097
0
0
开发技巧
2024-06-16
ES聚合查询,应该这么用!
摘要:Elasticsearch的聚合功能分为三种类型:指标聚合、存储桶聚合和管道聚合。存储桶聚合类似于mysql中的group by字段,指标聚合用于计算字段的指标,而管道聚合对其他聚合生成的输出进行操作。聚合查询可通过桶+指标聚合和管道聚合计算各种统计数据。在使用存储桶聚合时要小心过多的过滤条件可能产生邻接矩阵。多字段(术语)聚合可通过嵌套子聚合、多术语聚合和复合聚合进行多字段分组统计。通过合理使用不同类型的聚合,可以更有效地对数据进行分析和统计。
2024-06-16
1218
0
1
开发技巧
2024-05-19
解析Spring Data Redis源码,探索性能提升之本~
Spring Redis在多个领域中展现了高效性和实用性,如电信运营系统、购物网站性能优化、高校Web服务器会话保持等。Redis作为高性能数据库,在提高数据读写性能、解决系统负荷过高问题方面发挥重要作用,尤其在处理高并发请求、提升系统响应速度方面表现突出。在Spring Boot框架下,Redis被广泛应用于缓存技术,解决了数据同步问题、提升了搜索查询效率。Redis集群配置管理平台和原生Redis集群的优化体现了其强大能力和灵活性。使用Spring Redis时,需要添加依赖、配置连接信息、创建RedisTemplate Bean,并可选择使用Spring Data Redis进行操作或使用Spring Cache进行缓存管理。Redis执行命令,连接redis方法和Redis连接获取等方面展示了Redis在处理大规模数据存储和高并发访问需求时的机制和实现方式。Spring Redis的集成与应用提升了系统性能和用户体验,是现代软件开发的重要组成部分。
2024-05-19
977
0
0
开发技巧
2024-04-20
一文快速掌握全文检索
全文检索是一种用于在文本文档或记录集合中进行快速搜索的技术。全文检索包括建立索引、搜索查询、评分和语言处理等步骤,能够让用户按照关键字或查询来查找文档。全文检索与全文查找有所不同,全文检索更为复杂、全面,而全文查找更为简单直接。在实现全文索引方面,MySQL和MongoDB分别有着不同的方式。MySQL通过创建全文索引并执行 MATCH ... AGAINST 查询实现全文搜索,而MongoDB则通过创建文本索引并使用 $text 操作符进行检索。此外,MySQL的倒排索引技术在复杂场景下存在一些局限性,需要根据具体情况进行使用和优化。对于MongoDB,虽然不直接支持中文全文检索,但可以通过结合中文分词器实现。综合来看,在不同数据库中,全文检索的实现方式和技术应用存在差异,需要根据具体情况选择适合的方法。
2024-04-20
992
0
0
开发技巧
2024-03-31
开源项目如何管理
社区标准项目描述和自述是必不可少的,开源协议选取和配置也至关重要。除了流行的MIT、Apache 2.0和GPLv3外,其他许可证也值得考虑。一些社区对特定许可证有偏好,可以根据需求选择。同时,项目安全包括安全策略、漏洞报告、安全检测等,需要配置好安全策略和代码扫描。Git action提供了便利的项目工作流,可以进行编译验证和代码发布管理。例如,对于Java项目可以选择maven build ci和gradle build ci进行代码编译。实际操作中需要配置Gradle并进行代码扫描。同时,其他社区配置如CODE_OF_CONDUCT.md和CONTRIBUTING.md也对项目的规范有帮助。总之,项目的描述、安全和工作流配置是开源项目成功的关键。
2024-03-31
648
0
0
开发技巧
2024-03-24
jaspyt加密配置如何验证?
本文介绍了在使用生产环境或者开源项目时,配置文件中的密码需要加密的背景和现状,以及目前存在的问题。针对这一问题,提出了开发一个插件的目标,该插件可以支持密码加密和配置文件解密验证。功能设计包括明文密钥加密、加解密配置文件对照和插件选项卡设置。安全算法方面,需要实现各种加密算法,并定义一个安全实例来提供不同算法的加解入口。最后,参考了Java官方文档中关于安全算法实现的要求。总体而言,本文提供了一个解决配置文件加密问题的解决方案,并详细说明了开发目标、功能设计和安全算法实现的步骤。
2024-03-24
604
0
0
开发技巧
2024-03-16
如何为新版IDEA开发一个插件?
本文介绍了在开发IDEA插件前的准备工作和项目结构。在开始开发前,需要熟悉java或kotlin语言,以及对JWT有一定了解。在准备阶段,需要参考IntelliJ官方SDK文档和plugin devkitSDK cookbook。项目结构包括.github、.run、build、gradle等文件夹,以及src下的main和test文件夹。在创建完项目后,需要安装devkit插件才能在IDEA中看到新建插件项目的选项。熟悉插件项目的结构后,可以开始编写插件源代码。整体来说,本文为读者提供了开发IDEA插件的前期准备步骤和项目结构介绍。
2024-03-16
1609
0
3
开发技巧
2024-03-03
什么是加密与数字签名
密码学是通过使用编码算法、哈希和签名来保护信息的实践。密码学主要目标包括保密性、完整性、身份验证和不可否认性,其实现依赖于许多低级密码算法。对称加密是一种常见的加密技术,使用相同的密钥进行加密和解密。流行而安全的对称加密算法包括AES、Salsa20和Serpent等。非对称加密则使用一对密钥,公钥和私钥,提供更高的安全性,并且常用的算法包括RSA和ECC。RSA是目前使用最广泛的非对称加密算法,而ECC在相对较短的密钥长度下提供了与RSA相似的保护级别和更快的性能。密码学的重要性在于保障信息安全,涉及到加密数据的转换和密钥管理等方面。
2024-03-03
607
0
0
开发技巧
2024-02-25
java注解的使用场景
本文总结了如何编写注解以确定注解的目的,包括确定目的和使用场景、定义注解、选择元素类型、定义元素、设置默认值、添加元注解等步骤。同时介绍了常用的元注解@Retention、@Target、@Documented、@Inherited的作用和使用方法。另外,以三种不同场景为例,分别演示了如何生成对应类属性的get和set方法、在编译时生成包含类版本信息的文件、以及检查接口是否有实现类等操作。通过这些示例,读者可以了解如何使用注解和注解处理器来简化开发过程和提高代码质量。
2024-02-25
826
0
0
开发技巧
2024-01-23
如何在三周内拿到offer?
本文通过介绍了如何刷算法题以及应对面试的相关策略和工具。文章提到了在LeetCode上有对应的学习计划,可以选择链表、数组、动态规划、二叉树等进行专项练习,并推荐了Leet Book作为辅助学习。对于面试准备,作者建议使用AIGC工具进行模拟面试并搭建面试助手来解答疑惑。文章还提到了面试中可能遇到的算法题、基础题、原理题、组件题、主观题和场景设计题,并给出了相应解决方法。最后总结指出,通过刷题巩固基础、研究中间件源码提高技能,并综合应用可以更好地备战面试,达到获得offer的目标。文章内容涵盖了算法刷题,面试准备和技术深度等多个方面,为读者提供了全面而实用的建议。
2024-01-23
677
0
1
开发技巧
2024-01-14
为什么要有事务消息?
本文总结了在订单创建场景下,如何使用事务消息和事务协调器来保证消息发送和本地事务执行的原子性。首先介绍了使用Kafka和RocketMQ实现事务消息的不同方式,Kafka以生产者为单位,RocketMQ以消息为单位,实现更细粒度的事务控制。在讨论中指出,RocketMQ支持消息查询和消息级别的分布式事务机制,因此适用于需要强一致性的场景。最后强调了分布式事务对数据一致性的重要性,并建议参考其他文章以了解更多内容。
2024-01-14
833
0
0
开发技巧
2024-01-06
个人站点搭建小叙
该项目基于开源项目Halo 1.5.4进行改造,目的是实现“易维护,低成本”的博客系统。主要包括三个部分:文章展示、文章管理和博客后端。改造内容涵盖文章数据存储至MongoDB,以支持更快速的检索和大文本存储;利用ANSJ分词器实现高效的中文分词;搭建冷备链路以保障网站运行日志的安全,采用FTP和rclone实现加密传输。此外,进行了SEO优化和广告接入,通过AIGC技术生成文章摘要和关键词,还加强了网站问答助手功能。文章附件被自动标签和归档以优化管理,图片展示也实现了多样化。作者选择不使用Halo的新版本,认为1.5.4已经满足其需求,且新版本对文章类博客支持不够专一。在个人建站中,作者注重降低成本、提高SEO和广告收益,同时积极学习新技术,追求功能的优化与开发。
2024-01-06
978
0
1
开发技巧
2024-01-01
如何保证分布式系统的一致性
分布式系统中的数据一致性、原子性、隔离性和持久性问题,需要通过分布式事务来解决。分布式事务可以采用二阶段提交(2PC)、三阶段提交(3PC)、尝试-确认-取消(TCC)或SAGA模式等不同协议来实现。在CP系统中,分布式事务更常见以确保数据的强一致性;在AP系统中可能会采用最终一致性策略。2PC适用于强一致性场景,但可能存在阻塞、单点故障等问题;3PC适用于减少阻塞时间的场景,但仍有不确定性;TCC适用于复杂业务逻辑场景,但实现相对复杂;SAGA适用于长事务和异步补偿场景,灵活性更高。不同协议适用于不同场景,需要根据具体需求进行选择。 Seata使用基于二阶段提交的AT模式来解决分支事务并发的原子性问题。
2024-01-01
736
0
0
开发技巧
2023-12-30
从CAP出发看懂分布式系统
CAP 理论提出了一致性(Consistency)、可用性(Availability)、分区容错性(Partition Tolerance)这三个在分布式系统中无法同时满足的概念。在 CP 系统中强调一致性和分区容错性,例如 ZooKeeper,只有领导者节点能进行读写操作。而在 AP 系统中强调可用性和分区容错性,例如 Eureka,节点间采用异步方式进行数据同步。节点故障场景下的处理策略包括不视为成功、异步处理和消息队列、故障转移和重试、监控和报警等。AP 系统保证最终一致性,常用的数据一致性保证方法包括版本向量、修复性复制、基于向量时钟的最终一致性、原子写操作和逻辑时钟。根据不同的应用场景,可以选择适合的 CP 或 AP 系统来保证系统的稳定性和性能。
2023-12-30
875
0
0
开发技巧
2023-12-26
服务如何管理和维护
从需求、技术、安全、运营、运维、协作六个角度出发,服务管理和维护是服务健康的关键。需求分析包括业务、用户、功能、非功能、系统、质量、验收标准、界面、法规、数据、文档等需求。需求开发和迭代注意事项包括使用合适的开发方法论、明确定义需求、与利益相关者充分沟通、设定优先级和验收标准等。技术方面涉及编程语言、框架、数据库、Web框架、消息队列、缓存、微服务架构、容器化技术、监控和日志、安全工具、自动化构建部署等多方面。架构设计要考虑可扩展、可维护、可靠和安全的系统架构。性能优化手段包括代码优化、数据库优化、并发和并行处理等。总的来说,服务管理和维护需要全方位考虑需求、技术、安全等多个方面,确保服务能够稳健、高效地运行。
2023-12-26
896
0
0
开发技巧
2023-12-24
一文读懂分布式服务
本文总结了分布式服务开发中的一些关键概念和问题场景,包括高负载、高并发、故障等,并介绍了相应的处理方式,如分布式缓存优化、负载均衡和服务发现、自动伸缩、异步消息队列和事件驱动、限流和熔断、自动化监控和调优等。此外,还提出了如服务限流、服务熔断、服务降级、缓存策略、分布式系统架构设计、监控和报警等解决服务故障和避免雪崩的措施。最后,介绍了分布式服务解耦的方式,包括消息队列、事件驱动架构、观察者模式、事件总线、分布式日志、异步消息通知和Webhooks等。通过这些方式可以实现服务之间的松耦合,提高系统的弹性和稳定性。
2023-12-24
667
0
0
开发技巧
2023-12-10
LoadBalancer如何替代ribbon实现负载均衡?
Spring Cloud不再使用Ribbon的原因主要有三点:一是Ribbon已停止维护和开发,未来不确定;二是微服务架构中负载均衡应移至服务注册中心;三是Spring Cloud推荐使用Spring Cloud LoadBalancer替代Ribbon,提供更灵活易扩展的解决方案。Spring Cloud LoadBalancer是通用的负载均衡器,支持多种算法和自定义扩展。Open Feign中的负载均衡通过FeignBlockingLoadBalancerClient实现,选择要调用的实例使用负载均衡策略。Spring Cloud已开始推荐使用Spring Cloud LoadBalancer替代Ribbon,提供更为现代化和灵活的负载均衡解决方案。
2023-12-10
1883
0
2
开发技巧
2023-11-29
mongodb优化实践
存容量设置为2GB:wiredTiger.engineConfig.cacheSizeGB: 2设置缓存预加载:在WiredTiger配置项下,设置wiredTiger.engineConfig.cachePressure参数,用来指定缓存预加载的策略。可以将cachePressure设置为warm,表示在数据库冷启动时,会预加载缓存。例如:wiredTiger.engineConfig.cachePressure: warm保存配置文件并重启MongoDB:保存配置文件并重启MongoDB服务,使配置参数生效。通过以上步骤设置缓存容量和缓存预加载可以提高MongoDB在冷启动时的性能表现,并加快恢复到正常状态的速度。通过调整缓存容量和缓存预加载策略,可以最大程度地利用系统资源,提高MongoDB的性能和响应速度。
2023-11-29
695
0
0
开发技巧
2023-11-25
Eureka如何进行服务管理
本文介绍了Eureka服务端如何接收并维护客户端实例信息。首先通过EurekaServerAutoConfiguration创建必要组件,包括Eureka面板管理、与客户端的通讯、注册中心启动器等。然后通过EurekaServerInitializerConfiguration配置类进行服务启动。接着介绍了Jersey3框架用于构建RESTful Web服务的基本概念和功能,以及如何通过Jersey3EurekaServerHttpClientFactory创建基于Jersey3的EurekaServerHttpClient。Jersey提供了一组API和工具,简化了在Java应用程序中创建和开发RESTful Web服务的过程。总的来说,本文详细介绍了Eureka服务端的启动流程和Jersey框架的基本原理,帮助读者深入了解Eureka服务端的工作机制和相关技术。
2023-11-25
625
0
0
开发技巧
2023-11-12
从线上问题看服务注册
本文介绍了Eureka服务注册的工作流程和相关组件。首先,通过EurekaAutoServiceRegistration实现服务的注册入口。然后,使用EurekaServiceRegistry进行服务的注册操作。接下来,通过EurekaClientAutoConfiguration创建EurekaClient的实例。在客户端创建EurekaClient后,会创建与注册EurekaClient的调度任务,并且会有一个线程负责刷新本地注册信息,另一个线程负责向注册中心注册心跳信息。最后,介绍了当注册中心配置错误时,微服务会打印的堆栈信息。
2023-11-12
921
0
0
开发技巧
2023-11-05
服务的注册与发现如何完成?
本文介绍了Spring Cloud服务的注册和发现流程,首先通过spring-cloud-commons包定义了注册和发现的规范流程,然后通过各个注册中心和管理中心进行具体的服务注册和实现。服务注册和发现包括两个步骤,一是通过EnableDiscoveryClient注解开启自动注册服务,二是在容器启动时向注册中心的注册表进行注册。其中,HostInfoEnvironmentPostProcessor获取了服务实例所属主机信息的属性,并将其封装到springCloudClientHostInfo属性源中。CompatibilityNotMetFailureAnalyzer用于解析当配置不兼容报错时,返回适当的提示信息。在Spring的自动配置中,引入了客户端状态配置和四种客户端的配置,包括通用客户端、响应式客户端、复合客户端和简单客户端。
2023-11-05
717
0
0
开发技巧
2023-11-04
Node.js与vue初识
update命令,可以将项目中所有已安装依赖项更新到最新版本。npm publish:将开发者自己的包发布到npm仓库,使其他人可以通过npm install命令安装并使用。发布前需要先登录npm账号,并使用npm adduser命令进行身份验证。以上是npm一些常用的命令和使用方法,通过这些命令可以方便地管理和使用项目的依赖项。
2023-11-04
844
0
0
开发技巧
2023-10-30
META-INF文件夹详解
META-INF文件夹通常位于JAR文件或WAR文件的根目录下,用于存放一些元数据和配置文件。常见的文件结构及其作用有:MANIFEST.MF用于描述JAR文件的内容和属性;INDEX.LIST用于加快JAR文件的搜索速度;services目录用于存放Java标准服务加载器加载的配置文件;spring.factories用于注册和配置Spring应用程序中的自定义扩展点或实现类;maven目录用于存放与Maven构建工具相关的元数据信息和配置文件。需要注意的是,META-INF文件夹的位置应该在项目的classpath根目录下。虽然META-INF目录在Spring项目中经常使用,但它并不是Spring项目特有的,而是Java项目中常见的一个目录。
2023-10-30
3564
0
0
开发技巧
1
2
3
4
5