大连小程序哪个开发公司好网站优化是什么
web/
2025/9/27 6:22:43/
文章来源:
大连小程序哪个开发公司好,网站优化是什么,网站架构策划,网站+建设设计前言微服务在编程圈火的是不行不行的啦#xff0c;可能还有很多小伙伴还没有进行微服务实操#xff0c;但这个词#xff0c;要说没听过、没看过#xff0c;那小伙伴一定是假Programmer。虽然微服务很火#xff0c;但不能盲目使用#xff1b;先不说涉及技术和工具有多少可能还有很多小伙伴还没有进行微服务实操但这个词要说没听过、没看过那小伙伴一定是假Programmer。虽然微服务很火但不能盲目使用先不说涉及技术和工具有多少首先应该针对业务需求和开发团队有一个规划评估业务需求的复杂度和开发团队人数及技术能力。对于微服务本身业务的划分、开发的技能、部署的方案、维护的成本每一项都不能缺否则很大一种可能就是以失败告终。来小伙伴们一起聊聊我先来说说我的理解小伙伴可以评论私聊都行.....正文微服务的出现并不是为了替代原先单体架构而是为了解决单体架构出现的相关问题也不是为了取代面向SOA服务化的设计其实应用场景很关键通常SOA面向服务化的方式是企业信息化整合的常用的手段对于SOA虽然也是面向接口通讯但我的理解其实是将更多的单体程序整合业务细分没有微服务那么精细。所以微服务并不是为了取代某一种程序架构而是它更适合于某种业务场景或更好地解决某种问题。单体到微服务的演变对于单体架构而言本身就是一种高生产力的架构程序员上来就干干完就上线。尽管随着业务复杂和访问量的增多也可以通过分布式集群的方式实现应用程序在高并发下的高可用但是在Code过程中当每新出一种方案解决遗留问题时随之而来也有新问题的诞生只是利益大于危害罢了。接下来看看单体是如何演变到微服的下图只是针对软件架构进行演变描述图片为自顶向下逻辑查阅。从上图看到从最初的一台服务器随着业务需求复杂及并发数据的增大演变到三台服务器应用程序、缓存、数据库各自有专门的服务器的处理通过缓存中间件缓解数据库压力从而可以接受更多的请求但是单台应用服务器的内存、CPU处理能力、文件IO、网络IO都有瓶颈当业务需求增加、并发量增大时就要考虑集群啦。咱们接着聊↓↓↓上图为了应对高并发实现高可用刚开始采取了集群部署的方式将请求合理分配到各个集群服务器中提升处理能力。这样一来随着长时间数据的积累特别针对数据比较多的系统就会导致单库或单表的数据量比较大最终影响系统性能这里一般的解决方案会采用分库分表的形式解决数据量特别大的可以集合大数据平台进行数据保存和分析这里就不在单独作图表示啦当一个系统到了集群部署这一步这个项目也不算小啦通常业务需求会陆陆续续而来最终会导致单体代码量增大维护和添加功能不容易而最好的办法是将比较单独的业务独立成一个项目通过分布式的方式实现新增需求的扩展项目之间通常使用API、RPC或消息队列的方式进行通信分布式集群其实已经足够能应付项目的开发啦究竟存在哪些问题促使微服务的到来呢单体架构面临的问题•部署成本高只要稍微改一处代码就可能导致整体替换部署一些项目时间就是金钱不能接受•迭代速度慢项目整体庞大稍一改动就得需要花费大量的时间整体测试验证•不易于扩展当扩展需求时只能持续往项目中增加代码最后导致开发难度系数增大风险高部署扩展也有风险•大量代码重用虽然已经分布式但独立出来的项目还是单体存在大量代码重用比如权限和一些公共功能模块等•新人上手成本高需要整体了解项目逻辑花费更多的时间否则容易出错风险高单体架构的问题作为导火索再加上当今业务需求的复杂化及迭代速度要求高最终就促进了微服务的落地为什么是落地呢其实微服务概念在2014年一位马丁.福勒的工程师就提出啦。微服务这张图去掉网关和服务治理是不是和分布式有异曲同工之处其实微服务就是分布式不过其划分的更加精细当然对于监控和追踪那些没在图中体现那微服务能解决什么问题呢微服务解决哪些问题(最接近开发的点)•部署成本低针对具体的服务模块进行部署即可不影响整体系统其它服务模块运行•迭代速度快单独模块服务易于开发和维护负责人员能快速进行开发、验证•伸缩性好开发可以根据业务进行服务划分快速开发不影响其他服务部署易于扩展•代码重用好对于公共服务模块进行独立共用比如用户认证权限管理等相关公用模块电商里面的支付、物流等•新人上手成本低针对进入项目的新人可以先从单个服务开始进行开发更容易上手风险低是不是把单体对应的问题都解决了最起码好处很明显当然还有其他优点比如开发不限于语言可以多语言进行开发等对于每一种方案解决问题的同时肯定也有新问题的产生绝对完美对于编程而言好像这样的方案还没有但相对完美还是得追求的微服务究竟带来哪些问题呢微服务带来的问题(最接近开发的点)•分布式问题更加复杂化因为本来分布式问题就存在比如分布式锁分布式事务数据一致性等问题随着服务的细化自然就让分布式问题更加复杂化•问题排查增加难度微服务很多时如果出现问题需要明确的定位比起单体定位问题更加难啦但可以借助追踪工具和日志分析工具进行辅助•整体项目质量管控更难从性能方面多服务交互需消耗网络IO单个服务挂了如果处理不好可能导致系统雪崩一般需要做熔断、隔离、限流等相关防护•对应开发人员技术要求高不仅是业务开发对业务划分、服务之间通讯、服务部署、服务监控、虚拟化等都得有所熟悉所以从技术开发到运维监控都得有对应的技术栈知识的支撑•部署难度增加当服务很多时靠人为进行操作已经不现实所以微服务并不是完美只是在解决问题上带来的好处相对比带来问题更有价值既然最终都要演变到微服务直接用是不是最好一般情况各路大神都不建议直接使用微服务架构而是根据业务驱动架构的演进通常在使用微服务时需要考虑以下情况•项目生产力要求其实就是商务如果公司允许有足够的时间进行开发可以继续考虑否则单体架构前期的生产力更容易体现后续根据业务再演变为微服务架构也是比较推荐的•业务复杂度要求如果业务需求本身不复杂后续新增可能性不大没必要为了流行使用微服务•开发团队要求微服务初期是需要花费大量的人力的后期运维也是重要活如果团队人不多、技术不熟得综合考虑否则会累死说这么多不是说使用微服务不好而是过早的使用反而会一团糟还是那句话一个项目在开发过程中过早的过度优化肯定等于玩火自焚项目周期可能不能如期完成当前的优化可能并不是适合后面的开发可能还会重工等。在刷博文的时候看到一个词单体微服务当然这不是官方的词是博友自己的理解就是用微服务的思想设计单体程序这样后续过渡到微服务的时候就相对平滑有没有小伙伴关注到图片上针对每一次演变都标有段位从倔强青铜到至尊星耀那为什么没有最强王者或者说微服务为什么不是最强王者呢软件架构随着业务驱动会不断发展总有一些新思路会出现如今现在有些大厂在搞的Service Mesh(服务网格)可能就是下一个微服务演变的架构所以给最强王者留了个问号。总结微服务对于复杂业务的确很香但同时也带来了相关问题同时要求的技术栈比较丰富所以说它是麻辣味的并不是一开始就能将其一下消化需要慢慢实践。好啦微服务我理解的差不多是这样小伙伴欢迎指点及分享自己的想法互相学习接下来会针对微服务的落地持续学习和分享相关文章具体计划在下一篇再好好说说。一个被程序搞丑的帅小伙关注Code综艺圈跟我一起学~
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/82590.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!