首页 > 其他分享 >微服务设计:集成

微服务设计:集成

时间:2023-07-01 12:44:12浏览次数:47  
标签:集成 异步 调用 服务 代码 通信 模式 设计 CMS

如果使用同步通信,发起一个远程服务调用后,调用方会阻塞自己并等待整个操作的完成。如果使用异步通信,调用方不需要等待操作完成就可以返回,甚至可能不需要关心这个操作完成与否。
同步通信听起来合理,因为可以知道事情到底成功与否。
异步通信对于运行时间比较长的任务来说比较有用,否则就需要在客户端和服务器之间开启一个长连接,而这是非常不实际的。当你需要低延迟的时候,通常会使用异步通信,否则会由于阻塞而降低运行的速度。对于移动网络及设备而言,发送一个请求之后假设一切工作正常(除非被告知不正常),这种方式可以在很大程度上保证在网络很卡的情况下用户界面依然很流畅。
这两种不同的通信模式有着各自的协作风格,即请求/响应或者基于事件。对于请求/响应来说,客户端发起一个请求,然后等待响应。这种模式能够与同步通信模式很好地匹配,但异步通信也可以使用这种模式。我可以发起一个请求,然后注册一个回调,当服务端操作结束之后,会调用该回调。
对于一般规模的组织来说,如果某个软件非常特殊,并且它是你的战略性资产的话,那就自己构建;如果不是这么特别的话,那就购买。
普通的CMS提供的主要功能是内容的创建与管理。大多数CMS甚至连页面布局都做不好,它们通常只提供一些可拖拽的工具,然而这并不能满足你的需求,你还需要一些懂HTML和CSS的人来好好调整CMS模版。在其之上开发定制化代码将会是非常糟糕的体验。你可以选择在CMS上面套一层自己的服务作为对外的网站,这时CMS就成为了一个服务,其职责是管理内容的创建和获取。在自己写的那个前端服务中,你可以按照自己的方式来写代码和做集成。
你通常难以完全控制遗留系统和COTS平台,所以当你使用它们时要考虑如果需要移除或者绕过它们的话,应该如何操作。一个有用的模式叫作绞杀者模式,与在CMS系统前面套一层自己的代码非常类似,绞杀者可以捕获并拦截对老系统的调用。这里你就可以决定,是把这些调用路由到现存的遗留代码中还是导向新写的代码中。这种方式可以帮助我们逐步对老系统进行替换,从而避免影响过大的重写。
 

标签:集成,异步,调用,服务,代码,通信,模式,设计,CMS
From: https://www.cnblogs.com/hellosnow/p/17519128.html

相关文章

  • ML@集成学习@摘要
    文章目录集成学习refs摘要Note准确性和多样性集成学习方法分类BoostingAdaBoost伪代码Adaboost小结补充补充1补充2BaggingBagging伪代码特点算法效率直接应用于多分类自助采样和包外估计随机森林Stackingsklearn中的Stacking......
  • PPT| 智慧校园顶层设计规划方案P71
    PPT总共有71页,受篇幅有限,有需要PPT的同学关注:智慧城市之家......
  • 3、Apache Kudu集成impala(shell和java操作)的详细操作
    ApacheKudu系列文章1、ApacheKudu介绍及架构、工作原理、两种部署方式、使用限制详解2、ApacheKudu-javaapi操作kudu详细示例以及kudu的三种实现示例3、ApacheKudu集成impala(shell和java操作)的详细操作文章目录ApacheKudu系列文章一、kudu集成impala1、impala配置修改二......
  • 《Linux C/C++ 服务器开发实践》记录
    《LinuxC/C++服务器开发实践》记录序言:该记录是一份读书笔记,因为主题需要和计算机操作系统有关,自然而然的想到Linux的学习,刚好最近找实习发现很多C++服务器方向需要熟悉Windows/Linux的多线程开发,所以就选了这本《LinuxC/C++服务器开发实践》来看,这本书有许多工作用得上的知......
  • Java的MVC设计模式,带你深刻理解MVC
    什么是MVC?就是ModelViewControl,模型视图控制器。MVC流程图解1.MVC概念:MVC本来是存在于Desktop程序中的,M(Model)是指数据模型,V(View)是指用户界面,C(Control)是控制器。使用MVC的最直接目的就是将M和V实现代码分离,C则是确保M和V的同步,一旦M改变,V应该同步更新。2.MVC工作方......
  • 如何在多个 Linux 服务器上运行多个命令
    动动发财的小手,点个赞吧!如果你正在管理多台Linux服务器,并且你想在所有Linux服务器上运行多个命令,但你不知道该怎么做。不用担心,在这个简单的服务器管理指南中,我们将向您展示如何在多个Linux服务器上同时运行多个命令。为此,您可以使用pssh(并行ssh)程序,这是一个用于在多个......
  • 系统架构设计师随笔
    memcached文档下载:http://www.jb51.net/books/42140.htmlgit教程:廖雪峰:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000redis中文文档:http://doc.redisfans.com/redis下载网站:https://redis.io/downloadredis安装参考解压的文件夹里面的READ......
  • 云服务器centos7安装mysql8
    1.先去官网准备好几个安装包: 2.tar-xvfmysql-8.0.26-1.el8.x86_64.rpm-bundle.tar 3.可能需要卸载系统中自带的mariadbrpm-qa|grepmariadb rpm-e--nodepsmariadb-connector-c-3.1.11-2.oc8.1.x86_64rpm-e--nodepsmariadb-connector-c-config-3.1.11-2.oc8.1.......
  • Nacos如何支撑阿里内部数十万服务注册压力?
    Nacos内部接受到注册的请求时,不会立即写数据,而是将服务注册的任务放入一个阻塞队列里面立即响应给客户端。然后利用线程池读取阻塞队列中的任务,异步来完成本地实例和集群中其他实例的更新,从而提高并发能力。这个阻塞队列大小为1024。参考我的文档:https://www.cnblogs.com/wekeny......
  • 光脚丫学LINQ(019):使用对象关系设计器创建对象模型
    视频演示:http://u.115.com/file/f2b38fc3b2      基本学习了如何手动创建LINQtoSQL的对象模型,不过,千万不要因此就认为,已经真正的掌握了如何手动创建此对象模型。关于这点还是很多内容值得去深入学习的。不过,这是稍后的课题了,目前,咱们就得让它先停在这个位置了。     ......