思想

在接收到一个新的新项目时,架构师的职责是建立项目的业务与技术实现之间的桥梁。在翻译业务到技术实现的过程中需要进行业务建模、技术设计等方面的工作。业务建模和技术设计过程中都有各自领域的知识体系。基本上每个知识体系都是由上层的理论、概念和方法论的提供方向上的支撑,由下层的实施方法、实施工具进行具体工作的实施。

在微服务实践系列文章中主要介绍在微服务实践过程中可能会考虑到的方向、以及这些方向可供选择的技术工具、并会涉及少量的架构设计理论知识。而在架构设计系列文章中会介绍架构理论、架构设计实践、以及架构设计中的分析与评估方法。

因为本系列文章主要介绍的是技术工具的内容,就会根据技术工具的特性进行介绍。不过本系列文章中不会像网络上其他的技术文章一样以某项技术为维度进行文章编写。而更像书本以技术的维度进行整理。以这种方式一方面是符合了我们的【实践】题目,便于在实践过程中使用技术工具组织整体架构。另一方面以技术方向而不是某一个技术实现,也是以一种自顶向下的思维方式进行说明(软件研发人员一般会使用自底向上的视为方式)。

技术方向

对于微服务中技术的全局中可能会有很多门技术需要学习与掌握。这里以一张图的方式为大家展示可能在微服务中遇到的技术与实现方向:

技术全景

作者把微服务实践中的技术方向有分了四部分:微服务管理,存储技术,业务支持,DevOps。微服务管理是介绍分布式系统的技术实现部分。存储技术独立出来的意义在于存储和大数据,人工智能等大型的独立系统有关系。业务支持是阐述在业务实现过程中可能会用到的技术,但是不和通用的微服务技术相关的技术。DevOps是在微服务设计和敏捷的提倡下需要接受一切自动化的方式。

技术工具

上图中的浅绿色部分,是说明所有的技术方向。之后所有的文章都会按照这个规范进行编写。右侧每一列都是一项技术实现,这些技术实现可能会涵盖不同的技术方向。所以,这里也会在下面的文章中在不同的技术方向上推荐不同的实现技术。例如:做数据库与缓存同步的工具可选范围不多的情况,我就只能推荐Gearman。

从图中可以看到微服务技术关注的大概方向,基本上整理出来五个大方向。并在五个大方向上有相关的具体技术方向进行补充。现在基本上就缺具体的实现技术选型:

- 微服务管理

  • 内容发布
    CDN,分布式存储等

  • 远程过程调用
    RPC,RMI,JMS,AMQP,

  • 服务发现
    DNS,zookeeper,spring eureka,spring consul,ETCD,REDIS

  • 服务注册
    DDNS,zookeeper,spring eureka,spring consul

  • 网关
    Zuul,Kong,Nginx Plus,OpenResty,Spring Cloud Gateway

  • 负载均衡
    LVS,Nginx,F5

  • 高可用
    Haproxy,keepalive

  • 服务编排
    Netflix Conductor,uber/cadence,zeebe-io/zeebe,ing-bank/baker,Spring Cloud Zuul, Node-RED,ApiConfig

  • 统一配置
    Spring Config,ctripcorp/apollo: Apollo,git,nginx,Consul,Netflix Archaius

  • 分布式任务管理
    xxl-job,Elastic-Job,

  • 异步任务
    AMQP,Spring Cloud,Dubbo

  • 高速缓存
    Redis,Memcache,Mysql Memory DB,H2

  • 前后端分离
    Swagger,API Gateway

  • 服务降级
    Dubbo,Spring Cloud Hystrix

  • 服务限流
    Dubbo,Spring Cloud Hystrix

  • 服务熔断
    Dubbo,Spring Cloud Hystrix

  • 故障恢复
    Docker,Swarm,K8s

  • 事务管理
    sage,fescar,gts,Narayana

  • 动态选举
    zookeeper

  • 用户
    用户认证,权限管理,用户计费,会话管理

  • OpenAPI
    Kong,APIgee

  • 对象存储
    minio,riakcs(亚马逊S3技术),ceph

  • 事件驱动
    EventBus, spring event

  • 并发处理
    akka,Actor

  • 全局唯一性编码
    UUID,SetNX,雪花算法,

  • 规则引擎
    Drools

- 存储技术

  • 结构化数据存储
    Postgresql,(不推荐Mysql)

  • 半结构化数据存储
    redis,MongoDB

  • 无结构数据存储
    hdfs,mfs,fastdfs

- 业务支持

  • LBS
    木有开源滴。

  • AI

  • BigData

  • 全文检索
    Lucene

  • 静态化
    freemark

  • 智能推荐
    mahout

  • 用户跟踪
    木有开源滴。

  • IDaaS(身份认证及服务)
    暂未找到

  • SEO/SEM
    暂未找到

  • 网络爬虫
    Python

  • 特性开关
    Flagr,Togglz,FF4J,Fitchy,Flip

  • 租户管理
    mybaits-plus,Citus,mycat

  • 第三方支付
    需要聚合支付。

  • 可视化
    Hue,impala,DataDeck,Tableau,Redash,Metabase,Superset

  1. 数据可视化
    jtablesaw / tablesaw
    Processing

  2. 可视化编程
    CoatiSoftware / Sourcetrail

  3. 可视化控件
    Echarts,D3.js,Tableua

  4. 前端低代码
    20+个可视化搭建工具,一次玩个够

信息推送
木有开源滴。

- 质量

  • 代码扫描

  • 自动测试

    • 混沌实验
      ChaosBlade,Chaos Monkey

- DevOps

  • 运行环境
    基础环境都在这里。
    Terraform(基础设施即代码)

  • 升级
    flagr

  • 部署
    Puppet、Chef、Ansible和SaltStack

  • 版本管理
    scm

  • 日志管理
    elk,flume

  • 监控
    Zabbix、Nagios、Open-Falcon

  • 可视化
    全局可视化系统

  • 持续交付
    Spinnaker

  • 指标监控
    Telegraf InfluxDB Grafana

  • 应用性能
    lb的使用情况

  • 调用链
    zipkin,pinpiont,skywalking

  • 接口管理
    swagger,yapi,rap2

总结

这里提供了完善的分布式系统,微服务,SOA的技术方向体系。之后可以方便的从本系列中选择最优工具加入到业务系统中。

出处:https://www.jianshu.com/p/b64fa4234549

微服务实践--微服务方法论00相关推荐

  1. 网易云容器服务微服务化实践—微服务测试及镜像化提测全流程实践

    前言 近几年,互联网项目很多都有从单体服务转变成微服务化的趋势,尤其是一些架构复杂,业务比较广泛的项目,微服务化是大势所趋,可以解决独立构建.更新.运维等一系列问题,从而解放生产力,促进交付效率和质量 ...

  2. 2019年微服务实践第一课,网易谐云蘑菇街奥思技术大咖深度分享

    微服务的概念最早由Martin Fowler与James Lewis于2014年共同提出,核心思想是围绕业务能力组织服务,各个微服务可被独立部署,服务间是松耦合的关系,以及数据和治理的去中心化管理.微 ...

  3. 微服务实践沙龙-上海站

    微服务的概念最早由Martin Fowler与James Lewis于2014年共同提出,核心思想是围绕业务能力组织服务,各个微服务可被独立部署,服务间是松耦合的关系,以及数据和治理的去中心化管理.微 ...

  4. 老衣的微服务实践简要指引2017版

    这是老衣在2017年5月份总结的,适用于中小团队跨平台微服务开发的实践指引(简化版).若有有不当之处,欢迎指点更正 因本文涉及到大量第三方库或工具,详细学习和了解需要参考相关官方文档.若您在使用Mac ...

  5. Java 微服务实践

    楔子 目前业界最流行的微服务架构正在或者已被各种规模的互联网公司广泛接受和认可,业已成为互联网开发人员必备技术.无论是互联网.云计算还是大数据,Java平台已成为全栈的生态体系,其重要性几乎不可替代. ...

  6. 微服务构建思路与方法论

    微服务规划.微服务构建.微服务协同.微服务测试.微服务治理.微服务下线等是企业采用微服务必须面对的微服务生命周期管理问题.我们讨论过微服务治理的问题,由于一些原因未能整理微服务拆分.微服务设计.微服务 ...

  7. SFDC 微服务实践之路 2016.12.10 杭州(整理)--转

    原文地址:http://mp.weixin.qq.com/s/8cC4Ewt6yPjnxdYxuNZlFQ 微服务是什么? 微服务是一种细粒度(Fine-Grain)的SOA 或许在座的高朋了解过其概 ...

  8. Serverless 下的微服务实践

    作者 | 弈川 微服务架构介绍 微服务架构诞生背景 在互联网早期即 Web 1.0 的时代,当时流行的是单体应用,研发团队比较小,主要是外部网页,然后新闻门户等:到了新世纪的互联网时期 Web 2.0 ...

  9. 实践微服务六年,我获得了这些心得体会

    作为微服务架构的忠心拥趸,虽然有时也会对其感到不爽.使用微服务时,我时常能感受到"小中见大"."稳中有快"等理念,另一方面也会警惕"厨子太多烧坏了汤& ...

最新文章

  1. Ubuntu系统执行shell 脚本的方法
  2. 基于WinCE的I2C驱动程序设计
  3. HDFS的Java客户端操作代码(查看HDFS下的文件是否存在)
  4. 优秀交互设计的 UI 原则
  5. iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一)
  6. 计算机游戏的英语怎么写,电脑游戏英语怎么写
  7. fiddler filters 使用(fiddler只显示指定请求,fiddler不显示指定请求,即filter请求过滤)转自:http://blog.csdn.net/notejs/article/
  8. Flask常见错误与解决方法
  9. java二分法排序算法_Java中使用二分法排序
  10. linux下如何挂载格式化内存卡,Linux下磁盘挂载格式化
  11. 中国半导体蚀刻设备行业市场供需与战略研究报告
  12. 智能擦窗机器人的社会意义_告别传统清扫方式 AWE玻妞展示擦窗机器人
  13. rest_frameword学前准备
  14. 网络对抗技术 实验二
  15. 思科软件服务器怎么作用,TFTP 服务器的选择和使用
  16. 不登陆QQ也能使用QQ截图工具
  17. PMOS NMOS电流流向及符号图
  18. mysql配置报错thread_MySQL错误Forcing close of thread的两种解决方法
  19. 机器学习之---文本分析(jieba分词和词云绘制)
  20. BPM- Eteams体验报告

热门文章

  1. 第 3 课 太平天国运动(1851-1864)
  2. 双11阿里不再傲慢,关注增长质量,补贴国货品牌和农产品,意欲何为?
  3. 揭秘12306技术改造(三):传统框架云化迁移到内存数据平台
  4. 双屏切换单屏,之前在另一显示器显示的软件窗口现无法显示解决最简单的方法
  5. pki ca基础概念
  6. google Picasa 3.9 图片浏览器 提取版
  7. 英语学习方法-从雅思阅读谈起
  8. 服务器开超线程有什么好处
  9. 是什么让 Lido 成为顶级的 ETH 质押协议?
  10. amcharts 图片导出格式解读