zeromq

【高并发解决方案】高并发解决方案汇总

纵饮孤独 提交于 2020-11-27 05:23:10
【高并发解决方案】1、高并发解决方案汇总 一、对于被频繁调用,更新频率较低的页面,可以采用HTML静态化技术 二、图片服务器分离 三、数据库集群和库表散列 mysql主从。m-m-s-s-s...(2个主,多个从。多个从使用负载均衡。主写入数据,从读取数据) 四、缓存。众多的缓存框架 五、负载均衡。nginx,lvs,F5 六、搜索用单独的服务器,搜索框架 七、使用MQ服务器 【高并发解决方案】2、集群概述 1.什么是集群 集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群就像是一个服务实体,但 事实上集群由一组服务实体组成。 2.集群的特性 与单一服务实体相比较,集群提供了以下两个关键特性: 1.可扩展性--集群的性能不限于单一的服务实体,新的服 务实体可以动态地加入到集群,从而增强集群的性能。 2. 高可用性--集群通过服务实体冗余使客户端免于轻易遇到out of service的警告。在集群中,同样的服务可以由多个服务实体提供。如果一个服务实体失败了,另一个服务实体会接管失败的服务实体。集群提供的从一个出 错的服务实体恢复到另一个服务实体的功能增强了应用的可用性。 为了具有可扩展性和高可用性特点,集群的必须具备以下两大能力: (1) 负 载均衡--负载均衡能把任务比较均衡地分布到集群环境下的计算和网络资源。 (2)

Centos7 saltstack简介 服务部署

泪湿孤枕 提交于 2020-11-14 10:15:07
saltstack 简介 Saltstack使用Python开发,是一个非常简单易用和轻量级的管理工具。由Master和Minion构成,通过ZeroMQ进行通信,速度快 Saltstack的master端监听4505与4506端口,4505为salt的消息发布系统,4506为salt客户端与服务端通信的端口 salt客户端程序不监听端口,客户端启动后,会主动连接master端注册,然后一直保持该TCP连接,master通过这条TCP连接对客户端控制 部署服务 准备两台Centos7 虚拟机 关掉防火墙 setenforce [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# setenforce 0 获取saltstack源 [root@localhost ~]# yum -y install wget [root@localhost ~]# wget -P /etc/yum.repos.d https://mirrors.aliyun.com/saltstack/yum/redhat/7.2/x86_64/saltstack-rhel7.repo 主服务操作 [root@localhost ~]# yum -y install salt-master salt-minion [root

怎样解决 no jzmq in java.library.path

元气小坏坏 提交于 2020-10-28 10:24:33
确保zmq的各种library有安装正确。检查方法:查看/usr/local/lib, 看里面有没有libjzmq.a, libjzmq.dylib, libzmq.a, libjzmq.dylib 2.正确的安装方法是:(1)安装libzmq-master (2)安装zeromq-3.2.4,注意版本号最好选这个。试过最新版本号会报错 (3)安装jzmq-master java binding 直接搜这些关键词都能找到对应地github网页或者官网,然后按步骤输指令即可 。 3.看看问题是不是出在java.library.path,打开 ~/.bash_profile, 增加 export LD_LIBRARY_PATH=/usr/local/lib. 或者直接在命令行里提供路径,比如: javac -classpath /usr/local/share/java/zmq.jar HelloWorldClient.java java -classpath .:/usr/local/share/java/zmq.jar -Djava.library.path=/usr/local/lib HelloWorldClient 在按照 ZeroMq官方 提供的方法 $ ./autogen.sh$ ./configure$ make$ make install

谈谈消息队列的流派

谁都会走 提交于 2020-10-28 01:39:20
关于 MQ 的定义 Message Queue ( MQ )消息队列中间件,通常我们在网上看到的对其定义是将消息的发送和接受分离来实现应用程序的异步和解耦,给人的直觉是 MQ 是异步的,用来解耦的。但这个只是 MQ 的效果,而不是目的。 MQ 真正的目的是为了通讯,屏蔽底层复杂的通讯协议,定义了一套应用层上更加简单的通讯协议。 一套分布式系统中两个模块之间通讯要么是 HTTP ,要么是 TCP ,但这两种协议其实都是原始的协议。前者实现通讯就必须要做到各客户端都有 WebServer ,而且不支持长连接;后者就更加原始了 — 粘包、心跳、私有的协议。 而 MQ 所要做就是在基于这些现有的协议之上构建一个更简单的通讯(生产者/消费者)模型。它定义了两个对象 —发送数据的叫生产者,接受数据的叫消费者,提供一个 SDK 给我们自己定义生产者和消费者实现消息通讯,且无视底层通讯协议。 带 Broker 的流派 这个流派通常有一台服务器作为 Broker ,所有的消息都通过它进行中转。生产者把消息发送给它就结束自己的任务了,最后 Broker 则把消息主动推送给消费者(或者消费者主动轮询)。 重 Topic 的 MQ Kafka 、 Active MQ 就属于这个流派:生产者发送 key 和数据到 Broker ,由 Broker 比较 key 之后决定给哪个消费者。 在这种模式下,

Elasticsearch整理笔记(一)

别来无恙 提交于 2020-09-28 00:11:46
Elasticsearch定义 elastic(弹性、灵活)+search(搜索) Elasticsearch 是一个支持分布式、高扩展、高实时的高效搜索与数据分析引擎。 支持分布式实时文件存储。 支持将字段值都编入索引,使其可以被搜索。 实时分析的分布式搜索引擎。 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。 Elasticsearch 的实现原理主要分为以下几个步骤 用户将数据提交到Elasticsearch 数据库中。 es通过分词控制器去将对应的语句分词。(这里如需更高级的策略优化,后期可以替换分词器)。 将其权重和分词结果一并存入数据库。 当用户搜索数据时候,根据权重将结果排名,打分(相关度)。 将返回结果呈现给用户。 有关概念 cluster:代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的。 shards:代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上。构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。 replicas:代表索引副本