当前的微服务架构很热门,在云原生的大趋势下,几乎不需要陈词滥调但是为何需要微服务架构。越来越多的人关注采用微服务时会遇到什么问题。
当前普遍的意识是采用微服务时需要解决的主要问题包括:
服务治理:在分布式微服务体系结构中,系统需要考虑特定的链接,例如服务发现,负载平衡,电流限制,融合,超时,重试和服务跟踪。每个环节都不能出错,治理也不简单。
开发很困难:微服务通常跨服务器甚至跨计算机机房调用,开发人员需要处理超时和网络异常等难题。
多语言互操作性:现在有很多开发语言,不同的程序员有自己的喜好,很难统一。前端,后端,不同的技术堆栈,不同的开发语言,它们之间的互通也是一个大问题。
性能问题:提到Google趋势,IT行业对“高性能”的搜索一直很高。随着用户和访问量的增加,服务呼叫链也增加了一倍,面对大量请求时,必须保证性能。
数据一致性:服务最终需要获取数据,数据传输,存储和事务处理需要确保一致性。
这些问题使采用微服务变得困难,如果处理不当,劣势将大于优势。引入微服务体系结构的原始优势已经消失,但后来的运营和维护成本却大大增加。
目前,公司技术领导者或独立开发人员通常会选择适合其业务和规模的微服务框架,以降低采用微服务架构的成本并带来微服务架构的优势。诸如Spring Cloud,TARS,Apache Dubbo,Helidon和SOFA之类的开源框架都提供了不错的选择。
其中,TARS于2017年由腾讯开源。它在腾讯内部使用了12年,并且已经打磨了10多年。目前,使用它的产品有100多种,广泛用于腾讯的在线社交网络,金融服务,边缘计算,汽车,视频以及游戏,地图,应用程序市场和安全性等数百种核心业务。
从技术上讲,TARS的特征包括:
支持多种编程语言,包括C++、Golang、Java、Node.js、PHP 和 Python;
可与各种CI / CD工具结合使用;
服务可以部署在物理机,虚拟机,容器,K8S上,数据可以存储在缓存,数据库或文件系统中;
除自定义协议外,还支持丰富的协议,例如自行开发的TARS协议和TUP协议,以及行业中常用的SSL,HTTP,PB等;
可以在RPC调用上执行同步,异步和单向方法;
支持丰富的服务管理功能,包括但不限于服务注册/发现,负载平衡,自定义监视,日志记录,过载保护,保险丝机制,IDC SET等;
支持各种应用程序,例如深度学习,边缘计算和API网关;
以TARS项目为核心,今年3月在Linux基金会下成立了子基金会“ TARS基金会”,以开发开源微服务生态系统。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.