聊一聊微服务
引
言
在这篇文章中,我们将介绍微服务,那就需要回答一个司空见惯的问题“什么是微服务?”
1
什么是微服务?
微服务是一种软件开发技术,它将应用程序构建为松散耦合服务的集合。 在微服务架构中,服务是细粒度的,协议是轻量级的。 微服务是一种架构风格,是将一个复杂的系统分解成多个更小粒度的服务单元。
“微服务 - 也称为微服务架构 - 是一种架构风格,它将应用程序构建为一组松散耦合的服务,实现业务功能。 微服务架构支持大型复杂应用程序的持续交付/部署。它还使组织能够发展其技术堆栈。“ -- Chris Richardson, Microservices.io
这是比较权威的微服务解释与定义。换句话说,微服务架构由小型和自治服务组成。 每个服务都是独立且可独立部署的,这意味着将大型应用程序分解为松散耦合的模块。
2
为何选择微服务?
以下是基于微服务架构设计应用程序的一些优点:
3
微服务面临的挑战
微服务比传统系统更复杂。 反过来,环境变得更加复杂,因为服务必须管理,保护,监控和支持。
4
微服务架构
以下是微服务的相对高层次的抽象概述:
5
微服务通信
微服务之间的通信可以设置为同步或异步方式。 通常,微服务使用广泛采用的轻量级协议(如HTTP和REST)或消息传递协议(如JMS或AMQP)相互通信。 在特定情况下,可以选择更优化的通信协议,例如Thrift,gRpc或Dubbo等。
仅用一种方法开发系统是不合理的。根据具体场景需求需要两种方式组合使用。原则上,异步方法非常适合微服务,但是,尝试将所有内容建模为异步会导致复杂的系统设计。
6
微服务基础设施
为了实现微服务可伸缩性和可用性,可以将一个微服务部署在一个或多个虚拟机(VM)或物理机中。 如果服务简单且流量较小,则可以在一个VM上部署多个微服务。
对于云服务架构,开发人员无需担心服务的运行位置。服务将部署在云服务器中,基础架构可自行管理部署。如果发起包含数百个微服务,云服务架构是最佳选择。
总结
在这篇文章中,我们对微服务有了基本的了解。 我们了解构建微服务的微服务和核心原则是什么。 我们在使用这些服务时涵盖了架构以及面临的挑战。
本文分享自 PersistentCoder 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!