本专区由 服务端 团队提供资讯和技术支持,欢迎社区成员申请加入管理小组。
> 目前SpringBoot系列框架非常流行,大多数开发都是基于前后端分离的模式进行开发,这种过程中势必会涉及到大批量的API调试,到目前为止,IntelliJ IDEA是Java软件开发最多使用的开发工具,最近我在IntelliJ IDEA插件市场下找到了一块非常好用的插件**Restful Fast Request**,细节非常到位,说它是IDEA版的Postman也不为过,推荐给大家! # 什么是Restful Fast Request Restful Fast Request 是idea版Postman。它是一个强大的r...
这几天是Spring版本日,很多**Spring**工件都发布了新版本, **Spring Framework 6.0.0** 发布了第 4 个里程碑版本,此版本包含所有针对 5.3.20 的修复补丁,以及特定于 6.0 分支的 39 项修复和改进。而今天**Spring Boot 2.7.0**和**Spring Security**的一个分支都发布了新版本,尤其**Spring Boot 2.7.0**,它是一个非常重要的版本。 ## Spring Boot 2.7.0 今天最重要的是 **Spring Boot 2.7.0** 的发布,此版本添加了大量新功...
## 一、相似之处:Lock锁 vs Synchronized 代码块 Lock锁是一种类似于synchronized 同步代码块的线程同步机制。从Java 5开始`java.util.concurrent.locks`引入了若干个Lock锁的实现类,所以通常情况下我们不需要实现自己的锁,重要的是需要知道如何使用它们,了解它们实现背后的原理。 Lock锁API的基本使用方法和Synchronized 关键字大同小异,代码如下 ~~~ Lock lock = new ReentrantLock(); //实例化锁 //lock.lock(); //上锁...
sqlx是Golang中的一个知名三方库,其为Go标准库database/sql提供了一组扩展支持。使用它可以方便的在数据行与Golang的结构体、映射和切片之间进行转换,从这个角度可以说它是一个ORM框架;它还封装了一系列地常用SQL操作方法,让我们用起来更爽。 # sqlx实战 这里以操作MySQL的增删改查为例。 ## 准备工作 先要准备一个MySQL,这里通过docker快速启动一个MySQL 5.7。 ```go docker run -d --name mysql1 -p 3306:3306 -e MYSQL_...
高并发、多线程一直是**Java**编程中的难点,也是面试题中的要点。**Java**开发者也一直在尝试使用多线程来解决应用服务器的并发问题。但是多线程并不容易,为此一个新的技术出现了,这就是虚拟线程。 ## 传统多线程的痛点 但是编写多线程代码是非常不容易的,难以控制的执行顺序,共享变量的线程安全性,异常的可观察性等等都是多线程编程的难点。 如果每个请求在请求的持续时间内都在一个线程中处理,那么为了提高应用程序的吞...
## 导语 同一份逻辑,不同人的实现的代码性能会出现数量级的差异; 同一份代码,你可能微调几个字符或者某行代码的顺序,就会有数倍的性能提升;同一份代码,也可能在不同处理器上运行也会有几倍的性能差异;**十倍程序员** 不是只存在于传说中,可能在我们的周围也比比皆是。十倍体现在程序员的方法面面,而代码性能却是其中最直观的一面。 本文是《如何写出高性能代码》系列的第二篇,本文将告诉你如何利用数据的几个...
Nacos 作为配置中心,当应用程序去访问Nacos动态获取配置源之后,会缓存到本地内存以及磁盘中。 由于Nacos作为动态配置中心,意味着后续配置变更之后需要让所有相关的客户端感知,并更新本地内存! 那么这个功能是在哪里实现的呢? 以及它是采用什么样的方式来实现配置的更新的呢? 我们一起来探索一下源码的实现! # 客户端配置缓存更新 当客户端拿到配置后,需要动态刷新,从而保证数据和服务器端是一致的,这个过程是如何实现...
OpenFeign是一个远程客户端请求代理,它的基本作用是让开发者能够以面向接口的方式来实现远程调用,从而屏蔽底层通信的复杂性,它的具体原理如下图所示。  在今天的内容中,我们需要详细分析OpenFeign它的工作原理及源码,我们继续回到这段代码。 ```java @Slf4j @RestController @RequestMapping("/order") public ...
在我的关于Tomcat容器介绍的文章中,介绍了Tomcat容器的工作原理,我们知道Tomcat容器在收到请求之后,会把请求处理为Request/Response对象,交给Servlet实例处理。对于Spring的Web应用,得到Tomcat容器的请求之后会交给DispatcherServlet去处理。DispatcherServlet是Spring Web应用处理请求的核心组件,本文会介绍DispatcherServlet的工作原理及关键源码,本文主要参考了Spring的[官方文档](https://docs.spring.io/spring-fra...
### 欢迎访问我的GitHub [https://github.com/zq2599/blog_demos](https://github.com/zq2599/blog_demos) 内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等; ### 本篇概览 - 在[《三分钟:极速体验JAVA版目标检测(YOLO4)》](https://blog.csdn.net/boling_cavalry/article/details/120819464)一文中,咱们体验了YOLO4强大的物体识别能力,如下图,原图中的狗子、人、马都被识别并标注出来了: ...
 Eureka-Server是如何判断一个服务不可用的? > Eureka是通过心跳续约的方式来检查各个服务提供者的健康状态。 实际上,在判断服务不可用这个部分,会分为两块逻辑。 1. Eureka-Server需要定期检查服务提供者的健康状态。 2. Eureka-Client在运行过程中需要定期更新注册信息。 Eureka的心跳续约机制如下图所示。 ![image-202111201632...
大家好,我是张晋涛。 Cilium 是一个基于 eBPF 技术,用于为容器工作负载间提供安全且具备可观测性的网络连接的开源软件。 如果你对 Cilium 还不太了解,可以参考我之前的两篇文章: K8S生态周报| Google 选择 Cilium 作为 GKE 下一代数据面 Cilium 上手实践 最近 Cilium v1.11.0 正式发布了,增加 Open Telemetry 的支持以及其他一些增强特性。同时,也宣布了 Cilium Service Mesh 的计划。当前 Cilium Service Mesh 正处于测试...
大家好,我是张晋涛。 目前我们所提到的容器技术、虚拟化技术(不论何种抽象层次下的虚拟化技术)都能做到资源层面上的隔离和限制。 对于容器技术而言,它实现资源层面上的限制和隔离,依赖于 Linux 内核所提供的 cgroup 和 namespace 技术。 我们先对这两项技术的作用做个概括: cgroup 的主要作用:管理资源的分配、限制; namespace 的主要作用:封装抽象,限制,隔离,使命名空间内的进程看起来拥有他们自己的全局资源; 这...
大家好,我是张晋涛。 目前我们所提到的容器技术、虚拟化技术(不论何种抽象层次下的虚拟化技术)都能做到资源层面上的隔离和限制。 对于容器技术而言,它实现资源层面上的限制和隔离,依赖于 Linux 内核所提供的 cgroup 和 namespace 技术。 我们先对这两项技术的作用做个概括: cgroup 的主要作用:管理资源的分配、限制; namespace 的主要作用:封装抽象,限制,隔离,使命名空间内的进程看起来拥有他们自己的全局资源; 在...
大家好,我是张晋涛。 目前已经确定, dockershim 的代码将在 Kubernetes v1.24 版本中被正式从 Kubernetes 的代码仓库移除,预计新版本明年 4 月左右发布。对于喜欢尝鲜的小伙伴,dockershim 的代码下个月就将从 Kubernetes 的源代码仓库中正式移除了,届时可以尝试使用 alpha 版本进行测试使用,或者自行编译。 老粉们可能在去年看过我发布的 《K8S 弃用 Docker 了?Docker 不能用了?别逗了!》,在其中我详细的说明了所谓的...
作者:Dustin Specker 译者:米开朗基杨 译者简介:KubeSphere 布道师,目前就职于青云科技 KubeSphere 团队,是一名云原生技术爱好者,专注于 Kubernetes 与 KubeSphere 等云原生技术干货分享,你可以通过微信与我联系,我的微信号是 cloud-native-yang,欢迎前来围观我的朋友圈。 Kubernetes 中的 Service 就是一组同 label 类型 Pod 的服务抽象,为服务提供了负载均衡和反向代理能力,在集群中表示一个微服务的概念。kube-pr...
前言 在之前的文章中,笔者介绍过 AWS CDK ,其是 AWS 开源的一款开发框架,使用常用的编程语言(如 TypeScript、Python 等),利用函数快速构建代码框架来配置、更新和管理云资源,但只支持 AWS 资源的定义和维护,其他公有云无法使用。而 Pulumi 可以以同样的方式在其他公有云上完成与 AWS CDK 类似的工作。 介绍 Pulumi 是一个现代的基础设施设施即代码(IaC)平台。它利用现有的编程语言(TypeScript、JavaScript、Python、...
大家好,我是张晋涛。 在前两篇内容中,我分别为大家介绍了 GitOps 的概念,以及用于实施 GitOps 的工具 Argo CD。本篇我们将以一个示例项目为大家介绍 Argo CD 的实践。 创建集群 我们通过 KIND(Kubernetes in Docker)工具创建一个用于本地测试的 Kubernetes 集群。使用如下的配置文件,创建一个包含一个 control plane 和三个 work 的集群。 kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control...
“ 「K8S 生态周报」内容主要包含我所接触到的 K8S 生态相关的每周值得推荐的一些信息。欢迎订阅知乎专栏「k8s生态」[1]。” Kubernetes v1.22 已经在今天正式发布了,这是 2021 年的第二个正式发布的版本。此版本中共包含 53 项增强更新,其中 13 项达到 stable,24 项达到 beta 还有 16 项为 alpha。当然,也有 3 项特性被标记为废弃。 从今年的 4 月份,Kubernetes 的发布节奏由原来的每 3 个月一个版本修改成了每 4 个月一个...