java与es8实战之六:用JSON创建请求对象(比builder pattern更加直观简洁)

向ES发送请求时,如何创建请求对象呢?官方推荐的builder patter,在面对复杂的请求对象结构时还好用吗?有没有更加直观简洁的方法,尽在本文一网打尽

【实践篇】基于CAS的单点登录实践之路

上个月我负责的系统SSO升级,对接京东ERP系统,这也让我想起了之前我做过一个单点登录的项目。想来单点登录有很多实现方案,不过最主流的还是基于CAS的方案,所以我也就分享一下我的CAS实践之路。

分而治之 -- 浅谈分库分表及实践之路

今天想聊一下分库分表,因为对于快速增长的业务来说,这个是无法回避的一环。之前我在做商城相关的SAAS系统,商品池是一个存储瓶颈,商品池数量会基于租户增长和运营变得指数级增长,短短几个月就能涨到几千万的数据,而运营半年后就可能过亿。而对于订单这种数据,也会跟着业务的成长,也会变得愈发巨大。

从零开始初识机器学习

本篇文章中我们将对机器学习做全面的了解与介绍,其中第一章 初识机器学习分为上下两个小章节,对机器学习是什么、机器学习由来以及机器学习的理论等展开说明。目的是能让即便完全没接触过机器学习的人也能在短时间对机器学习有一个全面了解。

K8S集群中使用JD KMS服务对敏感数据安全加密

KMS,Key Management Service,即密钥管理服务,在K8S集群中,以驱动和插件的形式启用对Secret,Configmap进行加密。以保护敏感数据

【ChatGPT-应用篇】基于chatGPT覆盖测试过程的初步探索

ChatGPT如此火爆之势,作为测试人员对此也颇为好奇,简单的人机对话有哪些可以帮助我们测试工作呢?本文主要谈从测试视角,结合测试流程来看chatGPT的应用。

如何在 Net6.0 中对 WebAPI 进行 JWT 认证和授权

一、简介 我们做微服务开发,或者说做分布式开发,有一项技术我们是避不开的,那就是WebAPI,在 Net6.0中,有两类 WebAPI,一类是极简 WebAPI,它砍掉了很多冗余的东西,更纯粹的是做 API的,也更适合做微服务的开发。另外一类就是我们通常使用的正常 API,这个没得说,也是我们使用最

Spring源码:Bean生命周期(三)

在之前的文章中,我们已经对 `bean` 的准备工作进行了讲解,包括 `bean` 定义和 `FactoryBean` 判断等。在这个基础上,我们可以更加深入地理解 `getBean` 方法的实现逻辑,并在后续的学习中更好地掌握`createBean` 方法的实现细节。

Spring面试攻略:如何展现你对Spring的深入理解

本次面试涉及了Spring框架的多个方面,包括IOC和AOP的理解、Spring容器的启动流程、Bean的创建过程、Bean的线程安全性、循环依赖的处理、事务的处理以及Spring MVC中控制器的线程安全性。通过这些问题的回答,展示了对Spring框架的深入理解和应用经验。同时,也凸显了对面试题目的认真思考和清晰表达的能力。

一文读懂责任分配矩阵,解决你80%的项目难题

成功的项目管理取决于整个团队对角色和职责的理解,使用责任分配矩阵分配和定义角色是使项目保持在正轨并为成功做好准备的好方法。

TiDB与MySQL的SQL差异及执行计划简析

TiDB作为NewSQL,其在对MySQL(SQL92协议)的兼容上做了很多,MySQL作为当下使用较广的事务型数据库,在IT界尤其是互联网间使用广泛,那么对于开发人员来说,1)两个数据库产品在SQL开发及调优的过程中,都有哪些差异?在系统迁移前需要提前做哪些准备? 2)TiDB的执行计划如何查看,如何SQL调优? 本文做了一个简要归纳,欢迎查阅交流。

【问题排查篇】一次业务问题对 ES 的 cardinality 原理探究

小编工作中负责业务的一个服务端系统,使用了 Elasticsearch 服务做数据存储,业务运营人员反馈,用户在使用该产品时发现,用户后台统计的订单笔数和导出的订单笔数不一致!对此进行排查并进行总结

gRPC vs. HTTP:网络通信协议的对比

## 概述 gRPC 和 HTTP 是两种常见的网络通信协议,用于在客户端和服务器之间进行通信。它们具有不同的特点和适用场景,下面对它们进行详细比较。 ## HTTP(Hypertext Transfer Protocol) ### 特点: 1. **简单易用**:HTTP 使用简单的请求方法和状态

MySQL存储过程、索引、分表对比

MySQL存储过程、索引和分表是用于提高查询效率的三种不同方法,它们各自对查询效率有不同的影响和应用场景。以下是它们的对比: MySQL存储过程: 影响查询效率: 存储过程通常不直接影响查询效率,因为它们是用于封装查询逻辑和执行多个SQL语句的数据库对象。存储过程主要有助于减少网络通信的开销,特别是

VSCode中打开NodeJS项目自动切换对应版本的配置

这几年搞了不少静态站点,有的是Hexo的,有的是VuePress的。由于不同的主题对于NodeJS的版本要求不同,所以本机上不少NodeJS的版本。 关于如何管理多个NodeJS版本,很早之前就写过用nvm来管理的相关文章,这里就不赘述了,有需要的可以看这篇[Node.js环境搭建](https:/

前瞻|Java 21 新特性 String Templates(字符串模版)

在日常写Java的时候,对于字符串的操作是非常普遍的,其中最常见的就是对字符串的组织。也因为这个操作非常普遍,所以诞生了很多方案,总下来大概有这么几种: - 使用`+`拼接 - 使用`StringBuffer`和`SpringBuilder` - `String::format` and `Stri

测试自动化的 10 个最佳实践

我们都知道测试自动化对软件开发有好处(就像坚果对我们的身体一样!),很遗憾很多公司在不考虑细微差别的情况下就赶着上线测试自动化。如果您不遵循一些规则,您可能会弄巧反拙。

Spring源码之XML文件中Bean标签的解析2

### 读取XML文件,创建默认bean标签对象的核心代码 ```markdown 在DefaultBeanDefinitionDocumentReader类中的如下方法中: protected void processBeanDefinition(Element ele, BeanDefiniti

宏观上看Spring创建对象的过程

# 宏观上看Spring创建对象的过程 对于对象而言,可以分为**简单对象**和**复杂对象**; - 简单对象 ```markdown 简单对象指可以直接new的对象; Spring在创建这些对象时,是基于反射来完成的。 ``` - 复杂对象 ```markdown 复杂对象指不能直接new的对象

Linux Bash Shell 中变量的 5 个易错点

Linux 中的 Bash 脚本支持对变量的操作,下面咸鱼将介绍 Linux Bash Shell 中关于变量的 5 个易错点 因为编程习惯,这类现象往往发生在大多数使用过其他流行编程语言的程序员身上 变量赋值 对于许多编程语言(例如 Python),变量赋值的时候在等号两边添加空格是一个好的习惯