MicroServices
文章平均质量分 86
JFS_Study
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
展开
-
SpringCloud 相关
SpringCloud 相关原创 2022-03-28 10:14:05 · 1193 阅读 · 0 评论 -
Zookeeper用作注册中心的原理
一、RPC框架中有3个重要的角色:注册中心 :保存所有服务的名字,服务提供者的IP列表,服务消费者的IP列表服务提供者:提供跨进程服务服务消费者:寻找到指定命名的服务并消费。二、什么是ZooKeeperwiki说明:ZooKeeper 主要服务于分布式系统,可以用 ZooKeeper 来做:统一配置管理、统一命名服务、分布式锁、集群管理。使用分布式系统就无法避免对节点管理的问题(需要实时感知节点的状态、对节点进行统一管理等等),而由于这些问题处理起来可能相对麻烦和提高了系统的复杂性,Z原创 2022-01-13 14:05:09 · 3783 阅读 · 0 评论 -
SpringBoot 启动流程
在 Spring Boot 项目中每次调用接口前都会先启动主启动类,主启动类启动后会进入 main 方法中,并在方法中由 SpringApplication 调用 run(),方法中形参传入当前类的 class 对象以及 main 方法的 args 参数。下一步进入 run() 中,在 run() 中还调用了另一个 run( )。Spring Boot 启动程序执行 SpringApplication.run(),创建了一个 SpringApplication 对象并执行 run 方法。一、Spring原创 2022-01-13 13:54:26 · 174 阅读 · 0 评论 -
SpringBoot starter
Spring Boot 最大的特点是无需 XML 配置文件,能自动扫描包路径装载并注入对象,并能做到根据 classpath 下的 jar 包自动配置。一、@Configurationorg.springframework.context.annotation.Configuration从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationCont原创 2022-01-13 13:48:02 · 1080 阅读 · 0 评论 -
SpringBoot 请求处理流程
SpringBoot 请求处理流程原创 2022-09-03 10:47:28 · 4635 阅读 · 0 评论 -
SpringBoot 自动配置原理
SpringBoot 自动配置原理原创 2022-10-26 23:40:56 · 224 阅读 · 0 评论 -
用缓存的原因:高性能和高并发
一、简述缓存,是解决性能问题的一种必不可少的方法。简单的说,cache 就是为了提升系统性能而开辟的一块内存空间。缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问使用。缓存在很多系统和架构中都用广泛的应用,例如:CPU缓存操作系统缓存本地缓存分布式缓存HTTP缓存数据库缓存等等,可以说在计算机和网络领域,缓存无处不在。可以这么说,只要有硬件性能不对等,涉及到网络传输的地方都会有缓存的身影。二、高性能用户第一次访问数据库中的某些数据,这个过程会比较慢。因为数据是原创 2022-01-14 10:34:37 · 565 阅读 · 0 评论 -
你的系统如何支撑高并发
一、概述高并发系统各不相同,比如每秒百万并发的中间件系统、每日百亿请求的网关系统、瞬时每秒几十万请求的秒杀大促系统。他们在应对高并发的时候,因为系统各自自身特点的不同,所以应对架构都是不一样的。另外,比如电商平台中的订单系统、商品系统、库存系统,在高并发场景下的架构设计也是不同的,因为背后的业务场景什么的都不一样。文章提供一个回答这类问题的思路,不涉及任何复杂架构设计。二、一个最简单的系统架构假设刚刚开始你的系统就部署在一台机器上,背后就连接了一台数据库,数据库部署在一台服务器上。给个例子,你的系原创 2022-01-14 10:45:52 · 565 阅读 · 0 评论 -
如何处理Dubbo调用超时
#一、简述同步调用是一种阻塞式的调用方式,即 Consumer 端代码一直阻塞等待,直到 Provider 端返回为止。dubbo默认的协议是netty, Netty 是 NIO 异步通讯机制,那么服务调用是怎么转化为同步的呢?Dubbo是阿里开源的RPC框架,因为基于接口开发支持负载均衡、集群容错、版本控制等特性,因此现在有很多互联网公司都在使用Dubbo。1️⃣Dubbo有三个级别的超时设置分别为:①针对方法设置超时时间②在服务方设置超时时间③在调用方设置超时时间2️⃣一般超时是调用端发生在原创 2022-01-13 14:20:49 · 8728 阅读 · 1 评论 -
Dubbo 相关
一、Dubbo 是什么?Dubbo 是阿里巴巴开源的基于 Java 的高性能 RPC 分布式服务框架,现已成为 Apache 基金会孵化项目,官网:http://dubbo.apache.org。dubbo 是一个分布式框架,远程服务调用的分布式框架,其核心部分包含:1️⃣集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。2️⃣远程通讯:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交原创 2022-01-13 14:21:19 · 1333 阅读 · 0 评论 -
Sentinel 对 Dubbo 服务的降级与限流
一、Sentinel 是什么Sentinel 是阿里中间件团队开源的,面向分布式服务架构的轻量级流量控制产品,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助用户保护服务的稳定性。Sentinel 分为两个部分:核心库(Java 客户端)不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对 Dubbo/Spring Cloud 等框架也有较好的支持。控制台(Dashboard)基于 Spring Boot 开发,打包后可以直接运行,不需要额外的 Tomcat 等应原创 2022-02-23 10:57:40 · 1151 阅读 · 0 评论 -
分布式事务
一、简述分布式事务就是要在分布式系统中实现事务,它其实是由多个本地事务组合而成。可以理解为事务的操作位于不同的节点,需要保证事务的 AICD 特性。例如在下单场景下,库存和订单如果不在同一个节点上,就涉及分布式事务。如何应对呢?二、两阶段提交(Two-phase Commit,2PC)两阶段提交是一种强一致性设计,通过引入协调者(Coordinator)来协调参与者(也可称之为各本地资源)的提交和回滚,并最终决定这些参与者是否要真正执行事务。两阶段分别指的是准备(投票)阶段和提交阶段。1️⃣运行过程原创 2022-02-23 10:52:06 · 127 阅读 · 0 评论 -
登录限流实现
一、问题描述某个系统的登录接口在被刷。现要建立一个防刷/限流机制,根据登录 IP,30 分钟之内,只能发起 30 次登录请求。如果超过该限制,则整个 IP 限制登录请求 30 分钟。二、设计思路这道题主要是设计两个 Map:1️⃣第一个 Map,记录每个 IP 及其登录的时间。题目要求,30 分钟之内只能登录 30 次,所以 Map 的 key 为 IP,value 可以设计一个队列,队列长度 30,队列元素为每次的登录时间。2️⃣第二个 Map,记录禁止登录的 IP 及禁止开始时间。Map 的原创 2022-02-23 10:48:10 · 637 阅读 · 0 评论 -
分布式限流
限流是保证系统高可用的重要手段。一、什么是限流?为什么要限流?进地铁站排队,为什么要这样摆长龙转圈圈?答案就是为了限流!因为一趟地铁的运力是有限的,一下挤进去太多人会造成站台的拥挤、列车的超载,存在一定的安全隐患。程序也是一样,它处理请求的能力也是有限的,一旦请求多到超出它的处理极限就会崩溃。为了不出现最坏的崩溃情况,只能耽误一下大家进站的时间。由于互联网公司的流量巨大,系统上线前会做一个流量峰值的评估,尤其是像各种秒杀促销活动,为了保证系统不被巨大的流量压垮,会在系统流量到达一定阈值时,拒绝掉一部分原创 2022-01-17 11:10:31 · 1945 阅读 · 0 评论 -
分布式Key/Value存储系统---Tair
一、简述tair 是淘宝高性能、可靠、可扩展的开源的分布式 Key/Value 存储系统。分为持久化和非持久化两种使用方式:非持久化的 tair 可以看成是一个分布式缓存;持久化的 tair 将数据存放于磁盘中。作为一个分布式系统,Tair 由一个中心控制节点(config server)和一系列的服务节点(data server)组成:config server 负责管理所有的 data server,并维护 data server 的状态信息。为了保证高可用(High Available),con原创 2022-01-17 11:07:00 · 1199 阅读 · 0 评论 -
高速服务框架HSF
一、简述HSF(High-speed Service Framework),是在阿里巴巴内部广泛使用的分布式 RPC 服务框架。HSF 连通不同的业务系统,解耦系统间的实现依赖。HSF 从分布式应用的层面,统一了服务的发布与调用方式,从而帮助用户更加方便、快速地开发分布式应用,以及提供或使用公共功能模块。HSF 为用户屏蔽了分布式领域中的各种复杂技术细节,如远程通讯、序列化实现、性能损耗、同步与异步调用方式的实现等。二、架构设计HSF 作为一个纯客户端架构的 RPC 框架,没有服务端集群,所有 H原创 2022-01-17 11:03:57 · 1753 阅读 · 0 评论 -
如何避免重复提交问题
一、简述所谓幂等性,就是一个接口,多次发起同一个请求,该接口得保证结果是准确的,比如不能多扣款、不能多插入一条数据、不能将统计值多统计 1。这就是幂等性。1️⃣在编程中常见的幂等①select 查询天然幂等②delete 删除也是幂等,删除同一个多次效果一样③update 直接更新某个值的,幂等④update 更新累加操作的,非幂等⑤insert 非幂等操作,每次新增一条2️⃣产生原因:由于重复点击或者网络重发①点击提交按钮两次②点击刷新按钮③使用浏览器后退按钮重复之前的操作,导致重复原创 2022-01-17 10:54:25 · 1144 阅读 · 0 评论 -
分布式 锁
分布式实现全局锁的关键:用一个全局唯一的资源来满足资源竞争的顺序执行和原子性:1️⃣使用数据库实现。2️⃣使用缓存实现。一、Java 原生锁的使用在说分布式锁之前,先了解下 Java 的 synchronized,这种加锁方式可以针对某个方法或者某个代码块进行加锁,如:public void doInfo (String uid) { synchronized(uid.intern()) { //TODO }}比如甲进来执行了 doInfo(),且还在 synchronized 代码原创 2022-01-17 09:35:23 · 709 阅读 · 0 评论 -
分布式理论:CAP 和 Base
一、什么是 CAP 定理2000 年的时候,Eric Brewer 教授提出了 CAP 猜想,2年后,被 Seth Gilbert 和 Nancy Lynch 从理论上证明了该猜想的可能性。从此,CAP 理论正式在学术上成为了分布式计算领域的公认定理。并深深的影响了分布式计算的发展。CAP 理论表明,一个分布式系统不可能同时满足一致性(Consistency),可用性(Availability)和分区容错性(Partition tolerance)这三个基本需求,最多只能同时满足其中的2个。什么是分原创 2022-01-14 10:52:04 · 331 阅读 · 0 评论 -
Dubbo的调用过程及工作原理
一、图解节点角色说明:1️⃣Container:服务运行容器。2️⃣Provider:暴露服务的服务提供方。3️⃣Consumer:调用远程服务的服务消费方。4️⃣Registry:服务注册与发现的注册中心。服务提供者先启动 start,然后注册 register 服务。消费订阅 subscribe 服务,如果没有订阅到自己想获得的服务,它会不断的尝试订阅。新的服务注册到注册中心以后,注册中心会将这些服务通过 notify 到消费者。5️⃣Monitor:统计服务的调用次数和调用时间的监控中原创 2022-01-12 15:25:39 · 802 阅读 · 0 评论 -
软负载均衡和硬负载均衡
一、负载均衡(Load Balance)负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡,其意思就是分摊到多个操作单元上进行执行,例如 Web 服务器、FTP 服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。二、软负载均衡软件负载均衡则是通过在服务器上安装的特定的负载均衡软件或是自带负载均衡模块完成对请求的分配派发。常用的负载均衡策略:1️⃣轮询非常经典的负载均衡原创 2022-01-12 15:23:39 · 2085 阅读 · 0 评论 -
单机架构、集群架构与分布式架构
一、图解二、理解集群:同一个业务,部署在多个服务器上(多个人在一起做同样的事)分布式:一个业务拆分为多个子业务,部署在多个服务器上(多个人在一起做不同的事)小饭店原来只有一个厨师,备料洗菜切菜炒菜全干。后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,两个厨师的关系是集群。为了让厨师专心炒菜,把菜做到极致,再请了个配菜师负责备料,备菜,切菜…厨师和配菜师的关系是分布式。一个配菜师也忙不过来了,又请了个配菜师,两个配菜师关系是集群。一个配菜师因故请假了,但是其余的配菜师原创 2022-01-12 15:23:00 · 446 阅读 · 0 评论 -
Rest和RPC的区别
一、概述接口调用通常包含两个部分,序列化和通信协议:1️⃣常见的序列化协议包括 json、xml、hession、protobuf、thrift、text、bytes 等;2️⃣通信协议比较流行的是 http、soap、websockect。首先解释下两种接口调用:1️⃣Rest:严格的说接口很规范,操作对象即为资源,对资源的四种操作(post、get、put、delete),并且参数都放在 URL 上。不严格的说 Http+json、Http+xml,常见的 http api 都可以称为 Res原创 2022-01-12 14:25:38 · 195 阅读 · 0 评论 -
什么是RPC(Remote Procedure Call)
一、概述RPC ——远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC 协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在 OSI 网络通信模型中,RPC 跨越了传输层和应用层。RPC 使得开发包括网络分布式多程序在内的应用程序更加容易。RPC 采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调原创 2022-01-12 14:18:48 · 2682 阅读 · 0 评论