Resilience4j提供了熔断、限流、重试等一系列有助于服务稳定性的功能,Springboot项目可以非常简单的进行集成。 <dependency> <groupId>io.github.resilience4j</groupId> <artifactId>resilience4j-spring Read More
posted @ 2026-01-03 22:44 软件心理学工程师 Views(6) Comments(0) Diggs(0)
CD过程中能不能抽象出来一些模型:资源申请,配置变更,包更新,冒烟与回归测试,回滚,灰度发布,其他。 在低信任度和命令式的文化环境中,更多的变更控制和更多的测试反而让问题再次出现的可能性变得更高。 生产环境变更失败带来的负面影响: 在变更申请表格中增加更多的问题 增加审批步骤 增加审批时间 增加更多 Read More
posted @ 2025-11-01 23:19 软件心理学工程师 Views(1) Comments(0) Diggs(0)
OAuth2是一个标准的授权协议,并以委派代理的方式进行授权。OAuth2提供一种协议交互框架,使第三方应用以安全的方式,获得用户的访问令牌(access_token)。第三方应用可以使用访问令牌代表用户访问相关资源。OAuth2中定义了以下4种角色: 资源所有者:自然人或会创建资源的系统。资源所有 Read More
posted @ 2025-11-01 22:41 软件心理学工程师 Views(1) Comments(0) Diggs(0)
最近接手了一个contact service项目,主要以APIs的形式提供contacts信息的检索,contact信息包括用护profile和group信息等用户隐私信息。 contact service提供的API主要的使用场景包括: 公司给customer提供的clients(Desktop Read More
posted @ 2025-08-03 16:32 软件心理学工程师 Views(8) Comments(0) Diggs(0)
检索增强生成(RAG,Retrieval-Augmented Generation)能够对大语言模型(LLM)的输出进行优化,使其能够在生成响应(response)之前引用训练数据来源之外的知识库中的数据对输入提示词(prompt)进行润色,从而让大模型给出更准确的答案。但大模型本身受限于训练时所采 Read More
posted @ 2024-08-27 18:48 软件心理学工程师 Views(177) Comments(0) Diggs(0)
互联网服务中有各种密钥使用场景,比如数据加解密、保障传输的安全完整性、验证合法性等。在项目初期密钥一般散落在代码,配置文件或服务器上。当对服务的安全性要求越来越高时,通常会引入密钥管理系统,把所有服务的密钥统一管理起来,并对已泄漏或者有泄漏风险的密钥进行轮转,泄漏风险一般指密钥的明文依旧出现在某些文 Read More
posted @ 2024-08-26 22:13 软件心理学工程师 Views(12) Comments(0) Diggs(0)
最近一年多,公司在大力提高服务的安全性,我也参与了公司密钥管理系统的建设,做了较多密钥创建/删除/轮换/销毁/安全存储/安全传输/审计方面的工作,不过这篇文章不谈密钥管理,而是总结不同场景下如何选择足够安全的加密算法和密钥。 按业务场景划分主要有两种:落盘加密(encryption of data Read More
posted @ 2021-10-03 09:17 软件心理学工程师 Views(678) Comments(0) Diggs(0)
上周对ES集群进行扩容,运维同学找了几台物理机部署data node,结果发现新的data node比以前的data node性能差很多。同样的data node配置,同样的查询量,测试结果:CPU低,load非常高,diskIO打满。 最后通过对比系统配置,发现区别是新加入的物理机以前是跑Mong Read More
posted @ 2020-04-06 12:07 软件心理学工程师 Views(1571) Comments(0) Diggs(0)
语言需要不断改进以跟进硬件的更新或满足程序员的期待。所以java也需要演变,不然就会不适应IT产业的发展从而被别的语言淘汰,java语言现在更新到java12,不过业界主流应该还是java7或java8。 Java8中的主要变化反映了它开始远离常侧重改变现有值的经典面向对象思想,而向函数式编程领域转 Read More
posted @ 2020-03-14 23:15 软件心理学工程师 Views(206) Comments(0) Diggs(0)
一个ES索引最大可以支持多少个shard?理论上无限扩展,我推测最大应该是java array的最大长度:Integer.MAX_VALUE。通常业务为了保证查询效率,往往会限制data node上shards的总个数(cluster.routing.allocation.total_shards_ Read More
posted @ 2020-02-23 23:11 软件心理学工程师 Views(7395) Comments(0) Diggs(0)