开发问题记录(这部分还是比较零碎)

本人才疏学浅,以下内容是个人查看各种文章以及搜索资料所写出来的,所以如以下内容有不合适的地方,请及时纠正我,不吝赐教,本人在这不胜感激

前言

没有总结过这块的知识,因为平时这块也是接触不是很深,所以基本就是用的时候在去搜查找资料,时间一长一些东西也就记不住了,在此将一些以前学过的以及现在在补充学习的内容写出来,也是为了翻一下自己的旧账,以及去思考自己下一步去做什么。
在此也要提前说明,以下出现的参考文章没有任何打广告的嫌疑,只不过是自己当时看的文章。


一、中间件

1.中间件是什么?

维基百科

中间件是一种计算机软件,它为软件应用程序提供超出操作系统可用服务的服务。可谓“软件胶水”。[1]
中间件使软件开发人员更容易实现通信和输入/输出,因此他们可以专注于其应用程序的特定目的。尽管该术语自 1968 年以来一直在使用,但它在 1980 年代作为解决如何将较新的应用程序链接到较旧的遗留系统的问题的解决方案而广受欢迎

该术语最常用于支持分布式应用程序中数据通信和管理的软件。2000 年的IETF研讨会将中间件定义为“在传输(即通过 TCP/IP)层服务集之上但在应用程序环境之下的那些服务”(即在应用程序级API之下)。[3]在这个更具体的意义上,中间件_可以被描述为client-server 中的破折号(“-”),或者-to-_ in peer-to-peer。中间件包括网络服务器应用服务器内容管理系统。,以及支持应用程序开发和交付的类似工具

ObjectWeb 将中间件定义为:“位于网络中分布式计算系统两侧的操作系统和应用程序之间的软件层。” [5]可被视为中间件的服务包括企业应用程序集成数据集成面向消息的中间件(MOM)、对象请求代理(ORB) 和企业服务总线(ESB)

中间件也指将两个或多个 API 分开并提供限速、身份验证和日志记录等服务的软件

广义和狭义

  • 广义的说,所有不直接给客户直接提供业务价值的软件,都是中间件。举例说明,nginx和WebSphere App Server、MySQL都是中间件,而一个营销系统或者CRM系统、小额信贷系统,则不是中间件。
  • 狭义上说,处于基础设施层的软件与业务系统软件中间这一层的一些软件或者库、框架,我们叫中间件,不一定是独立的程序。这样就把上面提到的类似DB和Web Server之类的软件划分到基础设施层了。狭义的中间件比如缓存中间件、数据库中间件、消息中间件、服务化中间件、交易中间件、调度中间件、集成中间件等等。现在互联网上说的一般是这几个

    引自 [[https://zhuanlan.zhihu.com/p/97625832](https://zhuanlan.zhihu.com/p/97625832)]
    

2.解决了什么问题?

中间件它屏蔽了底层操作系统的复杂性,这样可以使程序员面对一个简单而统一的开发环境,减少程序设计的复杂性,专注于业务逻辑的开发,从而不必再为程序在不同系统软件上的移植而重复工作,大大减少了技术上的负担;而且提升了系统的稳定性,将一些风险转移到中间件上。
中间件解决的问题其实也挺多的,主要是现在个人认知不到位,所以如果想深入了解的其实可以自行查阅资料。


二、消息队列

1.什么是消息队列?

消息队列(Message Queue,简称MQ),指保存消息的一个容器,本质是个队列。

消息(Message)它是指在应用之间传送的数据,消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。

消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,有消息系统来确保信息的可靠专递,消息发布者只管把消息发布到MQ中而不管谁来取,消息使用者只管从MQ中取消息而不管谁发布的,这样发布者和使用者都不用知道对方的存在

2.为什么要有消息队列?

MQ(Message Queue)消息队列,是一种跨进程的通信机制,用于上下游传递信息;作为一个队列,其主要的功能就是排队积压。面对高并发任务时,由于来不及同步处理,请求往往会发生堵塞,表现最为明显的就是对数据库的操作,如大量的insert、update之类的请求同时到达数据库,直接导致无数的行锁表锁,甚至最后请求会堆积过多,从而触发too many connections错误。
此外,当上游服务处理能力远大于下游的情况时,若上游服务直接调用下游服务,由于下游服务处理能力远跟不上上游服务,因此明显的后果就是下游服务因处理压力而导致崩溃.
因此,MQ提出之初就是为了削峰限流,通过异步处理请求,减少请求相应时间和逻辑及物理上的解耦,从而缓解系统的压力,轻松应对高并发的情况


上游和下游

Definition 1: The direction of action
Upstream: receiving requests from.
Myupstreamservice is calling me.
Downstream: making requests to.
I am calling my downstream service
定义1:动作方向
上游:接收来自。我的上游业务在召唤我。
下游:向……提出请求。我要呼叫下游服务

Definition 2: The direction of dependency
Upstream: making requests to (and receiving responses from).
I am calling myupstreamservice.
Downstream: receiving reque

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值