activemq高可用负载集群(基于Networks of Borkers)

介绍 当应用规模日渐增长时,2节点的broker可能仍然抗不住访问压力,这时候就需要多加一些broker,弄一个更大规模的Broker集群,但是怎么合理设置broker之间的网络桥接,却是有讲究的,先来看一种不太好的设计: 这个架构看上去没瑕疵,没毛病,3个broker之间两两互通,整体可用性极高,但是从消息的路由角度来看,却不是一个好的设计,当producer向broker1发送一条消息时,Consumer得到消息的路径可能有如下2条: a) producer -> broker1 -> broker2 b) producer -> broker1 -> broker3 -> broker2 当broker更多时,情况会更复杂,比如下面这张图: 消息的路由途径将会更多: a) producer -> broker1 -> broker4 b) producer -> broker1 -> broker2 -> broker4 c) producer

pyinstaller安装问题

问题 今天要在一个低版本的python环境(2.6.6)下使用pyinstaller打包自己的应用,但是在使用pip安装pyinstaller之后发现打包报错 检查了一下环境是pyinstaller的版本太高(3.0),而此版本的pyinstaller支持的python版本是2.7.x。 解决办法 首先到PyInstaller的官网找低版本的PyInstaller(https://pypi.python.org/pypi/PyInstaller),发现两个文档版2.1和3.0。所以果断卸载3.0版本,安装2.1版本。 卸载3.0版本 pip uninstall pyinstaller 安装2.1版本 pip install https://pypi.python.org/packages/source/P/PyInstaller/PyInstaller-2.1.zip#md5=3eb18a454311707ab7808d881e677329

[python3.5][PyUserInput]模拟鼠标和键盘模拟

一、PyUserInput安装 python3.5的PyMouse和PyKeyboard模块都集成到了PyUserInput模块中。在python3.5中,直接安装PyUserInput模块即可 PyUserInput模块安装前需要安装pywin32和pyHook模块 pywin32模块默认已安装 pyHook模块可从这里下载 http://www.lfd.uci.edu/~gohlke/pythonlibs/ //在python官网找了很多个pyHook都不适用于python3.5版本 PyUserInput模块 https://github.com/PyUserInput/PyUserInput 二、使用方法 //导入模块 import pymouse,pykeyboard,os,sys from pymouse import * from pykeyboard import PyKeyboard //分别定义一个实例 m = PyMouse() k = PyKeyboard() 鼠标操作: m.click(x,y,

rabbitMQ+ha高可用集群搭建

文章目录 * 1 (一) 功能和原理 * 1.1 1 集群配置方式 * 1.2 2 节点类型 * 1.3 3 Erlang Cookie * 1.4 4 镜像队列 * 2 (二) RabbitMQ Cluster 配置 * 2.1 1 单机多节点部署 * 2.2 2 多机多节点部署 * 2.3 3 集群移除节点 * 3 (三) HA配置 * 3.1 安装 haproxy * 3.2 配置 haproxy * 3.

TCP状态解释(3次握手,4次挥手)

TCP建立连接 文章目录 * 1 三次握手 * 2 四次挥手 * 3 TCP的连接 * 3.1 一方发起连接 * 3.2 同时发起连接 * 4 断开连接 * 4.1 一方发起断开连接 * 4.2 同时断开连接 三次握手 CLOSED:起始状态,无任何连接。 LISTEN:服务端建立socket之后需要listen进入LISTEN(侦听)模式,侦听来自远方的TCP连接请求。 SYN_SENT:客户端建立socket之后需要connect服务器,向服务端发送SYN=j(随机数)申请连接,然后会进入SYN_SENT状态。 SYN_RCVD:服务端在 侦听模式 下收到SYN后会向客户端回应ACK=j+1,同时发送SYN=k,然后进入SYN_

zabbix自定义监控脚本(统计TCP连接数)

zabbix自定义监控脚本(统计TCP各状态连接数) python版本: # -*- coding: utf-8 -*- # @Time : 2018/8/22 20:10 # @Author : young # @Email : young_sc@foxmail.com # @File : tcp_status.py import psutil import sys import json status_list = ["LISTEN", "ESTABLISHED", "TIME_WAIT", "CLOSE_WAIT", "LAST_ACK", "SYN_SENT", "FIN_WAIT2"] status_temp = [] def TCP(

hadoop环境搭建

文章目录 * 1 Hadoop的分布式模型 * 2 环境准备 * 3 hadoop安装配置 * 4 启动Hadoop * 5 测试 Hadoop的分布式模型 Hadoop通常有三种运行模式:本地(独立)模式、伪分布式(Pseudo-distributed)模式和完全分布式(Fully distributed)模式。 安装完成后,Hadoop的默认配置即为本地模式,此时Hadoop使用本地文件系统而非分布式文件系统,而且其也不会启动任何Hadoop守护进程,Map和Reduce任务都作为同一进程的不同部分来执行。 因此,本地模式下的Hadoop仅运行于本机。此模式仅用于开发或调试MapReduce应用程序但却避免了复杂的后续操作。伪分布式模式下,Hadoop将所有进程运行于同一台主机上,但此时Hadoop将使用分布式文件系统,而且各jobs也是由JobTracker服务管理的独立进程。 同时,由于伪分布式的Hadoop集群只有一个节点,因此HDFS的块复制将限制为单个副本,其secondary-master和slave也都将运行于本地主机。此种模式除了并

sar(系统性能分析工具)

sar(System ActivityReporter系统活动情况报告)是目前Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等,sar命令有sysstat安装包安装,本文主要以CentOS 6系列x64系统为例,介绍sar命令。 yum安装 [root@localhost ~]# yum install sysstat 文章目录 * 1 1.1:sar命令常用格式: * 2 1.2:sar -u #统计CPU的使用情况,每间隔1秒钟统计一次总共统计三次:#sar -u 1 3 * 3 1.2.1:sar -p 1 3 #报个每个CPU的使用状态: * 4 1.

time_wait状态产生的原因

文章目录 * 1 前言 * 2 解答: * 2.1 1. time_wait状态如何产生? * 2.2 2.time_wait状态产生的原因 前言 请说说你对TCP连接中time_wait状态的理解 解答: 先上TCP的状态变迁图 1. time_wait状态如何产生? 由上面的变迁图,首先调用close()发起主动关闭的一方,在发送最后一个ACK之后会进入time_wait的状态,也就说该发送方会保持2MSL时间之后才会回到初始状态。MSL值得是数据包在网络中的最大生存时间。产生这种结果使得这个TCP连接在2MSL连接等待期间,定义这个连接的四元组(客户端IP地址和端口,服务端IP地址和端口号)不能被使用。 2.time_wait状态产生的原因 1)为实现TCP全双工连接的可靠释放 由TCP状态变迁图可知,假设发起主动关闭的一方(client)最后发送的ACK在网络中丢失,由于TCP协议的重传机制,执行被动关闭的一方(server)将会重发其FIN,在该FIN到达client之前,client必须维护这条连接状态,

dmidecode(查询内存大小、频率)

linux下查看主板内存槽与内存信息 [root@barcode-mcs ~]# dmidecode -t memory 1、查看内存槽数、那个槽位插了内存,大小是多少 |grep -P -A5 "Memory\s+Device"|grep Size|grep -v Range 2、查看最大支持内存数 code|grep -P 'Maximum\s+Capacity' 3、查看槽位上内存的速率,没插就是unknown。 code|grep -A16 "Memory Device"|grep 'Speed' dmidecode的使用方法 1. 最简单的的显示全部dmi信息: dmidecode 2.更精简的信息显示: dmidecode -q -q(–quite) 只显示必要的信息