官方网站 www.itilzj.com 文档资料: wenku.itilzj.com
思想
在接收到一个新的新项目时,架构师的职责是建立项目的业务与技术实现之间的桥梁。在翻译业务到技术实现的过程中需要进行业务建模、技术设计等方面的工作。业务建模和技术设计过程中都有各自领域的知识体系。基本上每个知识体系都是由上层的理论、概念和方法论的提供方向上的支撑,由下层的实施方法、实施工具进行具体工作的实施。
在微服务实践系列文章中主要介绍在微服务实践过程中可能会考虑到的方向、以及这些方向可供选择的技术工具、并会涉及少量的架构设计理论知识。而在架构设计系列文章中会介绍架构理论、架构设计实践、以及架构设计中的分析与评估方法。
因为本系列文章主要介绍的是技术工具的内容,就会根据技术工具的特性进行介绍。不过本系列文章中不会像网络上其他的技术文章一样以某项技术为维度进行文章编写。而更像书本以技术的维度进行整理。以这种方式一方面是符合了我们的【实践】题目,便于在实践过程中使用技术工具组织整体架构。另一方面以技术方向而不是某一个技术实现,也是以一种自顶向下的思维方式进行说明(软件研发人员一般会使用自底向上的视为方式)。
技术方向
对于微服务中技术的全局中可能会有很多门技术需要学习与掌握。这里以一张图的方式为大家展示可能在微服务中遇到的技术与实现方向:
技术全景
作者把微服务实践中的技术方向有分了四部分:微服务管理,存储技术,业务支持,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
运行环境
基础环境都在这里。
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的技术方向体系。之后可以方便的从本系列中选择最优工具加入到业务系统中。
IT架构师/技术大咖的交流圈子,为您提供架构体系知识、技术文章、流行实践案例、解决方案等,行业大咖分享交流/同行经验分享互动,期待你的加入!扫码即可加入哦,随着材料不断增多社群会不定期涨价早加入更优惠
免责声明:
本公众号部分分享的资料来自网络收集和整理,所有文字和图片版权归属于原作者所有,且仅代表作者个人观点,与本公众号无关,文章仅供读者学习交流使用,并请自行核实相关内容,如文章内容涉及侵权,请联系后台管理员删除。