热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

关于webservice的问题效率问题

由于项目中很多接口需要维护,而业务方在调用接口的时候需要需要判断缓存情况,没有的话在直接从DB取数据,这样子带来了很多问题,业务方需要同时关注缓存和DB,现在有个方案就是采用服务化架构,把所有的接口都...
由于项目中很多接口需要维护,而业务方在调用接口的时候需要需要判断缓存情况,没有的话在直接从DB取数据,这样子带来了很多问题,业务方需要同时关注缓存和DB,现在有个方案就是采用服务化架构,把所有的接口都分装在服务里面,那么业务方只需要调用接口就好,不用管其他的,那么我的问题是:之前我通过取缓存或者DB 直接取出数据的,现在要走server(比如webservice) 走的是HTTP,那么岂不是更慢了?求解,谢谢。

回复内容:

由于项目中很多接口需要维护,而业务方在调用接口的时候需要需要判断缓存情况,没有的话在直接从DB取数据,这样子带来了很多问题,业务方需要同时关注缓存和DB,现在有个方案就是采用服务化架构,把所有的接口都分装在服务里面,那么业务方只需要调用接口就好,不用管其他的,那么我的问题是:之前我通过取缓存或者DB 直接取出数据的,现在要走server(比如webservice) 走的是HTTP,那么岂不是更慢了?求解,谢谢。

是会慢了,但是整个项目的结构就清晰了,以后开发速度和分工就更容易了,这也就是牺牲速度的原因。项目总是逐步增大的,随着项目的增大,就要逐渐考虑对其进行拆分,拆分的目的我想也不用多说,而拆分的方式大多就是把每个子块进行服务化,对外只暴露少部分必要的接口。

而至于刚才说到的变慢的问题,还有很多方式进行优化可以弥补这部分的慢,比如采用更高速的网络通道等。

通过对服务的分层,可以将项目变得更加条理清晰,开发的过程能够更加模块化,有助于敏捷开发。代码的重用率会更加提高。
当需要跨语言或者跨服务器的时候可以使用thrift等RPC框架进行传输,当需要使用其他语言的第三方内容的时候这样子架构的优势就上来了。

推荐阅读
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • [翻译]微服务设计模式5. 服务发现服务端服务发现
    服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
  • 项目需要将音视频文件上传服务器,考虑并发要求高,通过七牛来实现。直接上代码usingQiniu.IO;usingQiniu.IO.Resumable;usingQiniu.RPC; ... [详细]
  • NFS文件共享系统
    1、概述:NFS(NetworkFileSystem)意为网络文件系统,它最大的功能就是可以通过网络,让不同的机器不同的操作系统可以共享 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • switch语句的一些用法及注意事项
    本文介绍了使用switch语句时的一些用法和注意事项,包括如何实现"fall through"、default语句的作用、在case语句中定义变量时可能出现的问题以及解决方法。同时也提到了C#严格控制switch分支不允许贯穿的规定。通过本文的介绍,读者可以更好地理解和使用switch语句。 ... [详细]
  • Hadoop2.6.0 + 云centos +伪分布式只谈部署
    3.0.3玩不好,现将2.6.0tar.gz上传到usr,chmod-Rhadoop:hadophadoop-2.6.0,rm掉3.0.32.在etcp ... [详细]
  • 精讲代理设计模式
    代理设计模式为其他对象提供一种代理以控制对这个对象的访问。代理模式实现原理代理模式主要包含三个角色,即抽象主题角色(Subject)、委托类角色(被代理角色ÿ ... [详细]
  • 一面自我介绍对象相等的判断,equals方法实现。可以简单描述挫折,并说明自己如何克服,最终有哪些收获。职业规划表明自己决心,首先自己不准备继续求学了,必须招工作了。希望去哪 ... [详细]
  • 后台自动化测试与持续部署实践
    后台自动化测试与持续部署实践https:mp.weixin.qq.comslqwGUCKZM0AvEw_xh-7BDA后台自动化测试与持续部署实践原创 腾讯程序员 腾讯技术工程 2 ... [详细]
  • mapreduce源码分析总结
    这篇文章总结的非常到位,故而转之一MapReduce概述MapReduce是一个用于大规模数据处理的分布式计算模型,它最初是由Google工程师设计并实现的ÿ ... [详细]
  • java布尔字段用is前缀_POJO类中布尔类型的变量都不要加is前缀详解
    前言对应阿里巴巴开发手册第一章的命名风格的第八条。【强制】POJO类中布尔类型的变量都不要加is前缀,否则部分框架解析会引起序列化错误。反例:定义为基本 ... [详细]
  • Hadoop 源码学习笔记(4)Hdfs 数据读写流程分析
    Hdfs的数据模型在对读写流程进行分析之前,我们需要先对Hdfs的数据模型有一个简单的认知。数据模型如上图所示,在NameNode中有一个唯一的FSDirectory类负责维护文件 ... [详细]
  • 定义#definePCAP_OPENFLAG_PROMISCUOUS1    定义适配器是否必须进入混杂模式。#definePCAP_OPENFLAG_DATATX_UDP2    ... [详细]
  • SOA架构理解理解SOA架构,了解ESB概念,明白SOA与微服务的区别和联系,了解SOA与热门技术的结合与应用。1、面向服务的架构SOASOA(ServiceOrien ... [详细]
author-avatar
开心小笨笨猪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有