Falcon部署配置
环境准备Centos7.2
Golang1.8.1
redis 3.2.10
mysql 5.7.21
open-falcon
falcon-dashboard
grafana
Golang 安装配置
下载安装包
解压缩
tar -C /usr/local -zxf go1.8.1.linux-amd64.tar.gz
配置PATH
vim /etc/profile 添加
export PATH=$PATH:/usr/local/go/bin
source /etc/profile
配置GOPATH(工作空间)
vim /root/.bash_profile 添加
export GOPATH=$HOME/go
source /root/.bash_profile
redis 安装配置安装
123yum updateyum install epel-releaseyum install redis
配置
12chkconfig redis statusservice redis start
注意:open-falcon暂不支持redis使用密码连接
my ...
win搭建protobuf python开发环境
搭建环境python 2.7.9
win10
protobuf 3.5.0
pycharm
protobuf编译工具protoc安装下载 protoc-3.5.0-win32.zip.
解压缩到指定目录,配置环境变量PATH。
打开命令行窗口输入:protoc –version 测试。
protobuf python安装1pip install protobuf
测试:
12python>> import google.protobuf
demo测试
创建test.proto描述文件
12345message CDevice{ optional int32 devId = 1; optional string name = 2;}
使用protoc编译test.proto为test_pb2.py文件
1protoc -I ./origin --python_out=./test ./origin/test.proto
编写测试python测试编译生成的py
12345678910111213141516171819202122 ...
React事件处理
React元素的事件处理和DOM元素的事件处理很相似。有下面的一些语法差异:
React事件使用驼峰命名法而不是小写字母+“-”命名法
在JSX中传入函数表达式绑定事件而不是函数名称字符串
例如,在HTML中:
123<button onclick="activateLasers()"> Activate Lasers</button>
在React中略有不同:
123<button onClick={activateLasers}> Activate Lasers</button>
另一个区别是你不能返回false来阻止React中的默认行为。您必须显式调用事件的preventDefault方法。比如,在原生的HTML为了阻止默认的链接行为打开新页面,我们这么写:
123<a href="#" onclick="console.log('The link was clicked.'); return false"> ...
React条件渲染
在React中,你可以创建不同的组件来封装你需要的行为。然后根据应用的状态来渲染需要的内容。
React中的条件渲染和js中的条件表达式一样。使用JavaScript的关键字if或者条件运算符创建表示当前状态的元素,然后React更新UI来匹配元素。
想一下下面两个组件:
1234567function UserGreeting(props) { return <h1>Welcome back!</h1>;}function GuestGreeting(props) { return <h1>Please sign up.</h1>;}
我们创建一个Greeting组件,根据用户是否登录来显示以上组件中的某一个:
12345678910111213function Greeting(props) { const isLoggedIn = props.isLoggedIn; if (isLoggedIn) { return <UserGreeting /& ...
React提升状态
通常,几个组件需要反映相同的变化数据。我们建议将共享状态提升到最接近的共同祖先。让我们看看这是如何工作的。
在本节中,我们将创建一个温度计算器,计算在给定温度下水是否会沸腾。
我们从BoilingVerdict组件开始。它接受一个celsius温度属性,打印这个温度是否可以把把水烧开:
123456function BoilingVerdict(props) { if (props.celsius >= 100) { return <p>The water would boil.</p>; } return <p>The water would not boil.</p>;}
接下来,我们创建一个Calculator组件。它渲染一个<inpu/>输入框让用户输入温度,并把它存储在this.state.temperature。
另外,会渲染输入参数的BoilingVerdict判定结果。
12345678910111213141516171819202122232425 ...
React列表和键
首先,让我们回顾一下如何在JavaScript中转换列表。
下面的代码,我们使用map()函数获取一个numbers数组并将其值加倍。我们把map()返回的新数组指向变量doubled并log输出它:
123const numbers = [1, 2, 3, 4, 5];const doubled = numbers.map((number) => number * 2);console.log(doubled);
代码日志的输出[2, 4, 6, 8, 10]到控制台。
在React中,将元素数组转换为元素列表和上面几乎是相同的。
渲染多个组件你可以构建元素的集合,在JSX中使用大括号{}括起来使用。
下面的代码中我们用map()函数遍历number数组,每一个数字返回一个<li/>元素。最终,我们把生成的元素数组指向变量listItems:
1234const numbers = [1, 2, 3, 4, 5];const listItems = numbers.map((number) => <li>{number}&l ...
React组件和属性
组件让你把用户界面分成独立的,可重复使用的部分,并且将每个部分分开考虑。
概念上组件就像js的function。它们接受任意的输入(props),然后返回描述屏幕上要展现内容的React元素。
函数式组件和类组件最简单定义组件的方法就是写一个js的function:
123function Welcome(props) { return <h1>Hello, {props.name}</h1>;}
这个函数是一个有效的React组件,因为它接受一个单独的“props”参数(属性的汇集对象)并返回一个React组件。我们称呼这些组件为函数式组件,因为他们就是javascript的函数。
也可以使用ES6的class来定义一个组件:
12345class Welcome extends React.Component { render() { return <h1>Hello, {this.props.name}</h1>; } ...
React状态和生命周期
React状态和生命周期考虑之前我们的时钟例子:
1234567891011121314function tick() { const element = ( <div> <h1>Hello, world!</h1> <h2>It is {new Date().toLocaleTimeString()}.</h2> </div> ); ReactDOM.render( element, document.getElementById('root') );}setInterval(tick, 1000);
到目前为止我们只学习了一种更新UI的方法。我们调用ReactDOM.render()来改变渲染输出。
在这里我们将学习如何真正的将Clock组件封装和可重用。它将设置自己的计时器,并且每秒更新一次。
我们从封装时钟对象开始:
1234567891011121314151617function Clock ...
JSX简单说明
JSX使用说明看下面的代码段:
1const element = <h1>Hello, world!</h1>;
这就是JSX,它既不是字符串也不是HTML,它是javascript的语言扩展。在React中推荐使用JSX来描述一个组件。虽然它看起来和模板语言有点相似,但是他具有js的所有功能。
下面是JSX的一些基本知识。
在JSX中使用表达式在JSX中可以使用js表达式,需要用大括号把js表达式包起来。
比如,2+2、user.name、format(name)等有效的js表达式:
12345678910111213141516171819function formatName(user) { return user.firstName + ' ' + user.lastName;}const user = { firstName: 'Harper', lastName: 'Perez'};const element = ( <h1> ...
React元素渲染
React元素渲染元素是React应用的最小构成单元。
一个元素就是用来描述你想在屏幕上看到的内容:
1const element = <h1>Hello, world</h1>;
与浏览器的DOM元素不同,React元素是普通的对象,创建起来代价很小。React DOM负责更新DOM以匹配React元素。
注意:人们可能会将元素与更广为人知的“组件”概念混为一谈。元素是由组件组合而成的。
渲染元素到DOM中假设你的html文件中有一个<div>元素:
1<div id="root"></div>
我们称之为“根”DOM节点,因为它内部的一切都将由React DOM进行管理。
使用React构建的应用程序通常只有一个根DOM节点。如果你将React集成到现有的应用程序中,则可以拥有尽可能多的隔离根DOM节点。
要将React元素渲染到根DOM节点,要把根节点和React元素都传递给ReactDOM.render():
12345const element = <h1>Hello, wor ...