开发笔记 -- 分布式系统架构&组件&DevOps
一、分布式系统架构
分布式架构主要由一系列分布式组件配合横向拆分的多服务组成
具体对应springcloud标准的实现:springcloud-netfix, springcloud-alibaba
下图为基础springcloud-netfix到springcloud-alibaba的升级
组件调用关系示图:
* 组件说明
1.Consul【微服务管理工具】是一个服务网格(微服务间的 TCP/IP,负责服务之间的网络调用、限流、熔断和监控)解决方案,它是一个一个分布式的,高度可用的系统,而且开发使用都很简便。它提供了一个功能齐全的控制平面,主要特点是:服务发现、健康检查、键值存储、安全服务通信、多数据中心。 2.微服务的组件: 网关(lua/gateway/zuul):接收外部请求,处理外部请求的转发与负载均衡,处理限流跨域等; 注册中心(nacos/zookeeper/eureka):注册发现并维护内部服务,平衡客户端请求; 配置中心(config/nacos):统一管理多服务配置信息; 熔断器(hystrix):微服务容错,处理服务降级; 内部服务调用者(feign):封装多服务内部调用接口; 内部请求处理(Ribbon):执行内部请求调用,分担请求压力,自定义负载均衡; 3.skywalking链路追踪 4.Prometheus 是一个开源的服务监控系统和时间序列数据 + Grafana时序数据展示 5.Sonar(SonarQube)是一个开源平台,用于管理源代码的质量 6.ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成,日志系统 7.微服务的理解:架构解耦方式,可以类比提取工具类
* springcloud-alibaba官方
https://spring.io/projects/spring-cloud-alibaba
* springcloud-netfix官方
https://spring.io/projects/spring-cloud-netflix
二、注册中心
nacos:https://nacos.io/zh-cn/docs/what-is-nacos.html
apollo: https://developer.apollo.auto/developer_cn.html
consul: https://yushuai-w.gitbook.io/consul/
注册中心对比:https://developer.aliyun.com/article/766176
分布式协议:https://www.cnblogs.com/zhang-qc/p/8688258.html
三、DevOps
企业组件模式: gitlab + jenkins + docker + k8s + skywalking + ELK