微服务
分布式演进图,核心知识理论
九八年的尾巴
一个愿意分享和倾听的年轻人
展开
-
单体服务VS微服务系统
为什么从单体服务到微服务转移1.最核⼼的原因是单体服务出现性能瓶颈,如⽇访问量只有⼏⼗万的服务在单体服务可以⽀ 持,C10K问题2.服务故障隔离,保证⾼可⽤(99.99%)微服务也有缺点增加了整个解决方案的复杂度将系统的整合点推移到了服务之间的接⼝,因此这些服务的接⼝需要进⾏良好的定义, 在系统中也要对服务级别达成⼀致,并且还需要定义其他的⾮功能性需求数据一致性问题原本采⽤⼀体性应⽤程序架构的系统被分解为多个⼩型服务时,在原本的⼀体性架构中 集中保存在某处的数据,在新的微服务应⽤中经常会改为保原创 2021-01-28 17:46:14 · 151 阅读 · 1 评论 -
消息总线Bus介绍及使用场景-消息队列和RabbitMQ介绍及安装
接上一章配置中心实战(十七),明显的缺点所在,虽然Config-server拉取配置,服务获取Config-server配置,但无法感知到配置的修改,也就是动态更新什么是消息?一个事件,需要广播或单独传递给某个接口为什么使用这个?配置更新了,但是其它系统不知道是否更新消息队列就是一个存放消息的容器,把要传输的数据放在队列里,实际应用场景有解耦、异步、削峰应用解耦:比如A系统发送数据到BCD三个系统,通过接口发送,如果此时出现E系统也需要这个数据呢?如果C系统又不使用呢?在这种情况下系统耦合,A原创 2020-11-15 20:33:33 · 1037 阅读 · 0 评论 -
微服务下的分布式配置中心讲解
微服务下的分布式配置中心什么是配置中: 一句话:统一管理配置,(如yml里的网关配置,fegin配置等服务配置)快速切换各个环境的配置 问题:如果项目上线,所有的配置都是在项目下的,上线需要去修改一些配置,每个配置修改起来就会非常费事,使用config-server就能一键动态配置修改通过web配置管理界面,配置存储在git或mysql或阿里云git上,Config-server(多节点避免挂掉)拉取配置,服务向Config动态获取配置到本地。相关产品 百度的disconf 地址:htt原创 2020-11-11 20:17:59 · 159 阅读 · 0 评论 -
微服务网关介绍及使用场景
什么是网关?API Gateway 是系统的唯一对外的入口,介于客户端和服务端之间的中间层,处理非业务功能提供路由请求、鉴权、监控、缓存、限流等功能(类似所有请求都会经过的过滤器,类似演唱会过安检,检票员还可以监控有多少人进场,检查进场人员是否合法)(比如下单操作需要用户登陆,在APIGatewy层判断用户是否登陆) 统一接口 智能路由(根据用户发送请求路径,请求对应服务) AB测试、灰度测试 负载均衡、容灾处理(可以知道哪个节点压力大,分发到负载小的节点服务上) 日志埋点(原创 2020-11-11 14:19:15 · 758 阅读 · 0 评论 -
分布式核心知识之熔断、降级
系统负载过高,突发流量或者网络等各种异常情况介绍,常用的解决方案服务熔断机制熔断机制是应对雪崩效应的一种微服务链路保户机制,当扇出链路的某个微服务不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回错误的相应信息。当检测当该节点微服务调用响应正常后恢复调用链路,熔断机制的注解是@HystrixCommand服务熔断就是相当于我们电闸的保险丝,一旦发生服务雪崩的,就会熔断服务,通过维护一个自己的线程池,当线程达到阈值的时候就启动服务降级,如果其他请求继续访问就直接返回fall原创 2020-11-09 20:24:41 · 542 阅读 · 0 评论 -
微服务核心基础-服务发现注册、网关、配置中心、链路追踪、负载均衡、熔断
网关、服务发现注册、配置中心、链路追踪、负载均衡器、熔断1.网关(Zuul):路由转发+过滤器 /api/v1/pruduct 商品服务 /api/v1/order 订单服务 /api/v1/user 用户服务进行检查v1后的路径进行转发过滤器:用户下单前需要检查是否登陆。在原有服务操作进行登陆校验,比如检验更改每个模块里的代码都需要更改。现在使用网关进行拦截过滤(写一次就可以了)2.服务注册发现(Eureka):调用和被调用方的维护每一个服务都往注册中原创 2020-11-10 09:07:23 · 1074 阅读 · 0 评论 -
常见微服务框架
consumer:调用方provider:被调用方一个接口一般都会充当两个角色(不是同时充当)比如:订单调用商品服务,用户又需要调用订单服务 1.dubbo:zookeeper+dubbo+SpringMVC/SpringBoot 16,17年停止了。18年开始维护 配套 通信方式:RPC 注册中心:zookeeper/redis 配置中心:diamond 2.springcloud:全家桶+轻松嵌入第三方组件 配套 通信方式:ht原创 2020-11-10 09:05:10 · 166 阅读 · 0 评论 -
传统架构演进到分布式架构以及数据请求流向讲解
单体应用10多年前:用户访问一个电商系统(所有功能包含在一个project里)>访问数据库问题:商品或者订单存在瓶颈时不能扩展。以前上网用户不多,负载不高,数据量几万几十万,用一个mysql即可分布式架构五六年前(当前也有公司在用):也是单体应用,只是采用集群式的分布式应用用户>负载均衡器(nginx)>好多个电商节点,部署多个(如果用户增多则部署多个)>数据库分主从>也会引入缓存集群像这种架构就可以支持几百万数据量缺点:开发速度慢、启动时间长、依赖庞大等等原创 2020-11-10 08:59:30 · 213 阅读 · 1 评论 -
分布式应用CAP理论知识和注册中心的选择
CAP定理: 指的时一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partitiontolerance(分区容错性) 三者不可同时获得,最多三选二一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(所有节点在同一时间的数据完全一致,越多节点,数据同步越耗时)主库从库,比如用户在主库支付了,但从库未支付可用性(A):负载过大后,集群整体是否还能响应客户端的读写请求。(服务一直可用,而且是正常响应时间)分区容错性(P):分区容忍性,原创 2020-11-10 08:48:55 · 153 阅读 · 2 评论 -
微服务:微服务讲解及常用的服务间调用方式
RPC:(比如userservice调用) 远程过程调用,像调用本地服务(方法)一样调用服务器的服务 支持同步、异步调用 客户端和服务器之间建立TCP连接,可以一次建立一个,也可以多个调用复用一次链接 TCP的支持保持连接,当调用服务的时候不需要每次都进行三次握手才实现。从性能和网络消耗来说RPC都 具备了很好的优势。 RPC数据包小(protobuf) 缺点:编解码,序列化,链接,丢包,协议Resut(HTTp):(http链接调用) http请求,支持多种协议和功能 开原创 2020-11-10 08:46:06 · 1478 阅读 · 0 评论