思想 在接收到一个新的新项目时,架构师的职责是建立项目的业务与技术实现之间的桥梁。在翻译业务到技术实现的过程中需要进行业务建模、技术设计等方面的工作。业务建模和技术设计过程中都有各自领域的知识体系。基本上每个知识体系都是由上层的理论、概念和方法论的提供方向上的支撑,由下层的实施方法、实施工具进行具体工作的实施。
在微服务实践系列文章中主要介绍在微服务实践过程中可能会考虑到的方向、以及这些方向可供选择的技术工具、并会涉及少量的架构设计理论知识。而在架构设计系列文章中会介绍架构理论、架构设计实践、以及架构设计中的分析与评估方法。
因为本系列文章主要介绍的是技术工具的内容,就会根据技术工具的特性进行介绍。不过本系列文章中不会像网络上其他的技术文章一样以某项技术为维度进行文章编写。而更像书本以技术的维度进行整理。以这种方式一方面是符合了我们的【实践】题目,便于在实践过程中使用技术工具组织整体架构。另一方面以技术方向而不是某一个技术实现,也是以一种自顶向下的思维方式进行说明(软件研发人员一般会使用自底向上的视为方式)。
技术方向 对于微服务中技术的全局中可能会有很多门技术需要学习与掌握。这里以一张图的方式为大家展示可能在微服务中遇到的技术与实现方向:
技术全景
作者把微服务实践中的技术方向有分了四部分:微服务管理,存储技术,业务支持,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数据可视化
jtablesaw / tablesaw
Processing 可视化编程
CoatiSoftware / Sourcetrail 可视化控件
Echarts,D3.js,Tableua 前端低代码
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