MPush

7 款神秘的开源中间件!

对着背影说爱祢 提交于 2020-08-08 10:12:33
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 在系统软件之中,操作系统、数据库、中间件的三驾马车,中间件是最神秘的,而且是一个专业化非常强的细分产业。中间件技术主要用来支撑分布式软件的开发,在大型分布式软件系统中中间件技术发挥着极其重要的作用。今天,小编推荐 7 款 Gitee 上的中间件开源项目,希望能够让你体会到中间件技术的魅力。 1、高性能 Redis 中间件服务 nredis-proxy 项目简介:nredis-proxy 是一个以 redis 协议为主的高性能稳定的代理中间件服务,不侵入业务代码,与业务毫无联系,不需要改任何应用代码,天然支持分布式部署。 项目地址: https://gitee.com/284520459/nredis-proxy 2、.net 业务消息队列 Dyd.BusinessMQ 项目简介:.net 业务消息队列是应用于业务的解耦和分离,应具备分布式,高可靠性,高性能,高实时性,高稳定性,高扩展性等特性,其优点主要是: 大量的业务消息堆积能力 无单点故障及故障监控,异常提醒 生产者端负载均衡,故障转移,故障自动恢复,并行消息插入。 消费者端负载均衡,故障保持,故障自动恢复,并行消息消费。 消息高可靠性持久化,较高性能,较高实时性,高稳定性,高扩展性。 支持99*99个消息分区

栈帧%ebp,%esp详解

别来无恙 提交于 2019-12-11 16:58:09
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 首先应该明白,栈是从高地址向低地址延伸的。每个函数的每次调用,都有它自己独立的一个栈帧,这个栈帧中维持着所需要的各种信息。寄存器ebp指向当前的栈帧的底部(高地址),寄存器esp指向当前的栈帧的顶部(地址地)。下图为典型的存取器安排,观察栈在其中的位置 入栈操作:push eax; 等价于 esp=esp-4,eax->[esp];如下图 出栈操作:pop eax; 等价于 [esp]->eax,esp=esp+4;如下图 我们来看下面这个C程序在执行过程中,栈的变化情况 void func(int m, int n) { int a, b; a = m; b = n; } main() { ... func(m, n); L: 下一条语句 ... } 在main调用func函数前,栈的情况,也就是说main的栈帧: 从低地址esp到高地址ebp的这块区域,就是当前main函数的栈帧。当main中调用func时,写成汇编大致是: push m push n; 两个参数压入栈 call func; 调用func,将返回地址填入栈,并跳转到func 当跳转到了func,来看看func的汇编大致的样子: __func: push ebp; 这个很重要,因为现在到了一个新的函数,也就是说要有自己的栈帧了,那么