C++并发编程笔记1: 认识并发编程

c++自版本11在语言层面引入多线程。 软并发 处理器中任务飞速切换,形成并发的假象。 硬件并发 多核多处理器。 单核单处理器上也可以实现多线程,多核多处理器也会实现任务切换。 并发的方式: 多进程并发:单进程单线程; 多线程并发:单进程多线程; 以上两种方式组合。 多进程并发 独立进程通过信号、套接字、文件、管道等进程间通信途径进行通信,缺点是:设置复杂、...

Read More

应老板要求设计的DDoS攻击省钱防御方案

前段时间公司网站遭受DDOS攻击,瞬间每秒接近30G(其实攻击力度很低啦)的流量涌向主项目的负载均衡,由于服务器全部裸奔,除了关机没有任何解决办法,但老板不允许关机,最后是腾讯云单方面强制关闭负载均衡服务器1小时后,攻击消失。 其实在此次攻击发生前,已经发生多次DDOS攻击,腾讯商务报价5万每季度/10IP/10次峰值DDOS防护套餐被老板认为太贵了,所以就...

Read More

尝鲜.NET6 Preview4, 然后悲剧了

早上安装.NET6 Preview4尝鲜,然后悲剧了。VS任何.NET项目都打不开,因为.NET6 Preview4要求比如使用wokerloafer负载分析器,且不能在环境变量中设置不需要。而VS FOR MAC才到8.9, 根本没有解决这个。 WIN中VS版本过了preview 16.3就解决这个问题了。 看来得用一段时间vs code了。

Read More

使用nginx + minio + imageproxy 搭建私有图床

MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。 图床的基础是Minio, 但minio并不提供图片缩略和裁剪功能,所以还需要用到Imagepro...

Read More

Latex常用数学符号

LaTeX(LATEX,音译“拉泰赫”)是一种基于ΤΕΧ的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在20世纪80年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由TeX所提供的强大功能,能在几天、甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适...

Read More

zephir中引用赋值和参数的传引用实现

近期在修改一些Phalcon的底层实现时,发现zephir并未提供引用赋值和参数的传引用特性,导致某些特定场景的代码无法实施,例如循环调用中要求不能抛出异常,只能用一个最外层的handle来存储循环中异常或错误,这就要求必须使用参数的传引用特性,所以只能通过一些变通方法来变通实现。 引用赋值 使用&进行引用赋值,编译时会引发异常并提醒你官方并不支持引...

Read More

Jenkins增量部署 指定文件夹指定文件部署

1 出发点 使用Jenkins部署代码的办法,一种是打包,一种是连接目标服务器拉取代码,虽然实际操作中会一些差别, 例如打包后上传与下载的区别,但大体就是这两种。 对于打包方法而言,通常是打全量包,或者是指定文件与文件拉取代码打包。但是有时候在非严格的版本控制下,需要增量部署, 或者动态地指定文件夹,动态地指定文件拉取部署;就像瓦力那样,但是又不想更换瓦力。...

Read More

RabbitMQ面试题汇总

1 为什么要使用MQ?MQ和Redis模拟消息队列相比有什么优点? 为什么要使用MQ 解耦,系统与系统之间的耦合。 异步,非必要的业务逻辑可以以异步方式运行,加快响应速度 消峰,减少并发 对比Redis消息队列 消息消费的可靠性 Redis没有相应的机制保证消息的消费,当消费者消费失败的时候,消息体丢失,需要手动处理, 例如用数据库、File等进行存储,以保...

Read More