06 2024 档案
摘要:SpringCloud微服务系列- 分布式能力建设之配置中心 概要 配置中心,顾名思义就是用来统一管理项目中所有配置的系统。 微服务里面,配置中心的思路就是把项目中各种配置、各种参数、各种开关,全部都放到一个集中的地方进行统一管理,并提供一套标准的接口。当各个服务需要获取配置的时候,就来配置中心的接
阅读全文
摘要:SpringCloud微服务系列- 分布式能力建设之微服务网关 概要 在微服务环境中,网关是微服务集群中必不可少的设施之一。 微服务中网关的首要职责,就是以统一的地址对外提供服务,将外部访问这个地址的流量,根据适当的规则路由到内部集群中正确的服务节点之上。也正是因为这样,微服务中的网关,也常被称为“
阅读全文
摘要:SpringCloud微服务系列- 服务间通信之负载均衡 概要 负载均衡是我们处理高并发、缓解网络压力和进行服务器扩容的重要手段之一 负载均衡通器常有两种实现手段,一种是服务端负载均衡器,另一种是客户端负载均衡器。 一、负载均衡的作用 1. 服务端负载均衡 在服务集群内设置一个中心化负载均衡器,比如
阅读全文
摘要:SpringCloud微服务系列- 服务间通信之服务间调用 概述 声明式客户端是一种通过定义接口或注解来声明请求,而不是编写具体的请求逻辑代码的客户端模式。 这种方式简化了与远程服务进行通信的过程,开发者无需手动处理底层的HTTP请求或序列化/反序列化过程。 一、OpenFeign的基本介绍 1.
阅读全文
摘要:SpringCloud微服务系列- 服务间通信之服务治理 一、服务治理 1. 为什么需要服务治理? 在没有进行服务治理前,服务之间的通信是通过服务间直接相互调用来实现的。 2. 在复杂的微服务系统中,服务间直接相互调用会产生什么问题? 微服务系统中服务众多,这样会导致服务间的相互调用非常不便,因为要
阅读全文
摘要:分布式事务框架Seata 概要 Seata(Simple Extensible Autonomous Transaction Architecture)是阿里巴巴开源的一款分布式事务解决方案,主要用于解决微服务架构中的分布式事务问题。Seata 提供了多种事务模式,如 AT(Automatic Tr
阅读全文
摘要:SpringCloud微服务系列-微服务架构进化论 一、微服务架构进化论 1. 单体应用阶段 所有功能模块和组件都在一个单一的代码库中构建和部署。整个应用程序作为一个整体进行开发、测试和部署。 2. 垂直应用阶段(nginx负载均衡) 垂直架构是指将单体架构中的多个模块拆分为多个独立的项目。形成多个
阅读全文
摘要:synchronized 和 ReentrantLock的区别 在讨论synchronized 和 ReentrantLock的区别前,我们先了解一下什么是公平锁和非公平锁。 一、 公平锁和非公平锁 从公平的角度来说,Java 中的锁总共可分为两类:公平锁和非公平锁。但公平锁和非公平锁有哪些区别?孰
阅读全文
摘要:java多线程编程问题以及解决办法 多线程编程虽然可以提高程序的性能和响应速度,但也带来了许多复杂的问题,如竞态条件、死锁、线程安全问题、内存一致性错误等。常用的解决方法包括使用同步机制(如 synchronized 和 ReentrantLock)、线程池、volatile 关键字、以及合适的线程
阅读全文
摘要:CompletableFuture多线程并发处理 概要 一个接口可能需要调用 N 个其他服务的接口,这在项目开发中还是挺常见的。 举个例子:用户请求获取订单信息,可能需要调用用户信息、商品详情、物流信息、商品推荐等接口,如果是串行(按顺序依次执行每个任务)执行的话,接口的响应速度会非常慢。考虑到这些
阅读全文
摘要:Spring- FactoryBean使用/原理 概要 一般情况下,Spring通过反射机制利用的class属性指定实现类实例化Bean。在某些情况下,实例化Bean过程比较复杂,若按照传统的方式,则需要提供大量的配置信息,不够灵活,这时采用编码的方式能得到一个简单的方案。 Spring为此提供了一
阅读全文
摘要:Spring容器系列-bean的生命周期 概要 对于Spring Bean的生命周期来说,可以分为四个阶段,其中初始化完成之后,就代表这个Bean可以使用了,四个阶段如下: 实例化 Instantiation : 为Bean分配内存空间 属性赋值 Populate :将当前类依赖的Bean属性,进行
阅读全文
摘要:Spring容器系列-启动原理(下) 从上一篇文章《Spring容器系列-启动原理(上)》中,介绍了Spring容器初始化的核心方法refresh()的整体情况。这篇文章来详细展开介绍。其中比较重要的方法会标记上*** 一、refresh中的12个方法 1. prepareRefresh 主要作用:
阅读全文
摘要:Spring容器系列-启动原理 Spring 具有非常庞大的体系,但无论多大都是由一个个小的模块组合而来,不管是 SpringMVC 还是 SpringBoot,都是在Spring的基础上延伸而来,因此,看源码要找对方向。 我们知道,在SpringBoot之前,对象的管理和配置都是通过XML的方式来
阅读全文
摘要:locust压测的基本使用 这里介绍的是在本地启动locust以及做后续压测的流程以及各个参数含义 一、启动locust 执行命令 locust -f **.py (python脚本) 如下图: 二、locust的UI界面 1、启动界面 打开locust的web界面,浏览器访问:http://127
阅读全文
摘要:mac下locust的安装 一、locust介绍 1. 定义 Locust是一款易于使用的分布式负载测试工具,完全基于事件,即一个locust节点也可以在一个进程中支持数千并发用户(单机并发能力高),不使用回调,通过gevent使用轻量级过程(即在自己的进程内运行) 2. 特点 1)不需要编写笨重的
阅读全文
摘要:Spring基础 - Spring核心之控制反转(IOC) 概要 我们知道,Spring提供的容器又称为IoC容器。其实,IoC(Inversion of control )不是 Spring 提出来的,它们在 Spring 之前其实已经存在了,只不过当时更加偏向于理论。Spring 在技术层次将这
阅读全文