windows10环境下的RabbitMQ安装步骤
windows10环境下的 RabbitMQ 安装步骤
安装步骤
一、安装erlang(需要配置环境变量)
二、安装RabbitMQ(需要安装插件)
三、测试登录
四、创建用户
一、安装erlang
1,下载地址:http://www.erlang.org/downloads
2,配置环境变量:(系统变量)
变量名:ERLANG_HOME
地址:到bin的上一级目录
3,双击系统变量path
点击“新建”,将%ERLANG_HOME%\bin加入到path中。
4,测试:
cmd——erl
二、安装RabbitMQ
1,下载地址:http://www.rabbitmq.com/download.html
2,安装RabbitMQ-Plugins(sbin目录下安装)-----可视化插件
命令:rabbitmq-plugins enable rabbitmq_management
三、测试登录
1,cmd到sbin目录:输入 rabbitmqctl status
2,启动服务————双击rabbitmq-server.bat,访问:http://localhost:15672
用户名/密码:guest
四、创建用户
…
rabbitmq高可用,rabbitmq主从,rabbitmq镜像
【1】架构介绍
- 普通集群:主备架构,只是实现主备方案,不至于主节点宕机导致整个服务无法使用
- 镜像集群:同步结构,基于普通集群实现的队列同步
(1.1)rabbitmq 主从集群
slave节点复制 master节点的所有数据和状态,除了队列数据;
队列数据只存在master节点,但是Rabbitmq slave节点可以实现队列的转发,也就是说消息消费者可以连接到slave节点,但是slave需要连接到master节点转发队列;
由此说明只能保证了服务可以用,无法达到高可用…
Go channel与锁
不同 goroutine 之间如何通讯?有两种方案:
1. 全局变量的互斥锁
2. 使用管道 channel 来解决
因为没有对全局变量 m 加锁,因此会出现资源争夺问题,代码会出现错误,提示 concurrent map writes
var ( myMap = make(map[int]int, 10) lock sync.Mutex ) func test(n int) { res := 1 for i := 1; i <= n; i++ {…
go tcp编程
网络编程有两种:
1) TCP socket 编程,是网络编程的主流。之所以叫 Tcp socket 编程,是因为底层是基于 Tcp/ip 协议的。比如: QQ 聊天
2) b/s 结构的 http 编程,我们使用浏览器去访问服务器时,使用的就是 http 协议,而 http 底层依旧是用 tcp socket 实现的。
TCP/IP (Transmission Control Protocol/Internet Protocol) 的简写,中文译名为传输控制协议 / 因特网互联协议,又叫网络通讯协议,这个协议是 Internet 最基本的协议、Internet 国际互联网络的基础,简单地说,就是由网络层的 IP 协议和传输层的 TCP 协议组成的。
客户端向服务端发送消息…
html video 视频 退出画中画事件 leavepictureinpicture event
The leavepictureinpicture
event is fired when the HTMLVideoElement
leaves picture-in-picture mode successfully.
This event is not cancelable and does not bubble.
Syntax
Use the event name in methods like addEventListener()
, or set an event handler property.
addEventListener('leavepictureinpicture'
html js点击空白处关闭自定义弹出层
通常制作类似自定义下拉框,展开的div需要再点击任意空白区域后进行关闭 $(document).on('click',function(e){ var _con = $('.ztree,.js_ztree'); // 设置目标区域(排查点击不需要关闭的元素) if(!_con.is(e.target)&&_con.has(e.target).length === 0){ $('.ztree').hide() } })
…
document.getElementsByClassName与document.getElementById
document.getElementsByClassName()与document.getElementById(),大家应该对这两个方法都非常的不能再熟悉的js方法了,就是获取DOM元素嘛,有什么难的。今天我在这两个简单的方法上面犯了错误。
我页面中有一个按钮button,把按钮的结构代码直接贴上来吧,说的不直观,直接看代码最好了。
<button type="button" class="btn" id="btn-commit">提交</button>
我要的效果是获取到这个按钮后然后给按钮绑定一个点击事件,看到这个要求,多简单啊,我就直接写代码了:
document.getElementsByClassName("btn").onclick = function(){
console.log(333);
};
代码写完后,发现并不生效。我反复检查代码,代码没有写错,语法也没有问题。最后我就开始检查事件绑定的方法,也是没有问题。也检查不出问题,这个问题已经彻底把我给打懵了。
重新写段代码,然后通过ID获取元素并绑定事件,结果一次成功。
<button id="btn-focus" class="btn">聚焦</button>
var btnFocus = document.getElementById("btn-focus");
btnFocus.onclick = function(){
console.log(12);
};
我把获取元素的方式由id更改为class,效果就又不行了,这下我大概找到了问题的原因了,分别打印了下:
document.getElementsByClassName("btn")和document.getElementById("btn-commit");
console.log(document.getElementsByClassName("btn"));
console.log(document.getElementById("btn-commit"));
执行结果,贴个图片吧:
从这里看到了,通过getElementsByClassName()获取到的元素是一个元素的集合,通过getElementById()获取到的元素就是一个元素,难怪我通过getElementsByClassName()绑定事件没有响应呢,这就是原因。
本来挺简单的2个方法,由于疏忽,也不能说是疏忽大意,而是原来就没有注意到这个细节吧,之前对于DOM的操作都严重的依赖于jQuery,导致一些基本功给落下了,今天酿成了苦果。还好的是发现了这个问题,这个小小的教训,希望能给自己长个记性吧。再就是不能脱离基本功去严重的依赖工具库。
video画中画(小窗口)
JavaScript,jQuery 的css方法无效是怎么回事
试图通过jquery,给某节点增加css属性,使其实现预期的样式表现。
但不生效。
但又用了别的方式实现。
不生效的写法:
//这种写法不生效。
$dom.find("p.text-p").css("-webkit-line-clamp",3) ;
//或
$dom.find("p.text-p").css({"-webkit-line-clamp":3}) ;
生效了的写法:
//此处这个3,可以是个变量。
$dom.find("p.text-p").attr("style", "-webkit-line-clamp:" + 3);
注,这种情况只是css()方法对于某些特殊的css属性不生效,一般属性还是可以的。
猜测是直接改写dom结构,相当于写成了inline样式。即
<p style="xxxxxx">yyyy</p>
这样的形式。
近期评论