当前位置: 首页 > 科技观察

Java高可用集群架构与微服务架构浅析

时间:2023-03-12 22:57:45 科技观察

前言可能大部分读者都在想,为什么在这个以dubbo和springcloud为代表的微服务时代,我还要梳理这种“落伍”的高可用集群架构呢?我工作的团队大部分是7-15人的开发团队,对应的公司项目也大多是中小型项目。最大的项目PV/UV只有10w/2w。在这样的场景下,中小企业普遍创业时间不长,大多需要本着“开源节流”的理念,“以最小的成本最大化产出”。相对于高可用集群架构,微服务架构技术团队的成员数量相对较多,服务器部署成本也相对较高。作为技术团队的leader,他必须要考虑公司的整体成本,否则短时间内他就是要讨薪的大军了。..一、如何选择1、高可用集群适合中小型创业公司的项目架构。小型技术团队可快速迭代版本发布部署需求,前期低成本运营,并可在疫情爆发时通过投入适量成本横向扩展服务器抵御压力。特点:初期技术开发成本低一定的服务器扩容成本核心团队准备和技能要求少项目发布部署基本无依赖,时间成本低服务器运维成本一般大而完整的项目模块分离设计更经济更稳定的技术架构强迫症-强迫症不适合选择微服务架构。2、微服务架构适用于业务架构较大的中大型科技公司的项目架构。系统可以拆分成多个项目,分别运行。庞大的技术团队和平台产品标准化管理,前期投入是一定的。成本,指定业务的服务器可以低成本扩容以抗压。前期某些技术开发成本较低,服务器扩容成本较高,核心团队准备和技能要求较高。项目发布部署有依赖关系,一个一个部署,时间成本比较高。服务器运维成本平均或更高,更清晰。一个比较时尚的技术架构方案二、高可用集群架构1、必备服务器列表负载均衡服务器web项目服务器缓存服务器数据库服务器(主备)注:有人会问,如果是小项目单机service,负载均衡是否就不需要了?负载均衡的主要工作是将请求分发到源服务器。另一个功能是在不暴露服务器真实IP的情况下保护源服务器,大大降低服务器被DDoS攻击的风险。请参考文章《被人DDoS攻击了,分析一下原理和防护》。2.扩展服务器列表更多web项目服务器(集群负载)异步服务服务器(配置中心、消息队列、作业任务等)数据库服务器(读写分离、主从复制)文件服务器2.架构图3.微服务架构1.服务器列表dubbo/spring云全家桶组件服务器负载均衡服务器A模块web项目服务器B模块web项目服务器C模块web项目服务器XXX模块web项目服务器缓存服务器数据库服务器文件服务器异步服务服务器(配置中心,消息队列、作业任务等)2.架构图4.总结综上所述,我们对高可用集群和微服务架构做了一个简单的场景和架构图分析。不是说场景一定要用什么架构,也不是说什么架构最潮就用什么,而是以实际成本和产出为出发点来选择。一家创业公司刚刚起步,资金可能只有几百万。搞微服务架构,技术团队和服务器一个月的成本占了公司很大一部分。公司在产品推出前已经倒闭;有资源的公司,随时可以拿到几千万甚至更高的融资,业务方向也很多。如果只采用高可用架构,所有业务模块在一个项目中会臃肿。无论是代码管理还是人员管理,都是巨大的。如果。