
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在上文中给大家简单介绍了微服务拆分需要注意的一些常见问题等内容,而本文我们就继续来了解一下,程序员在学习微服务架构的时候需要掌握哪些设计原则。
通过服务划分,可以得到各个单一功能的服务。跟着就要设计系统了,在微服务系统的设计中,会考虑以下原则。
高可用性:高可用性是微服务设计的一原则,也就是尽可能给予反馈。任何一个服务都应该至少有2个实例,任何一个实例出现故障,都可以被微服务系统发现,并且微服务系统可以通过自我修复排除故障节点,尽可能保证微服务能够持续稳定地提供给用户服务。
伸缩性:对于快速膨胀、数据不断增加的服务,我们可以根据需要增加服务实例。对于业务减少、活跃用户减少的服务,也可以根据需要适当减少服务实例。
容错性:微服务应该具备高容错性,在一些糟糕的环境下(如高并发),可以通过限流、熔断和服务降级来保证服务之间的故障不蔓延,保证各个服务能够尽可能响应用户,降低服务出现的差错。
去中心化:微服务不推荐遵从服务器,而是推荐去中心化,任何一个服务实例都是平等的,或者按照一定的权重进行分配的。
基础设施自动化:可使用DevOps的理念进行开发和测试,也可使用容器(如Docker等)简化微服务的部署,使用这些工具可进一步简化开发、测试、部署和运维工作,使得工作更少,更加智能。
弱一致性:微服务不推荐使用强一致性,因为强一致性缓慢且复杂。弱一致性则相对简单,在分布式中能够做到简单就相当不易了。
性能:微服务推荐的是使用REST风格的请求来暴露服务接口,让各个服务能够通过服务调用来完成交互,共同完成业务。但是REST风格缓慢,在处理高并发场景的时候,还需要考虑使用其他的技术(如远程调用),以满足性能的需要。
可监控:服务实例都是可以监控的,出现故障可以及时发现,并且提示运维人员进行维护。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。