For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
微服务架构开发是目前大多数Java编程开发程序员在开发软件的时候都会用到的一种架构方式,而本文我们就简单来了解一下,零基础学Java需要掌握哪些微服务知识。
1、什么是微服务
维基百科定义:
微服务(Microservices)是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块(SmallBuildingBlocks)为基础,利用模块化的方式组合出复杂的大型应用程序,各功能区块使用与语言无关(Language-Independent/Languageagnostic)的API集相互通信。
AWS的定义:
微服务是一种开发软件的架构和组织方法,其中软件由通过明确定义的API进行通信的小型独立服务组成。这些服务由各个小型独立团队负责。微服务架构使应用程序更易于扩展和更快地开发,从而加速创新并缩短新功能的上市时间
2、微服务有哪些优势与劣势(问题)
优势:
应用小,可快速编译部署
单个微服务维护性变高,修改容易,因为每个团队独立负责一块功能。新功能交付变快,可以快速开发交付
扩展性变高,根据业务规模可以随时缩减/增加服务器规模
可靠性变强,可以部署很多独立的服务
业务解耦,按照业务边界拆分为多个独立的服务模块
提升研发效率,业务拆分后,服务模块变小,在一个团队内就可以独立编写、测试、发布,加快研发效率。
微服务有这么多优势,那微服务是“银弹”吗?微服务不是银弹,它带来了很多优势,同时也带来了很多劣势(问题)。
劣势(问题):
整体复杂度变高,从哪些方面来管理这种复杂度?
运维变得复杂:微服务变多,怎么监控所有微服务,保证服务稳定?出了问题,怎么定位问题?
服务管理:微服务变多,管理复杂度变高,治理变得复杂
测试方面的挑战:你需要结合其他的微服务来进行集成测试
分布式问题:分布式数据一致性、分布式事务
服务保障:一个服务出了问题,如何才能不影响其他服务?
根据上面微服务定义,这些服务都是由小型独立团队负责,那团队怎么划分?公司组织架构如何调整才能适应微服务的架构发展?这也给组织管理带来了挑战。
还有微服务的“微”,多“微”才是好的“微”?也就是微服务怎么划分,如何确定边界?
等等这些都是微服务面临的问题和挑战。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。