微服务知识结构
2021-07-06 11:43:04 73 举报
AI智能生成
微服务的知识结构网
作者其他创作
大纲/内容
模型设计
DDD(Domain-Driven Design 领域驱动设计)
一致性算法/协议
Raft
Paxos
Gossip
网关
Netflix Zuul
Spring Cloud Gateway
OpenRestry Kong
Go Tyk
Node.js
狭义负载均衡
LVS
Nginx
Ribbon
HAProxy
traefik
消息系统
ActiveMQ
JMS实现
RabbitMQ
Apache Kafka
RocketMQ
ZeroMQ
PhxQueue
CMQ
Ckafka
NSQ
beanstalkd
消息队列协议
AMQP
MQTT
STOMP
XMPP
分布式事务模型
X/Open DTP(XA协议为支架)
二阶段提交协议 2PC (Two-phaseCommit)
AP(Application Program)
TM(Transaction Manager)
RM(Resource Manager)
TCC (Try Confirm Cancel)
二阶段提交协议 2PC (Two-phaseCommit)
三段业务逻辑
Try 业务检测和预留资源
Confirm 使用预留资源执行业务逻辑
Cancel 释放预留资源
限制条件
要求 Comfirm 和 Cancel 阶段 事务满足幂等
把资源层的隔离性上升到业务层,放宽了一致性要求,确保高可用,提高性能
定制化程度高,开发成本高
saga
Long Lived Transaction(长活事务)
没有预留动作,每个子事务直接提交数据库
恢复策略
补偿所有已完成的事务(backward recovery)
重试失败的事务(forward recovery)
限制条件
只允许两个层次,全局事务和简单子事务
最外层不能满足原子性,需要在自然独立的行为场景下实现原子性
子事务是独立的原子行为
由于 saga 可能宕机,所以设计的子事务和补偿事务最好幂等
seata
RPC 服务
grpc
中间件
Nepxion Discovery (对Spring Cloud的服务注册发现的增强中间件)
Netflix Hystrix (隔离、熔断、降级工具)
Fescar Seata(分布式事务中间件)
工具
ETL 工具
kettle
Spoon
Pan
CHEF
Kitchen
CI&CD 工具
Jenkins
Continuous Integration(CI)持续集成
Continuous Deployment(CD)持续部署
Continuous delivery(CD)持续交付
基于web界面的平台
系统管理工具
lstio
云服务
容器引擎
vmware
Lmctfy
Rocket
Docker
容器 ip 解决方案
SDN
Flannel
Calico
Weave
vxlan
bridge
Pipework
Open vSwitch
网络协议
DHCP(Dynamic Host Configuration Protocol)
容器开放接口规范
CRI(Container Runtime Interface)
CNI(Container Network Interface)
OCI(Open Container Initiative)
容器治理
docker-compose(配置文件来管理多个Docker容器)
Kubernetes(k8s)
Kubelet
cAdvisor(容器监控)
实时监控
性能数据采集
Heapster(容器集群监控和性能分析工具)
docker 仓库
Harbor
收集工具
日志收集方案
log-pilot
数据收集
Telegraf
cAdvisor
系统的实时监控以及可视化展示工具
Grafana
服务网格
Conduit
轻量级
面向于 Kubernetes
分布式系统基础架构(微服架构)
Apache Hadoop Core
生态
Ambari 基于Web的工具,支持Apache Hadoop集群的供应、管理和监控
Zookeeper 分布式协作服务
HDFS 分布式文件系统
Flume 日志收集工具
Pig 数据流处理
Hive 数据仓库
Mahout 数据挖掘算法库
HBase 实时分布式数据库
Sqoop 数据库ETL工具
MapReduce 分布式计算框架
Alibaba Dubbo
开源RPC服务框架
Alibaba HSF
RPC服务框架
Apache Flink
Flink ML Flink的机器学习库
JBoss Netty
Apache servicecomb
Service Mesh(服务网格)
linkerd
Istio
网络代理
envoy
分布式系统分析
技术实现
Java Agent 埋点
开源平台
pinpiont
Twitter Zipkin
Google Dapper
Apache SkyWalking
大数据处理
Apache Storm(分布式实时大数据处理系统)
大规模数据运算引擎
Apache Spark
Hadoop MapReduce
数据仓库
ETL(Extract-Transform-Load)
STD
ODS
DW
DM
注册中心
Spring Cloud Eurake
alibaba Nacos
Golang Consul
Apache Zookeeper
Coreos etcd
Airbnb SmartStack
配置中心
携程 Apollo
Spring Cloud Config
淘宝 Diamond
百度 Disconf
存储产品
缓存
Vmware Redis
key-value存储系统
缓存在内存中,周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件
master-slave(主从)同步数据
数据持久化
RDBMS
MySQL
Oracle
NoSQL
MongoDB
Google Bigtable
HBase (Apache Hadoop Database)
NewSQL
TiDB
时序数据库
influxDB
TDengine
文件系统
Ceph
FastDFS
MooseFS
连接池
DBCP
Druid
c3p0
BoneCP
Proxool
JBoss DataSource
分布式数据库
cockroachDB
分布式解决方案
分布式 Redis 解决方案(CODIS)
Codis Proxy
客户端连接的 Redis 代理服务
本身是无状态
Codis Manager (codis-config)
添加/删除 Redis 节点, 添加/删除 Proxy 节点,发起数据迁移等
自带 Http Server,用户可以直接在浏览器上观察 Codis 集群的运行状态
Codis Redis (codis-server)
Codis 项目维护的一个 Redis 分支
基于 Redis 2.8.13 开发
ZooKeeper
存放数据路由表和 codis-proxy 节点的元信息
日志收集解决方案
ELK
Elasticsearch 搜索服务器
Filebeat 轻量级的日志收集处理工具
Logstash 服务器端数据处理管道
Kibana 分析和可视化平台
Cloudera Flume
Apache HDFS
压力测试
Apache ab
TCPCopy
Apache JMeter
0 条评论
下一页