自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 资源 (1)
  • 收藏
  • 关注

转载 RabbitMQ如何保证消息的可靠性

RabbitMQ如何保证消息的可靠性1、保证消息不丢失(三步)1.1、开启事务(不推荐)1.2、开启confirm(推荐)1.3、开启RabbitMQ持久化(交换机、队列、消息)1.4、关闭RabbitMQ自动ack(改成手动)2、保证消息不重复消费2.1、幂等性(每个消息用一个唯一标识来区分,消费前先判断标识有没有被消费过,若已消费过,则直接ACK)3、RabbitMQ如何保证消息的顺序性将消息放入同一个交换机,交给同一个队列,这个队列只有一个消费者,消费者只允许同时开启一个线程

2021-05-20 16:36:48 247

转载 以太坊存储结构

虽然我们可以预料以后最大的 dApp 平台迟早会来自中国,不过目前吸引了大多数软件开发人员眼光的却是“以太坊”。以太坊有着很好的开端,轻松的占有全球范围内 30k 名开发人员和超过 500 多家初创公司的资源。以太坊显然已是开发人员首选的 dApp 平台。由于以太坊解决了可扩展性问题,它将有效地从比特币投机性价格波动中解脱出来。如果说比特币是一场赌博,以太坊就是一个已经确定的事实了。更多干货内容请关注微信公众号“区块链前哨”,(ID:blockchain-666)以太坊的创建者 Vitalik B...

2020-12-30 16:05:36 1173

转载 记录一次MySQL两千万数据的大表优化解决过程,提供三种解决方案

概述使用阿里云rds for MySQL数据库(就是MySQL5.6版本),有个用户上网记录表6个月的数据量近2000万,保留最近一年的数据量达到4000万,查询速度极慢,日常卡死。严重影响业务。问题前提:老系统,当时设计系统的人大概是大学没毕业,表设计和sql语句写的不仅仅是垃圾,简直无法直视。原开发人员都已离职,到我来维护,这就是传说中的维护不了就跑路,然后我就是掉坑的那个!!!我尝试解决该问题,so,有个这个日志。方案概述方案一:优化现有mysql数据库。优点:不影响现有业务,源程

2020-11-02 15:33:24 702

转载 第三方通过微信APP支付流程

本章文献基本都来源于微信支付平台,详情请看微信官方文档:APP支付系统交互图文档位置:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_3APP支付-业务流程根据文档内容,服务端只要做好获取 prepay_id 和 sign 传送给客户端,并做好回调接收处理就行服务端demoAPP支付文档里面的demo,主要是供客户端使用的,对后台来说,基本没什么用。不过,依旧有我们后端可以直接拿来使用的demo:htt..

2020-10-22 13:22:27 1551

转载 服务器限流

开涛大神在博客中说过:在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。本文结合作者的一些经验介绍限流的相关概念、算法和常规的实现方式。缓存缓存比较好理解,在大型高并发系统中,如果没有缓存数据库将分分钟被爆,系统也会瞬间瘫痪。使用缓存不单单能够提升系统访问速度、提高并发访问量,也是保护数据库、保护系统的有效方式。大型网站一般主要是“读”,缓存的使用很容易被想到。在大型“写”系统中,缓存也常常扮演者非常重要的角色。比如累积一些数据批量写入,内存里面的缓存队列(生产消费),以及HBase写数据

2020-07-28 15:20:58 1858

转载 RSA加密、解密、签名、验签的原理及方法

一、RSA加密简介  RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。两者之间有数学相关,该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。通常个人保存私钥,公钥是公开的(可能同时多人持有)。  二、RSA加密、签名区别  加密和签名都是为了安全性考虑,但略有不同。常有人问加密和签名是用私钥还是公钥?其实都是对加密和签名的作用有所混淆。简单的说

2020-07-02 15:40:30 201

转载 Hmac-sha256签名和验证

下面的示例演示如何使用HMACSHA256对象,然后验证文件的方法来对文件进行签名。C#using System;using System.IO;using System.Security.Cryptography;public class HMACSHA256example{ public static void Main(string[] Fileargs) { string dataFile; string signedFile;...

2020-07-02 13:51:52 4669

转载 散列算法进行数据验证与加密

散列算法进行数据验证与加密散列算法散列是信息的提炼,通常其长度要比信息小得多,且为一个固定长度。加密性强的散列一定是不可逆的,这就意味着通过散列结果,无法推出任何部分的原始信息。任何输入信息的变化,哪怕仅一位,都将导致散列结果的明显变化,这称之为雪崩效应。散列还应该是防冲突的,即找不出具有相同散列结果的两条信息。具有这些特性的散列结果就可以用于验证信息是否被修改。单向散列函数一般用于产生消息摘要,密钥加密等,常见的有:MD5(Message Digest Algorithm 5)..

2020-06-30 10:33:10 1599

转载 加密算法及实现

浅谈常见的七种加密算法及实现前言数字签名、信息加密是前后端开发都经常需要使用到的技术,应用场景包括了用户登入、交易、信息通讯、oauth等等,不同的应用场景也会需要使用到不同的签名加密算法,或者需要搭配不一样的签名加密算法来达到业务目标。这里简单的给大家介绍几种常见的签名加密算法和一些典型场景下的应用。正文1. 数字签名数字签名,简单来说就是通过提供可鉴别的数字信...

2020-04-30 17:53:04 599

转载 拜占庭将军问题与PBFT算法和POW共识

1 拜占庭将军问题Leslie Lamport(莱斯利·兰波特)在论文《The Byzantine Generals Problem》提出拜占庭将军问题:一组拜占庭将军分别各率领一支军队共同围困一座城市。为了简化问题,将各支军队的行动策略限定为进攻或撤离两种。因为部分军队进攻部分军队撤离可能会造成灾难性后果,因此各位将军必须通过投票来达成一致策略,即所有军队一起进攻或所有军队一起撤离。因为...

2020-02-16 16:30:49 11809 2

转载 负载均衡的几种手段

1)http重定向HTTP重定向服务器就是一个普通的服务器,当用户访问时,其会根据一定的算法得到服务器集群的一个真实服务器的IP地址,将其放在HTTP响应头中,响应状态码为(302),当用户浏览器接收到这个响应时,会将得到的真实服务器的IP地址提出并重新访问。如上图所示,当用户访问域名时通过DNS解析得到114.100.20.200,然后访问114.100.20.200,也就是HTTP重定向服...

2019-09-14 22:32:59 233

转载 浅谈消息队列及常见的消息中间件

浅谈消息队列及常见的消息中间件前言消息队列 已经逐渐成为企业应用系统 内部通信 的核心手段。它具有 低耦合、可靠投递、广播、流量控制、最终一致性 等一系列功能。当前使用较多的 消息队列 有 RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMQ 等,而部分 数据库 如 Redis、MySQL 以及 phxsql 也可实现消息队列的功能。...

2019-09-10 15:28:48 210

转载 在 Windows 上可以用 Docker 吗?

Docker,或者准确一点说,容器技术,在近几年里几乎成为了应用分发和集群部署的默认技术了。背景部分,如果感兴趣,请参考闲谈集群管理模式一文。Docker 生态的成熟还有赖于其周边工具和实践模式的兴起。比如,曾经雨后春笋般出现的编排技术,以及基于容器技术的 DevOps 实践大规模地开展。那么这么好的技术,在 Windows 上能用吗?在各种场合,都有人与我讨论这个的话题。每次听到这样的疑...

2019-08-22 10:41:59 4444

转载 select,poll,epoll比较

 select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到...

2019-08-21 14:41:07 111

转载 PCM音频振幅知识

一.声音的相关概念声音是介质振动在听觉系统中产生的反应。声音总可以被分解为不同频率不同强度正弦波的叠加(傅里叶变换)。声音有两个基本的物理属性:频率与振幅。声音的振幅就是音量,频率的高低就是指音调,频率用赫兹(Hz)作单位。人耳只能听到20Hz到20khz范围的声音。模拟音频(Analogous Audio),用连续的电流或电压表示的音频信号,在时间和振幅上是连续。在过去记录声音记录的...

2019-08-20 10:20:42 14049

转载 FFmpeg(9)-解码器解码代码示例

下面是转载的一个codec的例子代码:红色部分是我标注的关键的代码:FFmpeg(9)-解码器解码代码演示(FFmpeg调用MediaCodec实现硬解码、多线程解码、及音视频解码性能测试)一.AVFrame用来存放解码后的数据。【相关函数】AVFrame *frame = av_frame_alloc();// 空间分配,分配一个空...

2019-07-25 14:33:53 1255

转载 Web app会代替原生app吗?

Web app会代替原生app吗?前几天和朋友聊到html5会不会替代原生app的问题,引起了我的兴趣。这个也会影响到广大做ios开发和andriod开发的程序员的饭碗。下面我们不直接回答这个问题,毕竟方向性的事情,我们不轻易下结论。这里我们来看看原生用到的html的dom解析和渲染,尤其是渲染中的性能瓶颈。下面的文章也是我从其他地方看到了,如果有问题,请大家斧正。...

2019-07-19 17:43:29 963

转载 mysql事务和锁InnoDB

背景MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思路,运用此思路,拿到任何一条SQL语句,都能完整的分析出这条语句会加什么锁?会有什么样的使用风险?甚至是分析线上的一个...

2019-06-20 22:38:20 424

转载 图文详解YUV420数据存储格式

YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的。YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma)...

2019-04-18 13:57:16 6801

转载 解释YUV444,YUV422,YUV420

通常我们用RGB表示一种彩色。计算机系统里的LCD显示的数据就是RGB来表示每个像素的颜色。而在我们生活里,有黑白电视机与彩色电视机两种,拍摄节目源时不可以用两种不同的摄像机来存放两种图像数据。所以为了兼容两种电视机,专家就引入YUV格式代替RGB,其中Y表示亮度, U和V表示色差。 黑白电视机只用Y信号, 而彩色电视机可由YUV转换成RGB再显示颜色。通常我们所用的YUV格式是 ITU-...

2019-04-18 13:35:38 2343

转载 解决linux系统GBK网站乱码问题

昨天将新开的图片网站放到刚买的centos上,结果出现乱码!上传的程序如DEDECMS,帝国PHPCMS或者搬家的discuz论坛程序都是GBK版本的,而默认安装的CENTOS操作系统支持的是UTF-8,这就造成了乱码现象。那么知道了原因就来解决这个问题吧,今天就介绍一下如何让美国linux系统vps默认支持GBK编码的程序吧!解决方法如下:用SSH登录到服务器后进入ROOT权限,然后到这...

2019-01-27 16:11:57 2235

转载 Linux下安装mysql

 Linux下安装mysql 到mysql官网下载mysql编译好的二进制安装包,在下载页面Select Platform:选项选择linux-generic,然后把页面拉到底部,64位系统下载Linux - Generic (glibc 2.5) (x86, 64-bit),32位系统下载Linux - Generic (glibc 2.5) (x86, 32-bit)   ...

2019-01-23 22:21:32 166

转载 mysql在linux上出现Access denied for user 'root'@'localhost' (using password: NO)解决方案

1.查看当前密码:sudo cat /root/.mysql_secret2.登陆:mysql -uroot -p 提示密码时输入上条命令cat出来的密码,成功登陆mysql3.通过mysql命令修改密码:alter user 'root'@'localhost' identified by ’登陆进来的密码’;4.update mysql.user set authenticatio...

2019-01-23 22:19:55 8170 1

转载 基于数组的无锁队列(译)

1 引言最近对于注重性能的应用程序,我们有了一种能显著提高程序性能的选择:多线程.线程的概念实际上已经存在了很长时间.在过去,多数计算机只有一个处理器,线程主要用于将一个大的任务拆分成一系列更小的执行单元.以使得当其中某些执行单元因为等待资源而被阻塞的时候剩余的执行单元能继续执行。举个示例,一个网络应用程序,它监听一个TCP端口,当有外部请求到达时,处理请求.对于一个单线程的应用程序来说,只能...

2019-01-14 17:33:51 244

转载 缓冲区溢出(Buffer Overflow)

堆栈溢出堆栈溢出通常是所有的缓冲区溢出中最容易进行利用的。了解堆栈溢出之前,先了解以下几个概念:缓冲区 简单说来是一块连续的计算机内存区域,可以保存相同数据类型的多个实例。 堆栈 堆 栈是一个在计算机科学中经常使用的抽象数据类型。堆栈中的物体具有一个特性:最后一个放入堆栈中的物体总是被最先拿出来,这个特性通常称为后进先出 (LIFO)队列。堆栈中定义了一些操作。两个最重要的是PU...

2019-01-14 11:13:55 12695

转载 更新缓存一致性的问题

看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还是老的数据,导致缓存中的数据是脏的,而且还一直这样脏下去了。所以,这篇文章介绍了几个缓存更新的D...

2018-12-04 23:06:11 2289

转载 mysql中innodb和myisam对比及索引原理区别

InnoDB和MyISAM是很多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,5.7之后就不一样了1、事务和外键InnoDB具有事务,支持4个事务隔离级别,回滚,崩溃修复能力和多版本并发的事务安全,包括ACID。如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提高多用户并发操作的性能MyISAM管理非事务表。它提供高速存储和检索,以...

2018-11-23 16:59:27 179

转载 MyISAM与InnoDB的索引差异

B+树,它是一种非常适合用来做数据库索引的数据结构:(1)很适合磁盘存储,能够充分利用局部性原理,磁盘预读;(2)很低的树高度,能够存储大量数据;(3)索引本身占用的内存很小;(4)能够很好的支持单点查询,范围查询,有序性查询; 数据库的索引分为主键索引(Primary Inkex)与普通索引(Secondary Index)。InnoDB和MyISAM是怎么利用B+树来实...

2018-11-23 00:20:21 99

转载 Premultiplied Alpha

Premultiplied Alpha 这个概念做游戏开发的人都不会不知道。Xcode 的工程选项里有一项 Compress PNG Files,会对 PNG 进行 Premultiplied Alpha,Texture Packer 中也有Premultiplied Alpha 的选项。那么问题来了,Premultiplied Alpha 是什么呢?我被这个问题困惑了很久,之前搜到过 Nvidi...

2018-08-30 16:57:09 212

转载 平衡查找树之红黑树

红黑树(Red-Black Tree)定义红黑树的主要是想对2-3查找树进行编码,尤其是对2-3查找树中的3-nodes节点添加额外的信息。红黑树中将节点之间的链接分为两种不同类型,红色链接,他用来链接两个2-nodes节点来表示一个3-nodes节点。黑色链接用来链接普通的2-3节点。特别的,使用红色链接的两个2-nodes来表示一个3-nodes节点,并且向左倾斜,即一个2-node是...

2018-08-23 15:33:38 174

转载 Hadoop大数据开发学习路线图

第一阶段:Hadoop生态架构技术语言基础Java:掌握javase知识,多理解和实践在Java虚拟机的内存管理、以及多线程、线程池、设计模式、并行化就可以,不需要深入掌握。Linux:系统安装(命令行界面和图形界面)、基本命令、网络配置、Vim编辑器、进程管理、Shell脚本、虚拟机的菜单熟悉等等。Python:基础语法,数据结构,函数,条件判断,循环等基础知识。 环境准...

2018-08-14 23:07:41 281

原创 ajax下post方式如何下载文件

using 隐藏的iframe来处理,不多说,直接上代码:                         var DownLoadFile = function (options) {                            var config = $.extend(true, { method: 'post' }, options);                ...

2018-08-08 09:15:57 3923

转载 高效的C++ 库

我开始质疑自己对使用 C++ 的判断。于是我决定调查一下,看看使用 C++ 是好是坏。生产效率虽然 C++ 不是一种动态语言,但是现代的 C++(C++11/14)有类型推断。对于使用 C++ 编写代码存在很多误解,如,我们一定要使用原始指针来编写代码,一定要输入冗长的命名空间或者类型,一定要手动管理内存。C++ 使我们感到更高生产效率的一个关键特性是 auto 特性。我们不一定要输入冗长的命名空...

2018-07-04 15:43:16 606

原创 Django用户登录与注册系统

1.1.创建项目和appdjango-admin startproject mysite_loginpython manage.py startapp login1.2.设置时区和语言Django默认使用美国时间和英语,在项目的settings文件中,如下所示:LANGUAGE_CODE = 'en-us'TIME_ZONE = 'UTC'USE_I18N = TrueUSE_L1...

2018-06-04 10:00:05 117044 176

转载 大数据经典学习路线

1.Linux基础和分布式集群技术学完此阶段可掌握的核心能力:熟练使用Linux,熟练安装Linux上的软件,了解熟悉负载均衡、高可靠等集群相关概念,搭建互联网高并发、高可靠的服务架构;学完此阶段可解决的现实问题:搭建负载均衡、高可靠的服务器集群,可以增大网站的并发访问量,保证服务不间断地对外服务;学完此阶段可拥有的市场价值:具备初级程序员必要具备的Linux服务器运维能力。1.内容介绍:在大数据...

2018-05-30 18:04:01 1126 1

转载 大型网站技术架构

1. 初始阶段的网站架构一般来讲,大型网站都是从小型网站发展而来,一开始的架构都比较简单,随着业务复杂和用户量的激增,才开始做很多架构上的改进。当它还是小型网站的时候,没有太多访客,一般来讲只需要一台服务器就够了,这时应用程序、数据库、文件等所有资源都在一台服务器上,网站架构如下图所示:2. 应用服务和数据服务分离随着网站业务的发展和用户量的增加,一台服务器就无法再满足需求了。大量用户访问导致访问...

2018-05-22 13:08:55 744

转载 十种流行进程注入技术详细分析

导语:流程注入是一种恶意软件和无文件间谍攻击中使用的最为广泛的漏洞攻击技术,而且在攻击时还需要在另一个进程的地址空间内运行自定义代码。前言流程注入是一种恶意软件和无文件间谍攻击中使用的最为广泛的漏洞攻击技术,而且在攻击时还需要在另一个进程的地址空间内运行自定义代码。过程注入除了提高了攻击的隐蔽性之外,也实现了持久性攻击。尽管目前有许多流程注入技术,但在本文中,我只介绍十种在野外看到的能够运用另一个...

2018-05-11 14:42:41 9008 1

转载 D3D函数hook

目前讲的内容已经足够制作大部分游戏的修改器了,主要看你对API的熟悉程度和逆向调试的经验再深入讲的话就是系统内核层了,比如SSDT hook什么的,而一般单机游戏不会用到内核层的保护(但是大部分网游会),而且调试和修改内核层的东西比较麻烦,很容易蓝屏,所以不打算讲内核的东西本章介绍怎么hook D3D函数,实现在游戏画面中显示自己的文字,阅读之前最好补习下D3D编程的知识,本章以D3D9、32位程...

2018-05-11 14:40:46 3462 1

转载 Windows上Python3.6环境django部署到Apache服务器

最近在部署一个django项目到Apache服务器上遇到了不少问题现整理个完整流程1.准备工作python版本:python3.6.1 64位django版本:django 1.11.2Apache版本:2.4.26 64位2.安装Apacheapache官方网站http://httpd.apache.org/根据自己的环境选择相应的版本进行下载把下载后的安装包解压到安装路径修改conf/http...

2018-05-03 13:40:42 1000

转载 django注册界面自定义

注册10 月,4 周前  10010 字  14900 阅读  53 评论用户注册就是创建用户对象,将用户的个人信息保存到数据库里。回顾一下 Django 的 MVT 经典开发流程,对用户注册功能来说,首先创建用户模型(M),这一步我们已经完成了。编写注册视图函数(V),并将为视图函数绑定对应的 URL。编写注册模板(T),模板中提供一个注册表单给用户。Django 用户系统内置了登录、修改密码、...

2018-04-26 15:14:44 2042

Thinkphp开发手册

Thinkphp3.1.2 开发手册,格式是chm的。

2014-10-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除