源码

Zabbix的安装(源码安装)

瘦欲@ 提交于 2020-01-16 20:34:36
zabbix3.0完全安装 安装zabbix首先需要安装ltmp(lnmp),这里的t是指tengine(taobao的nginx版本),安装教程见 http://www.ltmp.cc 安装的时候 PHP 选择5.4版本,因为zabbix3.0需要php5.4以上版本。 安装完成以后,就开始安装zabbix了。 系统需求: 需要5GB以上硬盘剩余空间 2G以上内存,OpenVZ的建议2G以上(小内存请勿使用64位系统) VPS或服务器必须已经联网! Linux下区分大小写,输入命令时请注意! 安装步骤: 1.使用putty或类似的SSH工具登陆VPS或服务器; 添加dns参数,防止默认装机没有dns导致安装失败 1 echo "nameserver 114.114.114.114" >> /etc/resolv.conf yum-fastestmirror,自动选择最快的yum源,可以加快安装进度。 #centos5\centos6: 1 yum -y install yum-fastestmirror #centos4: 1 yum -y install yum-plugin-fastestmirror 为了防止安装过程中中断,可以先安装screen,同时安装下载工具wget 1 [root@LTMP]# yum install screen wget -y 2.登陆后运行:

django源码解析(五)

依然范特西╮ 提交于 2020-01-16 16:45:21
书接上回, 我们说完了django重启的过程, 留下了一个 inner_run , 这一节, 我们就来看看 inner_run 里是如何执行的 inner_run 代码太长, 前面的信息显示就跳过了. handler = self . get_handler ( * args , ** options ) run ( self . addr , int ( self . port ) , handler , ipv6 = self . use_ipv6 , threading = threading , server_cls = self . server_cls ) 首先是 get_handler , 这个handler是用来处理request请求的. 首先, 父类的 get_handler 拿到的wsgi handler, 但是在开发环境, 默认返回的是附带有静态资源管理的handler, 也就是 StaticFilesHandler . 拿到handler以后, 调用django自带的 run 函数 httpd_cls默认是django的htppbase中的 WSGIServer , WSGIServer 又是继承自python系统库 simple_server.WSGIServer 这里的先捋捋server的继承关系 BaseServer => TCPServer =>

MySQL源码安装参数详解如下

Deadly 提交于 2020-01-16 11:25:44
参数说明 cmake. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql55 cmake编译 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock 通信文件位置 -DMYSQL_DATADIR=/data/myql mysql数据存放路径 -DSYSCONFDIR=/etc 配置文件路径 -DMYSQL_USER=mysql mysql运行用户 -DMYSQL_TCP_PORT=3306 mysql监听端口 -DWITH_XTRADB_STORAGE_ENGINE=1 开启XtraDB引擎支持 -DWITH_INNOBASE_STORAGE_ENGINE=1 开启InnoDB引擎支持 -DWITH_PARTITION_STORAGE_ENGINE=1 开启Partition引擎支持 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 开启BlackHole引擎支持 -DWITH_MYISAM_STORAGE_ENGINE=1 开启MyISAM引擎支持 -DWITH_READLINE=1 启用快捷键功能 -DENABLED_LOCAL_INFILE=1 允许从本地导入数据 -DWITH_EXTRA_CHARSETS=1 支持额外的字符集 -DDEFAULT_CHARSET=utf8 默认字符集UTF-8 -DDEFAULT

【一起学源码-微服务】Hystrix 源码二:Hystrix核心流程:Hystix非降级逻辑流程梳理

久未见 提交于 2020-01-16 08:53:48
说明 原创不易,如若转载 请标明来源! 欢迎关注本人微信公众号: 壹枝花算不算浪漫 更多内容也可查看本人博客: 一枝花算不算浪漫 前言 前情回顾 上一讲我们讲了配置了feign.hystrix.enabled=true之后,默认的Targeter就会构建成 HystrixTargter , 然后通过对应的 HystrixInvocationHandler 生成对应的动态代理。 本讲目录 这一讲开始讲解Hystrix相关代码,当然还是基于上一个组件Feign的基础上开始讲解的,这里默认你已经对Feign有过大致了解。 目录如下: 线程池初始化过程 HystrixCommand通过线程池执行原理 由于这里面代码比较多,所以我都是将一些主要核心代码发出来,这里后面会汇总一个流程图,可以参考流程图 自己一点点调试。 这里建议在回调的地方都加上断点,而且修改feign和hystrix超时时间,浏览器发送请求后,一步步debug代码。 源码分析 线程池初始化过程 上一讲已经讲过激活Hystrix后,构造的InvocationHandler为 HystrixInvocationHandler ,所以当调用FeignClient服务实例的时候,会先执行 HystrixInvocationHandler.invoke() 方法,这里我们先跟进这个方法: final class

ThreadLocal源码分析

空扰寡人 提交于 2020-01-16 07:28:18
目录 ThreadLocal源码分析 简单分析 什么是ThreadLocal 大致实现思路 使用场景 源码分析 ThreadLocalMap ThreadLocal 参考博客 ThreadLocal源码分析 简单分析 什么是ThreadLocal ThreadLocal顾名思义可以理解为线程本地变量。也就是说如果定义了一个ThreadLocal,每个线程往这个ThreadLocal中读写是线程隔离(也就是每个线程读写都是自己的一份独立对象,与其他线程是无关的,当然前提是不同线程set的不是同一个对象的引用),互相之间不会影响的。它提供了一种将可变数据通过每个线程有自己的独立副本从而实现线程封闭的机制。 大致实现思路 Thread类有一个类型为ThreadLocal.ThreadLocalMap的实例变量threadLocals,也就是说每个线程有一个自己的ThreadLocalMap。ThreadLocalMap有自己的独立实现,可以简单地将它的key视作为ThreadLocal,value为代码中放入的值(实际上key并不是ThreadLocal本身,而是他的一个人弱引用)。每个线程在往某个ThreadLocal里赛值得时候,都会往自己的ThreadLocalMap里存,读也是以某个ThreadLocal作为引用,在自己的map里找对应的key,从而实现了线程隔离。 使用场景 1

微信公众号第三方平台开发概况

允我心安 提交于 2020-01-16 02:53:52
  首先要知道为什么要用公众号第三方平台, 公众号第三方平台的开放,是为了让公众号运营者,在面向垂直行业需求时,可以一键登录授权给第三方的公众号运营平台,通过第三方开发者提供的公众号第三方平台来完成相关业务。 简单来说就是不懂技术的小白用户一键授权给第三方公司代理开放的权限如发送消息等,不用填写一些繁琐的Appid,AppSecret,URL,Token等信息。博客中已有园友写了详细的内容,以下只是强调开发过程中的一些问题。 微信的授权流程 具体的详情请见官网 接下来就首先要申请公众号第三方平台,具体流程见 官网 。特别注意的是 平台名称是不可以改变 的,一个账户只能创建 5个第三方平台 ,如果填写错了资源就浪费了,且资质认证需要300RMB。 权限集就根据你的实际需要选择,一旦授权后将会 拦截用户公众号发过来的所有信息 。 开发资料包含两部分:登录授权相关、授权后代替公众号实现业务。 授权测试公众号 和 授权体验页 还有 白名单列表 需要注意,后面测试时需要用到,不要用其它测试帐号,否则一旦出现问题找原因会浪费很多时间。 最后等待两三天就审核通过。   开发注意事项 推送 component_verify_ticket 协议,component_verify_ticket是微信端服务器每隔10分钟定时推送给上面所填授权通知页,我们要把component_verify

ThreadLocal源码

£可爱£侵袭症+ 提交于 2020-01-15 21:23:09
public class ThreadId { // Atomic integer containing the next thread ID to be assigned private static final AtomicInteger nextId = new AtomicInteger(0); // Thread local variable containing each thread's ID private static final ThreadLocal<Integer> threadId = new ThreadLocal<Integer>() { @Override protected Integer initialValue() { return nextId.getAndIncrement(); } }; // Returns the current thread's unique ID, assigning it if necessary public static int get() { return threadId.get(); } } public class ThreadLocal { private final int threadLocalHashCode = nextHashCode(); private static

Mobx源码解析-observable

喜欢而已 提交于 2020-01-15 21:05:10
前言 最近一直在用Mobx开发中小型项目,开发起来真的,真的很爽,响应式更新,性能快,样板代码减少(相对Redux)。所以,想趁2019年结束前把Mobx源码研究一遍。 Tips 由于MobX的源码很大,因此只会把个人认为比较重要的部分截取说明 阅读的MobX源码版本@5.15.0 由于本人对TypeScript经验尚浅,所以我会将其编译成JavaScript阅读 下面会用mobx-source简称代替Mobx 如何调试源码 $ git clone https://github.com/mobxjs/mobx.git $ cd mobx $ cnpm i 查看 package.json ,发现执行脚本有 quick-build 和 small-build ,我选择的是 small-build , cnpm run small-build 然后在根目录下会生成 .build.es5 和 .build.es6 "scripts": { "quick-build": "tsc --pretty", "small-build": "node scripts/build.js" }, 把 .build.es6 改名为 mobx-source 放到我写好的脚手架中 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ef3w4UV9-1579079764970)

Java集合源码解析之ArrayList

拟墨画扇 提交于 2020-01-15 20:17:39
uml类图: 基本简介: ArrayList的底层数据结构是数组,所以内存需要为arrayList保证有足够的连续的内存空间。 添加操作会导致数组扩容,数组扩容比较消耗性能。 非尾部的添加和删除元素操作会涉及数组元素的移动,也比较消耗性能。 由于是数组结构,所以可以通过下标进行随机访问,时间复杂度为O(1),性能好。 这里只讲部分重要的方法: modCount成员在AbstractList中定义,这个记录着集合对象的修改次数,是failfast机制的判断依据。 failfast机制请看:https://blog.csdn.net/qq_40837310/article/details/103993535 public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable { private static final long serialVersionUID = 8683452581122892189L; //默认的数组大小 private static final int DEFAULT_CAPACITY = 10; //一个类共享的空数组 private static final Object[] EMPTY

zlib库VS2015编译步骤

北慕城南 提交于 2020-01-15 19:24:02
[点击这里下载zlib1.2.8源码]( http://zlib.net/zlib128.zip) [点击这里下载zlib1.2.8编译动态库]( http://zlib.net/zlib128-dll.zip) #下载源码库# 从上面给出的源码路径下载zlib源码库,如果不想自己编译,可以使用上面给出的二进制包直接使用,无视本文。 #编译步骤# ##编译方法一## - 解压源码文件到指定目录,例如 x:\zlib - 打开VS2015的Developer Command Prompt for VS2015工具 - 切换到x:\zlib\contrib\masmx86目录,如果想编译x64的,可以进入masmx64目录,我这里只使用32位 - 执行bld_ml32.bat文件,静待片刻会在文件目录中产生4个文件 - 将生成文件中的inffas32.obj和match686.obj文件复制到根目录 x:\zlib下 - 将 Developer Command Prompt for VS2015工具目录切换到根目录 x:\zlib - 执行nmake命令 ``` nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" OBJA="inffas32.obj match686.obj" ``` - 编译成功以后,就会在根目录产生一系列文件