微服务架构深入学习--总体概述

一、微服务设计的康威法则

传统方式的问题:一个项目,多个团队围绕着一个模块进行开发时候,如果某个团队对该模块进行了升级或者优化,就会导致其他团队也要进行整体优化,这样成本很高;

康威法则:设计系统的组织,其产生的设计和架构,等价组织的组织架构。简单来说就是一个团队围绕一个模块来进行开发。

二、微服务引入的时机

企业项目在刚刚创建的时候,并不是适合马上就引入微服务项目,因为项目初期并不知道各个模块具体的划分如何,而且容易出现生产问题,建议先实现单模块或者多模块开发,然后在根据业务复杂度情况,慢慢讲业务剥离开来,形成一个单独的模块;

三、微服务的中台战略

又称为“大中台,小前台”

四、微服务网关

在过滤器的三个阶段中,各个阶段的数据通信是通过request context实现的。

五、Netfix架构布局

六、集中式配置

例如spring cloud config、携程的apollo,通过将整个项目的配置文件单独用一个服务的进行管理,其他的微服务只需要拉去就可以了。实现的高内聚、低耦合。

七、RPC与REST的比较

  RPC REST
耦合性 强耦合 松散耦合
消息协议 二进制thrift、protobuf 文本XML,JSON
通讯协议 TCP HTTP/HTTP2
性能 一般低于RPC
接口契约IDL thrift、protobuf Swagger
客户端 强类型客户端,一般自动生成多语言 一般HTTP客户端可访问,可自动生成强类型
案例 Dubbo、motan、Trars、grpc、thrift spring MVC/Boot、Jax-rs
开发者友好 客户端比较方便,但二进制消息不可读 文本消息开发者可读,浏览器直接接收
对外开放 对外一般需要转换成REST/文本协议 直接可以对外开放

八、调用链监控

扫描二维码关注公众号,回复: 8607950 查看本文章
  CAT ZipKin Pinpoint
调用链可视化
报表 非常丰富
ServerMap 简单依赖图 简单
埋点方式 侵入 侵入 不侵入字节码增强
heartbeat
Mertic
Java/net客户端支持 只有java
DashBoard中文支持

社区支持 好,文档较丰富,作者在携程点评 好,文档一般,无中文社区 一般,文档缺,无中文社区
国内案例 携程 京东,阿里不开源 暂无
源码祖先 eBay CAL-Centralized  application Logging Google Dapper Google Dapper
发布了469 篇原创文章 · 获赞 94 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/qq_37909508/article/details/102903043
今日推荐