|
|
51CTO旗下网站
|
|
移动端

实用架构技术,阿里P7架构师教你如何设计解决方案

软件架构是一个包含各种组织的系统组织,这些组件包括 Web服务器, 应用服务器, 数据库,存储, 通讯层), 它们彼此或和环境存在关系。系统架构的目标是解决利益相关者的关注点

作者:JavaSpring高级进阶来源:今日头条|2019-07-22 22:22

【大咖·来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》

 链路追踪概念

什么是链路追踪,用来解决什么问题

年薪60W实用架构技术,阿里P7架构师教你如何设计解决方案
  • 用户行为链路,如:浏览页面,观看视频,购买商品,收藏,评论等等行为
  • 服务流程链路,快速定位异常:用户发起退货,迟迟没收到退回的商品,哪个链条出了问题?
  • 大数据ai画像,一个链条下非业务的动态行为数据,才是最贴近用户的素材

服务追踪的基础出发点—记录足迹

年薪60W实用架构技术,阿里P7架构师教你如何设计解决方案
  1. 入口处生成链路标识traceid
  2. 传递traceid参数给下层业务方法
  3. 各方法内部记录访问信息

使用TreadLocal来传参数

ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。

年薪60W实用架构技术,阿里P7架构师教你如何设计解决方案

思考:使用TreadLocal来传参数

年薪60W实用架构技术,阿里P7架构师教你如何设计解决方案

如何让traceid的传递不侵入业务?

  1. 尽量少侵入业务代码
  2. 不需要开发人员来维护
年薪60W实用架构技术,阿里P7架构师教你如何设计解决方案

MDC -----Mapped Diagnostic Context

  • 与当前线程绑定 ---- Threadlocal
  • 放数据--- MDC.put(traceid,aaa)
  • 取数据--- MDC.get(traceid)
  • 日志格式----%X{traceId}
年薪60W实用架构技术,阿里P7架构师教你如何设计解决方案

分布式调用来了?

年薪60W实用架构技术,阿里P7架构师教你如何设计解决方案

看看dubbo里的rpc调用

年薪60W实用架构技术,阿里P7架构师教你如何设计解决方案

Dubbo使用filter

年薪60W实用架构技术,阿里P7架构师教你如何设计解决方案

Dubbo高阶---spi扩展机制

年薪60W实用架构技术,阿里P7架构师教你如何设计解决方案

完美,优雅地解决掉了rpc的透传问题!

年薪60W实用架构技术,阿里P7架构师教你如何设计解决方案

微服务

软件架构是一个包含各种组织的系统组织,这些组件包括 Web服务器, 应用服务器, 数据库,存储, 通讯层), 它们彼此或和环境存在关系。系统架构的目标是解决利益相关者的关注点

微服务是指开发一个单个小型的但有业务功能的服务,每个服务都有自己的处理和轻量通讯机制,可以部署在单个或多个服务器上。微服务也指一种种松耦合的、有一定的有界上下文的面向服务架构。也就是说,如果每个服务都要同时修改,那么它们就不是微服务,因为它们紧耦合在一起;如果你需要掌握一个服务太多的上下文场景使用条件,那么它就是一个有上下文边界的服务,这个定义来自DDD领域驱动设计

年薪60W实用架构技术,阿里P7架构师教你如何设计解决方案

相对于单体架构和SOA,它的主要特点是组件化、松耦合、自治、去中心化,体现在以下几个方面

  • 一组小的服务

服务粒度要小,而每个服务是针对一个单一职责的业务能力的封装,专注做好一件事情。

  • 独立部署运行和扩展

每个服务能够独立被部署并运行在一个进程内。这种运行和部署方式能够赋予系统灵活的代码组织方式和发布节奏,使得快速交付和应对变化成为可能。

  • 独立开发和演化

技术选型灵活,不受遗留系统技术约束。合适的业务问题选择合适的技术可以独立演化。服务与服务之间采取与语言无关的API进行集成。相对单体架构,微服务架构是更面向业务创新的一种架构模式。

  • 独立团队和自治

团队对服务的整个生命周期负责,工作在独立的上下文中,自己决策自己治理,而不需要统一的指挥中心。团队和团队之间通过松散的社区部落进行衔接。

【编辑推荐】

  1. Java架构-SpringCloud分布式架构权限管理
  2. 2019年Web前端开发技术框架有哪些
  3. 2019年度最佳工作榜单出炉:高技术=高收入
  4. GitHub超9千星:一个API调用六种架构,27个预训练模型
  5. 解读 Service Mesh 的实现方式与同程艺龙的具体实践
  6. 换一种角度:从架构层面来看设计模式
【责任编辑:张燕妮 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

16招轻松掌握PPT技巧

16招轻松掌握PPT技巧

GET职场加薪技能
共16章 | 晒书包

326人订阅学习

20个局域网建设改造案例

20个局域网建设改造案例

网络搭建技巧
共20章 | 捷哥CCIE

651人订阅学习

WOT2019全球人工智能技术峰会

WOT2019全球人工智能技术峰会

通用技术、应用领域、企业赋能三大章节,13大技术专场,60+国内外一线人工智能精英大咖站台,分享人工智能的平台工具、算法模型、语音视觉等技术主题,助力人工智能落地。
共50章 | WOT峰会

0人订阅学习

读 书 +更多

Java网络编程精解

本书结合大量的典型实例,详细介绍了用Java来编写网络应用程序的技术。本书的范例都基于最新的JDK 1.5版本,书中内容包括:Java网络编程的...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客