什么是微服务?关于轻量级软件开发的诠释
作者:作者 Lucas Carlson 编译 陈琳华
来源:《计算机世界》 2019年第5期
    使用微服务架构将大型应用程序分解为可横向扩展的轻量级应用程序
    作者?Lucas Carlson
    编译?陈琳华
    你正在为几十万行遗留的C ++续命吧。咳咳,我们要糊弄谁?数百万行的Vectran只是IBM在上世纪七十年代开发的一种短命的Fortran变体。但是,嘿,如果它们还没坏呢?除非它们坏了。每当有人试图添加功能时,它们就会崩溃。尝试修复漏洞会产生更多的漏洞。但是如果你不碰它们,它们就会一直工作下去。
    问题在于创新需要敏捷和速度。那些从未担心过“千年虫”(Y2K)计算机系统漏洞的新炫酷公司正在抛弃你的那些老旧软件。投资者们需要的是新一代重大创新。大批客户也正在选择抛弃这些老旧软件。
常用微服务架构
    解决方案是杀死那些单体大型应用程序,并且不再创建新的类似应用程序。实现的方法是使用微服务架构,这种技术可将大型应用程序分解为可以横向扩展的轻量级应用程序。
    微服务定义
    微服务将功能分解为由RESTful API松散耦合的独立应用程序。例如,eBay在2006年开发的独立Java servlet应用程序,以用于处理用户、项目、账户、反馈、交易和70多项其他要素。这些逻辑功能应用程序中的每一个都是一个微服务。
    这些微服务每一个都是独立的,并且不共享数据层。每个都有自己的数据库和负载均衡器。隔离是微服务架构的关键要素。不同的微服务需要不同的扩展技术。例如,一些微服务可能使用关系型数据库,而其他的可能使用NoSQL数据库。
    微服务的好处
    微服务架构将内部架构非常复杂的大型单体应用程序分解成小型的可独立扩展的应用程序。每个微服务都很小,开发、更新和部署也不太复杂。
    在考虑它们时,为什么首先要将这些功能都构建到单个应用程序中呢?至少在理论上,你可以想象为它们可存在于单独的应用程序和数据孤岛中,这不会有什么大问题。例如,如果拍卖收到两份投标书,
但只有四分之一的销售收到反馈,那么在一天中的任何时间投标服务的活跃程度至少是反馈应用程序的八倍。如果将这些组合到一个应用程序中,你最终运行并更新的代码将比经常需要的更多。 在本质上,将不同的功能组分隔成单独的应用程序中是有其自身的道理。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。