当前位置 : 主页 > 网络编程 > 其它编程 >

黑暗城堡_当微服务变成黑暗服务时

来源:互联网 收集:自由互联 发布时间:2023-07-02
黑暗城堡 微服务很棒,许多公司来谈论它如何用于扩展团队,产品等 微服务也有阴暗面,作为程序员,您应该在骑车之前就了解它。 在这篇文章中,我将分享有关微服务的一些神话

黑暗城堡

微服务很棒,许多公司来谈论它如何用于扩展团队,产品等

微服务也有阴暗面,作为程序员,您应该在骑车之前就了解它。

在这篇文章中,我将分享有关微服务的一些神话/阴暗面

  • 我们需要大量的微服务

在创建任何新的微服务之前,请考虑一下分布式计算,因为大多数微服务都是远程过程。 首先定义“ micro”在问题上下文中的含义,它可以是代码行,功能或部署等

  • 命名微服务将很容易

计算机科学只有两个复杂的问题,其中一个是“命名”,很快就会有100多个选项而用光。

  • 非功能需求可以稍后完成

从一开始,突然的非功能需求(例如延迟,吞吐量,安全性,可靠性等)就变得非常重要。

  • 多种语言的编程/持久性或某种聚合…

软件工程师喜欢尝试最新的尖端工具,因此他们被我们可以使用任何语言,任何框架或任何持久性的神话所迷惑。

考虑一下多晶硅所需的技能和维护费用。 如果您有超过2/3的东西,那么它就不会适合您,并且您必须承担寻呼机的职责。

  • 监控很容易

这是关于微服务的最被忽略的事实之一,并且是事后才想到的。

为了进行简单的调查,您必须登录多台计算机,查看日志,确保在服务器等上获得正确的时间。

没有适当的监视工具,您将无法做到这一点,您需要ELK或DataDog类型的东西。

  • 读写很容易

现在,您在分布式事务世界中,这件事也被忽略了,它不是一个好地方,要处理这个问题,您最终需要一致的系统或不可用的系统。

  • 一切都安全

现在,一项服务正在使用API​​与另一项服务进行通信,因此您需要良好的身份验证系统来确保系统安全。 如果您在财务系统中工作,那么您将花费更多的时间来回答与安全性相关的问题。

  • 我的服务将永远保持下去

无论您拥有多么优秀的程序员或基础设施,这都永远不会发生,服务将中断,现在您在中间件领域(Kafka,ActiveMq,ZeroMQ等)来处理此问题,因此可以在服务不可用时将请求排队。

  • 我可以添加断点来调试它

这是不可能的,因为现在您处于远程过程中,并且不知道单个请求涉及多少微服务。

  • 测试将是相同的

测试与单片测试从来都不一样,您需要更好的自动化测试来摆脱测试难题。

  • 没有代码重复

随着您添加更多服务,代码共享变得困难,因为某些通用代码的任何更改都需要进行良好的测试,并避免许多团队开始重复代码。

  • 通过HTTP的JSON

这是所有微服务都必须在Http上拥有Json并且面向用户的最大神话之一。

这导致针对每个微服务的基于REST的API爆炸式增长,这就是为什么许多系统运行缓慢的原因,因为它们使用了没有类型信息的基于文本的协议。

您想摆脱微服务的反模式的一件事是,重新考虑您是否确实对每个服务都需要Json / REST,或者您可以使用其他优化的协议和编码。

  • 版本控制是我祖父的工作

由于大多数微服务都是远程过程,因此您必须附带请求/响应规范,并且必须管理版本以实现向后兼容性。

  • 团队沟通保持不变。

这就像房间里隐藏着的大象,需要更多的服务,需要更多的团队沟通,以使他们了解最新版本,运行版本,损坏之处等。

您可以拥有更多的孤岛,因为没人知道整个系统

  • 您的产品属于google / facebook / netflix规模

这就像您永远不会中奖的购买**。

如果您不能编写像样的模块化单片,那就不要尝试微服务,因为这一切都是为了获得正确的耦合和凝聚力。 模块应松散耦合且内聚力强。

没有免费的微服务午餐,如果您做错了,那么您将支付加价:-)

黑暗城堡_当微服务变成黑暗服务时

翻译自: https://www.javacodegeeks.com/2018/10/microservices-becomes-darkservices.html

黑暗城堡

上一篇:mysql的中文乱码_mysql的中文乱码
下一篇:没有了
网友评论