-
Spring+Log4j+ActiveMQ实现远程记录日志——实战+分析
应用场景 随着项目的逐渐扩大,日志的增加也变得更快。Log4j是常用的日志记录工具,在有些时候,我们可能需要将Log4j的日志发送到专门用于记录日志的远程服务器,特别是对于稍微大一点的应用。这么做的优点有: 1可以集中管理日志:可以把多台服务器上的日志都发送到一台日志服务器上,方便管理、查看和分析 2 3可以减轻服务器的开销:日志不在服务器上了,因此服务器有更多可用的磁盘空间 4 5可以提高服务器…- 11
- 0
-
PHP一致性Hash
随着memcache、Redis以及其它一些内存K/V数据库的流行,一致性哈希也越来越被开发者所了解。因为这些内存K/V数据库大多不提供分布式支持(本文以redis为例),所以如果要提供多台redis server来提供服务的话,就需要解决如何将数据分散到redis server,并且在增减redis server时如何最大化的不令数据重新分布,这将是本文讨论的范畴。 取模算法 取模运算通常用于得…- 14
- 0
-
使用Rust开发编译系统(C以及Rust编译的过程)
C以及Rust编译的过程 主流的编译器 GCC LLVM C语言编译过程 LLVM编译过程 将C源码转为LLVM IR * 将IR转化为BitCode * 将BitCode转为目标平台汇编码 * 执行BitCode Rust编译过程 下一步做什么 主流的编译器 GCC GCC编译器是由GNU开发的编译器,原名为GUN编译器,原本只能处理C语言随着发展,后续支持了C++,Java,Go等语言,所以改…- 67
- 0
-
理解Go语言Web编程(下)
ListenAndServe函数 前面所有示例程序中,都在main函数中调用了ListenAndServe函数。下面对此函数所做的工作进行分析。该函数的实现为: 1func ListenAndServe(addr string, handler Handler) error { server := &Server{Addr: addr, Handler: handler} re…- 19
- 0
-
使用Python脚本实现MySQL误操作的快速回滚
1.简介 在Oracle数据库中,当一个误操作被提交后,我们可以通过Oracle提供的闪回功能将表闪回至误操作之前的状态。mysql中没有原生的flushback功能,DBA误操作时,传统的恢复方式是利用全备+二进制日志前滚进行恢复。 今天给大家介绍一种使用Python脚本在MySQL中实现类似Oracle中flushback table的闪回功能,相比于传统的全备+增备,本方法更为快速、简单。 …- 49
- 0
-
PHP中的MD5加密
综述:密码学是研究编制密码(我们简称为加密:encode)和破译密码(我们称之为解密:decode)的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。通常情况下,人们将可懂的文本称为明文;将明文变换成的不可懂的文本称为密文。把明文变换成密文的过程叫加密;其逆过程,即把密文变换成明文的过程叫解密。 PHP中提供…- 2
- 0
-
JavaScript闭包
JavaScript预解析 JS的解析和执行过程 代码案例 - 思考:下列代码是否会报错,区别于其他语言。 1console.log(a); 2var a = 2; 3conosle.log(a); 4 5 该代码的输出结果为undefined 2(在c++中这样的代码是会报错的,但是在JavaScript中不会报错,由于发生了预解析的过程) 1// 从解析器角度看到的代码 2var a; 3co…- 15
- 0
-
理解Go语言Web编程(上)
断断续续学Go语言很久了,一直没有涉及Web编程方面的东西。因为仅是凭兴趣去学习的,时间有限,每次去学,也只是弄个一知半解。不过这两天下定决心把Go语言Web编程弄懂,就查了大量资料,边学边记博客。希望我的这个学习笔记对其他人同样有帮助,由于只是业余半吊子学习,文中必然存在诸多不当之处,恳请读者留言指出,在此先道一声感谢! 本文只是从原理方面对Go的Web编程进行理解,尤其是详细地解析了net/h…- 9
- 0
-
PHP实现四种基本排序算法
许多人都说算法是程序的核心,算法的好坏决定了程序的质量。作为一个初级phper,虽然很少接触到算法方面的东西。但是对于基本的排序算法还是应该掌握的,它是程序开发的必备工具。这里介绍冒泡排序,插入排序,选择排序,快速排序四种基本算法,分析一下算法的思路。 前提:分别用冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中的值按照从小到大的顺序进行排序。 $arr(1,43,54,62,21,66…- 2
- 0
-
使用Rust编写操作系统(位运算)
位运算 位运算 与运算 或运算 兼或 * 异或 非运算 位移运算 位运算的用途 计算2的N次幂 合并位 提取位 大小写转换 BitMask 设置状态 * 清楚状态 * 判断状态 开始干活 使用宏 开始测试 接下来要做什么 在上一篇文章中我们实现了两个基础的宏print和println在本节中我们需要开始编写常用的函数,在编写之前我们需要掌握一些位的运算知识 位运算 我们知道计算机中采用二进制数表示…- 30
- 0
-
必须要注意的 C++ 动态内存资源管理(六)——vector的简单实现
十六.myVector分析 我们知道,vector类将其元素存放在连续的内存中。为了获得可接受的性能,vetor预先分配足够大的内存来保存可能需要的更多元素。vector的每个添加元素的成员函数会检查是否有空间容纳更多的元素。如果有,成员函数会在下一个可用位置构造一个对象。如果没有可用空间,vector就会重新分配空间;它获得新的空间,将已有元素移动到新空间中,释放旧空间,并添加新…- 9
- 0
-
nginx切割日志脚本(python)
因为以前没有做nginx日志分割,有时候想看日志的时候总是发现有十几G的甚至上百G的日志文件,于是就想使用python写个nginx日志分割(当然你也可以使用shell来完成都是很简单) 需求: 1.按照日分割nginx所有日志 2.由于日志不需要随时可以查看,需要做归档(压缩.tar.gz) 3.归档日志需要有过期时间和容量限制(分割日志需要做定期的删除,超过一定时间或者目录大小超过一定容量) …- 16
- 0
-
使用Rust开发编译系统(基本介绍以及建立项目)
建立项目 基本介绍 建立项目 编译系统的过程 下一步要做什么 基本介绍 在本专栏中我们将使用rust编写C语言的编译系统,包括编译器,链接器,汇编器,文章跟之前的风格一样,将项目分为独立的子模块,每篇文章对每个模块或者子功能进行讲述,编写代码之前会讲述所需要的理论知识 建立项目 Rust安装请看这里 建立一个项目需要用到Cargo,Cargo在安装Rust时就会安装 通过Cargo提供的命令很容易…- 35
- 0
-
Windows内存管理机制及C++内存分配实例(一):进程空间
本文背景: 在编程中,很多Windows或C++的内存函数不知道有什么区别,更别谈有效使用;根本的原因是,没有清楚的理解操作系统的内存管理机制,本文企图通过简单的总结描述,结合实例来阐明这个机制。 本文目的: 对Windows内存管理机制了解清楚,有效的利用C++内存函数管理和使用内存。 本文内容: 本文一共有六节,由于篇幅较多,故按节发表。其他章节请看本人博客的Windows内存管理及C++内存…- 15
- 0
-
apache bench+python脚本压测统计TPS和延迟
一、系统的瓶颈 压测的目的就是跑垮系统,达到系统承受最大值。本次压测考虑的方面: 1、CPU利用率、磁盘IO利用率 2、达到系统瓶颈后,再次增大并发和最大连接数吞吐量和延迟反而会下降 3、压测的机器选择,我是在服务器本机上跑的,这会使得压测程序占用一部分CPU,网络延迟几乎为0;而在笔记本上跑,网络延迟占很大部分。 二、python脚本 关于ab的参数分析在上一篇文章中介绍了,网上关于ab都是基于…- 29
- 0
-
JavaScript继承详解(五)
在本章中,我们将分析John Resig关于JavaScript继承的一个实现 - Simple JavaScript Inheritance。 John Resig作为jQuery的创始人而声名在外。是《Pro JavaScript Techniques》的作者,而且Resig将会在今年秋天推出一本书《JavaScript Secrets》,非常期待。 调用方式 调用方式非常优雅: 注意:代…- 3
- 0
-
Rust : 红楼梦一书中文字符的统计
一、准备工作 1、相关的库 因为红书中大部分是中文字符,标准库中目前还无法直接处理。因此,在进行分析前,在toml文件中的依赖库中,添加一下以下: 1encoding = "0.2" 2 具体可参考以下资料: 1https://github.com/lifthrasiir/rust-encoding 2 2、红楼梦一书的txt文件。直接找度娘。 二、相关代码 1extern c…- 5
- 0
-
初探C++内存池项目 —(二)内存池的实现及原理详解
一.内存池介绍 为了丰富内容,我在把内存池介绍一遍~ 内存池是池化技术中的一种形式。通常我们在编写程序的时候回使用 new delete 这些关键字来向操作系统申请内存,而这样造成的后果就是每次申请内存和释放内存的时候,都需要和操作系统的系统调用打交道,从堆中分配所需的内存。如果这样的操作太过频繁,就会找成大量的内存碎片进而降低内存的分配性能,甚至出现内存分配失败的情况。 而内存池就是为了解决这个…- 29
- 0
-
python 日志分析统计脚本
python 日志分析统计脚本 脚本类似shell的tail功能,用来统计每分钟的4xx、5xx的状态码数量,统计php执行时间小于1秒、1-5秒、5秒以上的数量,和每秒的并发请求。将结果放到/tmp目录下, 也可以用cacti将结果画图。 1#!/usr/bin/env python 2import time, os 3 4#----------------------------- 5log_…- 23
- 0
-
JavaScript继承详解(四)
文章截图 - 更好的排版 在本章中,我们将分析Douglas Crockford关于JavaScript继承的一个实现 - Classical Inheritance in JavaScript。 Crockford是JavaScript开发社区最知名的权威,是JSON、JSLint、JSMin和ADSafe之父,是《JavaScript: The Good Parts》的作者。 现在…- 5
- 0
-
[易学易懂系列|rustlang语言|零基础|快速入门|(22)|宏Macro]
[易学易懂系列|rustlang语言|零基础|快速入门|(22)|宏Macro] 实用知识 宏Macro 我们今天来讲讲Rust中强大的宏Macro。 Rust的宏macro是实现元编程的强大工具。 宏主要作用为: 1.减少重复代码。 2.编写DSL(Domain-specific languages。 3.可变参数接口定义。 在Rust主要分两种宏: 声明式宏declarative macros…- 70
- 0
-
初探C++内存池项目 —(一)链式栈的实现和原理详解
一.项目介绍 本项目是楼主在实验楼中学习的,这里主要分享一下学习心得和总结一些经验~ 在 C/C++ 中,内存管理是一个非常棘手的问题,我们在编写一个程序的时候几乎不可避免的要遇到内存的分配逻辑,这时候随之而来的有这样一些问题:是否有足够的内存可供分配? 分配失败了怎么办? 如何管理自身的内存使用情况? 等等一系列问题。在一个高可用的软件中,如果我们仅仅单纯的向操作系统去申请内存,当出现内存不足时…- 23
- 0
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!