单元化,主从、分布分表、分布式能是海量数据一种解决方法,但是服务与存储之间的连接数、分布式存储中间件连接数是大部分系统实际使用中会遇到的问题,一个集群能够承载的连接数是有限的,就需要通过架构方式来解决这个问题。
单元化或者说模块化,通过把业务按照功能拆分细,这样功能本身服务数量一定是相对多个模块本身肯定是少的,服务节点是少的,需要连接数据库集群或者缓存集群客户端是少的,这样就能很好的解决了连接数过多,导致无限扩容成为现实。
zookeeper我们用作配置管理中心,用于管理业务降级配置,以及线上业务需要实时调整并能看到效果简单配置信息的变更的一个简单配置管理工具。能够对配置管理以及变更实时通知,实现秒级降级以及秒级业务变更,最近在进行618备战,详细可见聊聊618备战,进行降级预案演练时,发现部分服务,通过zookeeper降级后,相应功能没有实现,降级是最终出现不可知事件预案,是很关键环节。
问题比较紧急,首先回忆最近zookeeper集群做过什么,配置管理 工具 做过什么,来定位问题发生原因以及结合日志来定位,配置不能下发原因。初步定位是扩容后连接数过多,调整提升了连接数,配置没有下发好了很多,但还是存在这种情况,将客户端工具加了更多日志,来持续定位这个问题。
网络重传,网络是整个系统架构中的基础,越是基础越重要,因为基础出现问题直接影响这个网络部分的所有服务,影响极大,网络一般由专门运维同事负责,但是我们应该能在网络不稳定时去协助定位问题,以及通过摘掉出问题机器来将问题影响范围缩小,做些力所能及事,来减少事情的构成的用户体验损失。
在单机或者 docker 容器上,要去看网络流量是否正常,流量趋势变化是否正常。数据包数是否正常,数据包数量变化趋势是否正常。网络连接数据是否正常,网络连接数变化趋势是否正常。最重要就是网络是否有大量重传,正常网络,重传一般没有有的话也是很少,如果网络发生大量重传,那么说明网络发生了问题,及时联系运维同事看其他人是否存在相同问题,来确认网络情况。
线上情况各种各样,每一个问题各不相同,需要我们能够及时总结,举一反三,并且把这些知识点连成线,形成体系。从而对知识认知也会更深,能力也会提升的更快,每一个问题都要当作一个挑战以及提升的机会,不能麻木,对问题视而不见,然后说工作没有挑战,挑战随时随地都有,就看你是怎么面对问题的,怎么处理问题的。
技术越来越多,技术演进也越来越快,需要有一定的方式方法来快速学习掌握技术,并用到实际开发当中,这才能匹配互联网快速迭代的节奏。一是要能找到领域内的好书,书籍还是一种系统学习方式,这种方式能够全面系统,要读领域好书,这样对领域能有全面认知。实际运用时在去深入点去通过相关博客、文章去专题研究。在找一些应用案例,就能比较快的应用到我们的实际开发当中。
前边说的比较理论话,举个例子来说就是,比如我们要研究 java NIO,我们要了解谁是这方面专家,国内 NIO 框架 netty 专家是李林峰,要了解或者学习这方面知识或者应用,去找他的书或者文章是了解这块最快的方式,掌握NIO这块当下发展也可以看他,因为一般领域专家会紧跟领域发展。
希望能给各位带来点启发。
以上所述就是小编给大家介绍的《单元化、zookeeper连接与网络重传》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 从 “挖光缆” 到 “剪网线”:蚂蚁金服异地多活单元化架构下的微服务体系
- 学习 Node.js,第 9 单元:单元测试
- Vue 应用单元测试的策略与实践 02 - 单元测试基础
- Vue 应用单元测试的策略与实践 04 - Vuex 单元测试
- Vue 应用单元测试的策略与实践 03 - Vue 组件单元测试
- Angular单元测试系列-Component、Directive、Pipe 以及Service单元测试
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。