首页
动态
橙Bot
导航
翻译橙
标签分类
文章归档
专栏
图库
友链
留言板
1
技术方案有什么
2
引导AI,探索无限可能:深入了解prompt
3
Github:那些你不知道的使用方式
4
博客接入公众号,我是如何做到的?
5
我在青岛~
橙序员
累计撰写
186
篇文章
累计创建
65
个标签
累计收到
4
条评论
栏目
首页
动态
橙Bot
导航
翻译橙
标签分类
文章归档
专栏
图库
友链
留言板
搜索
标签搜索
公众号
事务
流处理
大数据
旅行
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-01-06
置顶
个人站点搭建小叙
该摘要描述了一个基于开源项目halo进行改造的博客网站。该网站包括三个项目:文章展示、文章管理和博客后端,通过改造和优化来实现易维护和低成本的目标。改造的过程包括基于halo-1.5.4进行二次开发、将文章数据存储到mongoDB、使用分词器ANSJ进行分词以支持文章快速检索和大文章存储等。该网站还通过冷备链路搭建、前端web链接监控SEO优化、谷歌广告接入和AIGC等功能来提升网站的稳定性和推广效果。摘要最后提到了对于为什么选择基于halo-1.5.4进行开发的思考,并介绍了个人建站的思路和学习新技术的方式。总体来说,该博客网站通过对开源项目的改造和引入新技术来提供更好的用户体验和盈利模式。
2024-01-06
588
0
0
开发技巧
2024-11-18
技术方案有什么
摘要:好的技术方案能够提升企业效率、降低成本、增强竞争力,为产品创造更好的用户体验。编写好的技术方案需要充分了解需求背景,研读PRD并进行需求反讲,同时进行前瞻规划和现状梳理。梳理现状时需要评估系统结构、流程设计和功能模块,可借助UML图展示系统现状和需求改造。在技术设计中需考虑并发与一致性、性能优化,并通过技术评审和风险评估确保方案合理性和稳定性。额外成本和分阶段实施也需要考虑在实施方案中,确保改造顺利实施。通过以上方法,可以为团队提供清晰的指导,推动项目顺利完成。
2024-11-18
172
0
0
开发技巧
2024-11-03
引导AI,探索无限可能:深入了解prompt
本文介绍了什么是prompt以及为什么需要prompt,以及如何编写一个有效的prompt模板。提示的作用是指导AI如何生成符合用户需求的内容,通过角色、指令、要求、示例等方面提供有效的引导。有四种模式和六种策略可以帮助编写更好的prompt。最后通过一个导游AI示例展示了如何使用prompt来生成介绍文本,其中包括地理、历史、文化、景点、美食、住宿和交通等信息。通过改进和提供详细的要求和示例,可以获得更符合用户需求的AI生成内容。
2024-11-03
222
0
0
开发技巧
2024-10-18
博客接入公众号,我是如何做到的?
文章介绍了微信公众号的基础功能和开发者功能,以及接入公众号的步骤和方法。公众号提供了丰富多样的消息形式和用户管理功能,为用户和开发者提供了创作和发展空间。然而,在公众号撰写文章存在一些缺点,如无法实现多端文章同步和高维护成本等。作者决定接入公众号,通过SDK实现订阅回复和自动回复功能,提升用户体验。通过配置公众号信息和创建相应对象,实现获取用户openid和发送客服消息等功能。自动回复功能可以根据用户发送的消息内容进行智能回复,通过路由进行不同消息种类的处理。通过公众号和博客的互动,可以吸引更多读者,提高用户黏性和为主站增加访客,实现双赢的局面。
2024-10-18
196
0
0
开发技巧
2024-09-01
搞懂spring事务机制,这篇文章就够了!
Spring事务源码详解主要介绍了在不使用事务注解时,基于jdbc使用事务的步骤,以及通过注解封装事务的方法。同时,还提到了用户线程池和数据库连接池之间可能遇到的多个事务和事务嵌套的情况,以及Spring定义的事务传播机制来解决这些问题。文章还介绍了Spring事务切面的创建过程,包括创建事务属性解析器和获取事务管理器,用户需要根据不同的数据源自己创建事务管理器。最后,还介绍了创建事务拦截器对事务注解方法进行拦截的操作。文章内容详实,对Spring事务的实现机制有很好的解释和说明。
2024-09-01
222
0
0
开发技巧
2024-08-18
深入掌握JDK流处理机制:高效操作集合的秘密,全在这里!
通过使用JDK的流处理函数,可以快速对集合进行处理操作。流的内部结构包括中间操作和终端操作,其中中间操作分为非状态操作和状态操作。流处理有多个优点,比如声明式编程、并行处理、链式操作和避免副作用。在流处理中,源码实现是通过创建Stream实例来代表数据视图,进行懒加载的机制,当终端操作发生时才执行计算。ArrayList的stream()方法创建了一个ArrayListSpliterator来遍历和分割ArrayList,Spliterator提供了有效的方式来处理ArrayList的流操作。通过以上流处理的源码实现,可以更好地了解流处理的内部机制。
2024-08-18
247
0
0
开发技巧
2024-07-28
熟用AI,可以带来哪些提效?
本文介绍了如何通过熟练掌握AI技巧和Prompt学习搭建LLM,以提高工作效率。具体包括技术方案设计、代码开发、测试、技术学习和答疑等方面。在使用GPT提效时,需要明确任务目标与意图,提供具体描述和上下文信息,分步指示,提供示例和模板,以及角色扮演式提问。此外,介绍了LLMChain的组件,包括PromptTemplate、语言模型和可选的输出解析器。通过这些方法和工具,可以更好地利用GPT提高工作效率。
2024-07-28
282
0
0
开发技巧
2024-07-21
一文读懂流处理和批处理
批量处理数据的技术,适用于处理静态的数据集而非连续不断的数据流。批处理通常用于需要离线分析和处理大规模数据的场景,例如数据清洗、ETL(Extract, Transform, Load)过程、数据仓库构建等。批处理的主要特点包括按批次处理数据、高效利用计算资源、适用于离线场景等。常见的批处理框架和工具包括Apache Hadoop、Apache Spark、Apache Hive等。批处理的应用场景包括数据仓库构建、报表生成、离线数据分析等。与流处理相比,批处理通常具有较高的处理延迟,但适用于对历史数据进行分析和决策。在实际应用中,流处理和批处理技术常常结合使用,以满足不同的数据处理需求。
2024-07-21
407
0
0
开发技巧
2024-06-16
ES聚合查询,应该这么用!
Elasticsearch的聚合功能分为三种类型:指标聚合、存储桶聚合和管道聚合。存储桶聚合将文档分组到存储桶中,类似于mysql中的group by字段;指标聚合计算指标值,类似于mysql中的聚合函数;管道聚合则对其他聚合的输出进行操作。存储桶聚合创建文档存储桶,并确定文档是否属于该存储桶;指标聚合根据文档字段的值计算指标值;管道聚合将信息添加到输出树中。管道聚合可以分为父聚合和同级聚合,分别提供其父聚合或同级聚合的输出。总的来说,Elasticsearch的聚合功能可以根据不同的需求灵活使用,对数据进行更深层次的分析和统计。
2024-06-16
591
0
0
开发技巧
2024-05-19
解析Spring Data Redis源码,探索性能提升之本~
Spring Redis是在多个领域中展现了高效性和实用性的集成和应用。在各种场景中的应用研究表明,Redis作为高性能的键值对数据库,在提高数据读写性能和解决系统负载问题方面发挥了重要作用。特别是在处理高并发请求、提升系统响应速度和吞吐量方面,Redis显示出了其独特的优势。在Spring Boot框架下,Redis被广泛应用于缓存技术,以解决数据同步、提升搜索查询效率和实现线上无纸化信息存储等问题。使用Spring Redis需要添加依赖、配置连接信息、创建RedisTemplate Bean,并可以选择使用Spring Data Redis或Spring Cache进行数据库操作和缓存管理。总体而言,Spring Redis的集成和应用在提高系统性能和优化用户体验方面具有显著效果,是现代软件开发中不可或缺的一部分。
2024-05-19
572
0
0
开发技巧
2024-04-20
一文快速掌握全文检索
全文检索是一种在文本文档或记录集合中快速搜索的技术,其主要包括建立索引、搜索查询、评分和语言处理。建立索引是将文本数据建立索引以便快速检索,搜索查询允许用户按关键字或查询搜索文本数据,评分可根据匹配程度对结果进行排序,而语言处理则提高了检索的准确性和覆盖范围。与全文检索不同,全文查找更简单直接,可能不包括复杂的索引、评分或语言处理技术。在使用MySQL进行文本搜索时,是通过顺序查找实现的,而在使用Elasticsearch或Solr等工具时,则通过分词和关键词匹配来提高搜索效率。因此,全文检索的实现方式包括MySQL全文索引、MongoDB全文索引和Elastic全文检索等。
2024-04-20
478
0
0
开发技巧
2024-03-31
开源项目如何管理
社区标准项目描述、自述、开源协议选取和配置、以及其他社区配置项目的安全Git action编译验证打包发布等内容进行了详细介绍。项目描述和自述是非常重要的,需要清晰描述项目的用途和背景。在选择和配置开源协议时,可以参考流行的许可证如MIT、Apache 2.0和GPLv3,也可以根据社区偏好选择合适的许可证。另外,还介绍了其他社区配置文件如CODE_OF_CONDUCT.md、CONTRIBUTING.md等,这些文件定义了社区的行为准则和贡献方式,有助于维护社区秩序和吸引贡献者。总体而言,项目的规范化和标准化对于项目的发展和社区建设至关重要。
2024-03-31
358
0
0
开发技巧
2024-03-24
jaspyt加密配置如何验证?
本文介绍了在使用生产环境或者开源项目时,配置文件中的密码需要加密的背景和现状,以及目前存在的问题。针对这一问题,提出了开发一个插件的目标,该插件可以支持密码加密和配置文件解密验证。功能设计包括明文密钥加密、加解密配置文件对照和插件选项卡设置。安全算法方面,需要实现各种加密算法,并定义一个安全实例来提供不同算法的加解入口。最后,参考了Java官方文档中关于安全算法实现的要求。总体而言,本文提供了一个解决配置文件加密问题的解决方案,并详细说明了开发目标、功能设计和安全算法实现的步骤。
2024-03-24
312
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
1013
0
2
开发技巧
2024-03-03
什么是加密与数字签名
密码学是一种通过使用编码算法、哈希和签名来保护信息的实践,主要目标包括保密性、完整性、身份验证和不可否认性。密码学使用许多低级密码算法实现这些目标,包括加密算法、数字签名算法和哈希算法等。对称加密是一种常用的加密技术,加密和解密使用相同的密钥,例如AES、Salsa20和Serpent等算法。对称加密速度快,但密钥管理复杂,通常用于大量数据加密,如网络通信和数据存储。密钥的保护和算法的复杂性是确保加密算法安全性的关键因素。
2024-03-03
311
0
0
开发技巧
2024-02-25
java注解的使用场景
本文介绍了如何编写注解确定注解的目的,包括确定注解的目的和使用场景、定义注解、选择元素的类型、定义元素、为元素设置默认值、添加元注解以及使用注解。常用的元注解包括@Retention、@Target、@Documented和@Inherited。文章最后还通过一个场景描述了如何使用注解来生成对应类属性的get和set方法的代码。其中,注解的保留策略设置为SOURCE,注解目标设置为FIELD。通过学习本文,读者可以了解如何使用注解来为代码提供元数据信息,以及如何在Java中编写和使用自定义注解。
2024-02-25
424
0
0
开发技巧
2024-01-23
如何在三周内拿到offer?
本文介绍了如何刷算法题和准备面试的方法。对于算法题,可以通过leetcode上提供的学习计划选择相应的专项进行练习,并借助leet book提供的基础知识和系统性练习来提高刷题思路。作者建议集中一周时间来刷算法题,以达到快速整体掌握的效果。对于面试准备,作者借助AIGC来刷题,并介绍了搭建面试助手和模拟面试的流程。面试问题一般分为算法题、基础题、原理题、组件题、主观题和场景设计题,对于不同类型的问题,作者提出了相应的解决方法。对于原理题,建议阅读spring源码和springboot源码,对于组件题,重点了解常用中间件的实现原理。最后,作者指出刷算法题需要多练习,而基础题需要背诵。
2024-01-23
382
0
0
开发技巧
2024-01-14
为什么要有事务消息?
事务消息是为了解决消息发送失败导致数据不一致的问题而提出的。在一个场景中,当我们创建订单时,需要通知库存系统和出货系统同时更新库存和出货消息。如果消息中间件挂掉或消息发送失败,订单系统、库存系统和出货系统的数据将无法保持一致性。为了解决这个问题,可以借助分布式事务的思路,将本地事务执行和消息发送看作两个分支事务,通过创建一个事务协调器来保证它们的原子性。在这个流程中,事务协调器作为消息中间件的一部分,能够保证订单系统在下单过程中生产的所有消息都在一个事务里。然而,事务协调器无法知道每个生产者会产生什么消息,只能将事务id绑定到生产者维度,导致只能保证一次发送多条事务消息的一致性。因此,基于这种实现的事务消息机制只能保证多条事务消息的一致性,但会扩大事务的范围,导致其他消息不能及时被消费者监听。需要注意的是,在这个场景中,订单的生产者还会发送其他消息,如通知用户充值、收货等消息,这些消息也会受到事务消息机制的限制。
2024-01-14
457
0
0
开发技巧
2024-01-01
如何保证分布式系统的一致性
分布式环境中,由于数据分布在不同节点上和可能出现的网络故障、节点故障等问题,传统的单一数据库事务的ACID属性在分布式系统中难以保证。分布式事务主要解决一致性、原子性、隔离性和持久性问题。分布式事务通过一致性协议来确保一组操作要么全部成功,要么全部失败,保持数据的一致性。为确保一组操作的原子性,需要采用分布式事务协议如两阶段提交(2PC)或三阶段提交(3PC)。为保证各个事务之间的隔离性,分布式事务采用锁机制、版本控制等手段来实现。为保证持久性,分布式事务通过数据备份、数据复制等手段来保证一旦事务提交,其对数据库的改变是持久的。分布式事务通过全局事务或状态机来对分支事务进行编排,以保证分支事务的操作原子性。在CP系统中,分布式事务常见,以确保数据的强一致性。在AP系统中,对一致性要求相对较低,可能采用最终一致性或其他非事务性手段处理数据更新。存在不同的分布式事务协议,如二阶段提交(2PC)、三阶段提交(3PC)、TCC和SAGA模式等,根据不同的使用场景选择适合的协议。
2024-01-01
409
0
0
开发技巧
2023-12-30
从CAP出发看懂分布式系统
CAP理论是分布式系统中的三个核心概念,分别是一致性、可用性和分区容错性。在分布式系统中,无法同时满足这三个概念,最多只能同时满足其中两个。一致性要求所有节点在同一时刻看到的数据是相同的,可用性要求系统保证每个请求都能够得到响应,无论成功还是失败,而分区容错性要求系统能够在网络分区的情况下继续运行。根据CAP理论,分布式系统可以被划分为CA系统、AP系统和CP系统。CA系统在分区容错性上做出了妥协,只强调一致性和可用性;AP系统强调可用性和分区容错性,允许在分区的情况下继续提供服务;CP系统强调一致性和分区容错性,采用同步方式保证数据一致性。在AP系统中,数据的一致性可能存在短暂的不一致,但随着时间的推移,系统会趋向一致;而在CP系统中,只有领导者节点能够进行读写操作,其他节点需要等待领导者的同步,确保整个系统的数据一致。
2023-12-30
487
0
0
开发技巧
2023-12-26
服务如何管理和维护
服务的管理和维护需要从需求、技术、安全、运营、运维、协作等六个角度出发进行考虑。需求方面包括业务需求、用户需求、功能需求、非功能需求、系统需求、质量需求、验收标准、界面需求、法规和合规性需求、数据需求和文档需求等。需求分析可以了解用户需求和期望,确保服务能够满足用户的实际需求,并确定服务的功能和特性,以及与其他系统的集成需求。在需求开发过程中,需要使用合适的开发方法论和工具,确保项目能够按时交付。需求迭代阶段需要明确定义业务需求,并进行详细的需求分析和规格书编写,以便开发人员理解需求并进行实现。与利益相关者的沟通也很重要,要确保需求理解一致,并设定需求的优先级和战略目标。需求还需具备可测量性和验收标准,以便在开发完成后进行验证和验收。此外,还需要考虑用户体验、界面设计、安全性、性能和可伸缩性、可维护性和扩展性等方面的需求。
2023-12-26
406
0
0
开发技巧
2023-12-24
一文读懂分布式服务
分布式服务开发涉及到高并发、高负载和故障处理三种问题场景。在高负载情况下,系统资源可能会达到或接近极限,导致性能下降和响应时间延长。高并发指系统在同一时间处理多个并发请求的能力,需要有效地管理和处理大量的并发请求。故障指系统或系统组件未能按照期望的方式运行,可能导致系统功能受损或不可用。 对于高负载和高并发问题,可以采取分布式缓存优化、负载均衡和服务发现、水平扩展和自动伸缩等方式进行处理。分布式缓存优化通过将频繁访问的数据缓存到多个节点,减轻数据库和服务的压力。负载均衡和服务发现通过使用负载均衡器分发请求到多个服务实例,并确保请求被路由到可用的服务节点。水平扩展和自动伸缩通过增加服务实例数量来增加系统的处理能力,并根据负载情况动态调整实例数量。 在故障处理方面,可以采用异步消息队列和事件驱动机制。异步消息队列将耗时的操作异步化,通过消息队列传递任务,降低对同步请求的依赖。事件驱动架构将系统的组件解耦,提高系统的并发处理能力。 总之,对于分布式服务开发,需要理解高并发、高负载和故障处理场景,并采取相应的优化和解决方案来实现高可用、高性能的分布式服务。
2023-12-24
360
0
0
开发技巧
2023-12-10
LoadBalancer如何替代ribbon实现负载均衡?
因此,Spring Cloud将负载均衡的功能从Ribbon中独立出来,推荐使用LoadBalancer来实现负载均衡。LoadBalancer是一个通用的负载均衡接口,可以与不同的负载均衡实现进行集成。Spring Cloud使用了OpenFeign来替代Ribbon,OpenFeign是一个声明式的HTTP客户端,能够自动地实现负载均衡。在OpenFeign中,负载均衡的配置是通过加载负载均衡客户端工厂配置类、负载均衡客户端工厂类和负载均衡客户端配置类来完成的。同时,OpenFeign提供了多种负载均衡策略,包括同域优先、同实例优先、粘性会话、健康检查、权重和重试等。总的来说,LoadBalancer替代了Ribbon实现负载均衡的功能,而Spring Cloud不再使用Ribbon的原因是Ribbon的未来不确定性以及负载均衡责任的转移。
2023-12-10
1048
0
1
开发技巧
2023-11-29
mongodb优化实践
本文主要介绍了MongoDB的工作原理和为什么刚启动时查询较慢。MongoDB是一种NoSQL数据库,采用BSON格式存储数据,以文档的形式组织数据。数据以数据库为单位,每个数据库包含多个集合,支持水平扩展和分布式存储。复制集由主节点和从节点组成,负责处理写操作和复制数据。刚启动时查询较慢可能是因为冷启动、系统资源不足和索引优化不足等原因导致的。冷启动时需要重新加载缓存和索引,可能需要从磁盘读取数据。系统资源不足会影响查询速度,因此需要确保系统具有足够的资源来支持MongoDB的运行。索引的使用和优化也是影响查询性能的关键因素。最后,本文还提到了向MongoDB保存数据会导致内存中的索引刷新,MongoDB使用内存中的索引来提高查询性能。
2023-11-29
444
0
0
开发技巧
2023-11-25
Eureka如何进行服务管理
在上篇文章中我们已经了解了eureka客户端是如何向eureka server发送请求进行服务注册,以及在实例内部创建三个任务进行服务心跳、服务实例信息同步、本地缓存信息更新的。在本篇文章中我们来从源码探究eureka server是如何接收客户端请求并维护客户端实例信息的。Eureka服务启动创建
2023-11-25
355
0
0
开发技巧
1
2
3
4