
中间件
文章平均质量分 83
中间件是一种独立的系统软件或服务程序,位于操作系统、网络和数据库之上,应用软件之下。
可以这样来理解中间件:它就像是一座桥梁或者纽带,连接了不同的应用程序、系统或组件,使得它们能够更加高效、便捷地进行通信和协同工作。中间件屏蔽了底层操作系统和网络协议的复杂性,为应用程序提供了相对统一
WishYouAFortune
骐骥一跃,不能十步;驽马十驾,功在不舍。
展开
-
数据库和缓存基础(mysql,redis等)
事务是一系列操作,这些操作作为一个整体被执行,以确保数据库的完整性。原子性(Atomicity):事务中的所有操作要么全部完成,要么全部不完成。一致性(Consistency):事务必须保证数据库从一个一致的状态转移到另一个一致的状态。隔离性(Isolation):并发执行的事务之间不会互相影响。持久性(Durability):一旦事务提交,它对数据库的改变就是永久性的,即使系统发生故障也不会丢失。MySQL通过InnoDB存储引擎支持事务处理。原创 2024-07-07 11:00:00 · 1622 阅读 · 0 评论 -
【消息队列(MQ)RabbitMQ以及RPC简记】
通配符交换机”与之前的路由模式相比,它将信息的传输类型的key更加细化,以“key1.key2.keyN....”的模式来指定信息传输的key的大类型和大类型下面的小类型,让消费者可以更加精细的确认自己想要获取的信息类型。而在消费者一段,不用精确的指定具体到哪一个大类型下的小类型的key,而是可以使用类似正则表达式(但与正则表达式规则完全不同)的通配符在指定一定范围或符合某一个字符串匹配规则的key,来获取想要的信息。(这里与我们一般的正则表达式的“*”和“#”刚好相反,这里我们需要注意一下。原创 2024-05-07 17:29:46 · 966 阅读 · 0 评论 -
redis分布式锁
在 `acquire_failover` 方法中,等待故障转移锁过期,然后遍历从节点尝试获取锁。2. **从节点故障处理**:在获取锁的过程中,如果从节点连接失败,将其记录到故障节点集合中。1. **故障转移锁**:引入了故障转移锁,用于检测主节点的故障。如果需要,释放当前锁并获取故障转移锁。通过以上优化,可以提高分布式锁的可靠性和容错性,在节点故障或网络问题发生时能够进行自动故障转移,并确保锁的正确释放。- 在 `renew_lock` 方法中,定期检查锁的剩余时间,如果锁即将过期,续租锁。原创 2024-05-23 17:47:20 · 782 阅读 · 1 评论 -
RPC的入门应用
RPC 的全称是 Remote Procedure Call ,是一种进程间通信方式。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即无论是调用本地接口/服务的还是远程的接口/服务,本质上编写的调用代码基本相同。说起RPC,就不能不提到分布式,这个促使RPC诞生的领域。假设你有一个计算器接口,Calculator模块,以及它的实现类CalculatorImpl,那么在系统还是单体应用。原创 2024-05-10 12:04:45 · 711 阅读 · 0 评论 -
Python 分布式任务队列 celery
celery中通过@task的装饰器来进行申明celery任务,其他操作无任何差别# 任务的定义# 简单任务 tasks.py@app.task@app.task定时任务和实时任务的区别主要是要申明何时执行任务,任务本身也是通过task装饰器来申明 何时执行任务有2种指定频率执行:sender.add_periodic_task(时间频率单位s, 任务函数, name='to_string')crontab方式:分钟/小时/天/月/周粒度, 可以支持多种调度# 任务的定义。原创 2024-05-16 17:47:29 · 1366 阅读 · 4 评论 -
laravel 使用RabbitMQ作为消息中间件
注意:使用这个laravel-queue-rabbitmq这个包需要开启sockets拓展,不然会报错。3、在app/config/queue.php配置文件中的connections数组中加入以下配置。1、Composer安装laravel-queue-rabbitmq。执行之后会生成一个文件app/Jobs/Queue.php。4、修改 .env 文件。原创 2024-06-24 10:32:47 · 710 阅读 · 0 评论