微服务专题—开篇


原文: 微服务专题—开篇
thumbnail: /thumbnails/zixingche.jpg
date: 2019-04-10 19:36:57


[TOC]

前言

2016年在公司有幸接触到微服务, 并参与了公司基于微服务架构的产品开发, 但是...

  • 开发内容偏业务, 那时我甚至还没有搞清楚分布式, 集群, 微服务...几者之间的联系和区别
  • 对微服务的认识仅限于Spring Cloud技术栈中某几个组件的简单使用和配置...

正如那句标语Coordinate Anything, Spring Cloud为什么简化了分布式开发, 那时完全说不清楚




后来几年里, 有时会关注Spring Boot, Spring Cloud的版本迭代, 尝试去做一些Demo例如xx整合xx

遗憾的是, 依旧记录的是一堆代码, 配置... 未把一些感受和思考及时记录下来

所以在清理电脑时, 把相关的学习代码全部删掉了.

只留下github上一个两年前提交的学习项目, 虽然版本很老旧, 但是组件整合比较完整

  • https://github.com/thank037/spring-cloud-study

记不太清, 当时好像是学习 周立 的Spring Cloud教程, 感谢他们的分享!

所以准备开一个专题, 来记录自己目前阶段对于微服务架构的思考与各开源组件的选型与实践


目的

微服务是一种架构风格, 所以专题内容不局限于代码实践, 不局限于Spring Cloud技术栈!

主要目的:

  • 对微服务架构体系有较为全面的认识
  • 对微服务技术栈中各组件的架构原理进行深入理解
  • 理解和实践微服务技术栈中各组件的业务与运维场景
  • 能够从源码中获得一些细节和深层次机制


目录(持续更新)

开篇临时列出能想到的目录, 在补充阶段目录标题修改为文章链接

服务注册与发现

  • 分布式系统中服务注册与服务发现的主流技术方案

  • 服务发现的需求与模式

  • [源码分析——服务发现组件Netflix Eureka](https://xiefayang.com/2019/04/16/源码分析—服务发现组件Netflix Eureka/)

  • [源码分析——客户端负载Netflix Ribbon](https://xiefayang.com/2019/04/23/源码分析——软负载实现Netflix Ribbon/)

  • Ribbon——与其它组件超时和重试

  • Consul基本使用

  • 实践: Consul+Docker服务注册与发现

服务间的通讯

  • 通讯模型
  • 服务间的 IPC 机制及各方案对比: HTTP, RPC
  • 实践: 服务间通讯gRPC

服务网关

  • 服务网关的要素, 功能, 架构原理

  • 业界流行的服务网关方案, 实践

  • 核心功能重点源码阅读: Netflix Zuul, Zuul 2.0, Spring Cloud Gateway

配置中心

  • 核心概念与架构原理

  • 基础应用场景与高级特性

  • 理解与实践: 携程Apollo

服务跟踪

  • 分布式追踪系统架构

  • OpenTracing理论基础及其数据模型

  • Spring Cloud Sleuth, zipkin

  • CAT的理解与实践

  • 实践: 分布式链路追踪与展示: Sleuth + Zipkin + Kafka + Elasticsearch + Kibana

服务容错

  • 场景实践: 服务调用熔断, 服务降级, 容错限流

  • 理论基础: 断路器模式

  • Netflix Hystrix原理

  • 实践: Hystrix Dashboard

服务监控解决方案

  • 实践: Prometheus + Grafana

微服务安全

  • TODO

微服务持续集成与部署实践

  • TODO: 另开专题

你可能感兴趣的:(微服务专题—开篇)