专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

java微服务和分布式的区别有哪些_java

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/8 14:20:48       共计:3566 浏览

java微服务和分布式的区别有哪些?

Java微服务和分布式之前一直说,但是对于其中的内在含义没有深究,就一般理解的基于 Dubbo + Zookeeper 的分布式架构和基于 Spring Boot + Spring Cloud 微服务架构,基于此,之前认为使用 Dubbo 的就是分布式架构,使用 Spring Cloud 的就是微服务架构,这在传统意义上可能说的通,但是 Dubbo 和 Spring Cloud 生态体系又能够完美的融合,国内技术人喜欢拿 Dubbo 和 Spring Cloud 进行对比,是因为两者都是服务治理非常优秀的开源框架。但它们两者的出发点是不一样的,Dubbo 关注于服务治理这块并且以后也会继续往这个方向去发展。Spring Cloud 关注的是微服务治理的生态。而在阅读了部分文章之后,发现微服务是架构设计方式,分布式是系统部署方式。

分布式对应的概念是单体部署。单体(传统web项目)比较适合小项目,其有一些优点,但它的缺点也非常明显。特别对于互联网公司来说:开发效率低,代码维护难,部署不灵活,稳定性不高,扩展性不够,无法满足高并发情况下的业务需求。通俗点说就是对于互联网项目,属于一直运营中有客户一直在使用。单体应用的缺陷就暴露出来了,比如可能会因为一个小问题,需要紧急上线,而导致整个网站需要停止,这样的情况对客户、业务都是影响很大的,重新部署、备份对于开发人员来说更是不好维护。分布式服务顾名思义服务是分散部署在不同的机器上的,一个服务可能负责几个功能,是一种面向SOA架构的,服务之间也是通过 rpc 来交互或者是 webservice 来交互的。再谈谈分布式架构的缺点:跨进程,跨网络的分布式系统对网络延迟和带宽的性能影响;高度依赖网络状态、任何一次远程调用都可能失败,随着调用栈的增多,其可靠性受到挑战;引入各种中间件,异步通信大大增加了功能实现的复杂度;分布式系统必然会有分布式事务的出现,这时对数据的一致性,需要在C(一致性)A(可用性)P(分区容错性)中做出选择;一个系统拆成了多个服务,每个服务都得配置,部署,监控,日志处理等运维成本。

而微服务是很小的服务,小到一个服务只对应一个单一的功能,只做一件事。这个服务可以单独部署运行,服务之间可以通过 RPC 来相互交互,每个微服务都是由独立的小团队开发,测试,部署,上线,负责它的整个生命周期。微服务的目的是有效的拆分应用,实现敏捷开发和部署。微服务相比分布式服务来说,它的粒度更小,服务之间耦合度更低,由于每个微服务都由独立的小团队负责,因此它敏捷性更高,分布式服务最后都会向微服务架构演化,这是一种趋势, 不过服务微服务化后带来的挑战也是显而易见的,例如服务粒度小,数量大,后期运维将会很难。

得到的同时也意味着失去,权衡与取舍,始终是架构的魅力。特定业务场景下的特定技术选型,特定发展阶段的服务架构演进,适合团队发展和业务支撑的架构选择需要资深的熟悉业务和技术的架构师来主导,没有最好,只有更好,只有在不断的发展演化中才能找到特定企业和团队的项目风格和基础架构。

作者:夕阳雨晴,欢迎关注我的头条号。偶尔美文,主流Java,为你讲述不一样的码农生活。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:eclipse编译出包怎么设置配置文件字符集_java | ·下一条:初级java程序员该怎么做职业规划_java

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有