zeromq

.net core容器添加时区和libgdi+和下载加速

六眼飞鱼酱① 提交于 2020-08-17 23:55:53
国内.net core镜像下载加速 比如对于mcr.microsoft.com/dotnet/core/aspnet:3.1,下载是走的azure全球cdn,国内访问很慢。 国内访问可以把mcr.microsoft.com改为mcr.azk8s.cn 如docker pull mcr.microsoft.com/dotnet/core/aspnet:3.1改为docker pull mcr.azk8s.cn/dotnet/core/aspnet:3.1速度就会快上很多 修改时区和安装libgdi+ 根据基础镜像不同添加的命令也不同 对于alpine,比如mcr.azk8s.cn/dotnet/core/aspnet:3.1-alpine是以alpine为基础镜像的,alpine是最小系统镜像,所以用这个做基础镜像能将镜像整体大小控制的得很小。 alpine的包管理器是apk,安装软件命令是apk add RUN sed -i "s@http://dl-cdn.alpinelinux.org/@https://repo.huaweicloud.com/@g" repositories \ && apk --no-cache add tzdata zeromq \ && ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \

谈谈消息队列的流派

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

ActiveMQ或RabbitMQ或ZeroMQ或[关闭]

天大地大妈咪最大 提交于 2020-08-17 19:17:04
问题: We'd be interested to hear any experiences with the pros and cons of ActiveMQ vs RabbitMQ vs ZeroMQ. 我们有兴趣听听ActiveMQ与RabbitMQ和ZeroMQ的优缺点。 Information about any other interesting message queues is also welcome. 还欢迎有关任何其他有趣的消息队列的信息。 解决方案: 参考一: https://stackoom.com/question/34E5/ActiveMQ或RabbitMQ或ZeroMQ或-关闭 参考二: https://oldbug.net/q/34E5/ActiveMQ-or-RabbitMQ-or-ZeroMQ-or-closed 来源: oschina 链接: https://my.oschina.net/u/4428122/blog/4355406

高并发,你真的了解吗?

百般思念 提交于 2020-08-17 15:46:52
摘要: 本文介绍高并发系统的度量指标,讲述高并发系统的设计思路,再梳理高并发的关键技术,最后结合作者的经验做一些延伸探讨。 当前,数字化在给企业带来业务创新,推动企业高速发展的同时,也给企业的IT软件系统带来了严峻的挑战。面对流量高峰,不同的企业是如何通过技术手段解决高并发难题的呢? 0、引言 软件系统有三个追求: 高性能、高并发、高可用 ,俗称三高。三者既有区别也有联系,门门道道很多,全面讨论需要三天三夜,本篇讨论高并发。 高并发(High Concurrency) 。并发是操作系统领域的一个概念,指的是一段时间内多任务流交替执行的现象,后来这个概念被泛化,高并发用来指大流量、高请求的业务情景,比如春运抢票,电商双十一,秒杀大促等场景。 很多程序员每天忙着搬砖,平时接触不到高并发,哪天受不了跑去面试,还常常会被面试官犀利的高并发问题直接KO,其实吧,高并发系统也不高深,我保证任何一个智商在线的看过这篇文章后,都能战胜恐惧,重拾生活的信心。 本文先介绍高并发系统的度量指标,然后讲述高并发系统的设计思路,再梳理高并发的关键技术,最后结合作者的经验做一些延伸探讨。 1、高并发的度量指标 既然是高并发系统,那并发一定要高,不然就名不副实。并发的指标一般有 QPS、TPS、IOPS ,这几个指标都是可归为 系统吞吐率 ,QPS越高系统能hold住的请求数越多,但光关注这几个指标不够

SpringCloudAlibaba笔记(七):RocketMQ--消息驱动

左心房为你撑大大i 提交于 2020-08-11 20:11:24
文章目录 7.1 MQ简介 7.1.1 什么是MQ 7.1.2 MQ的应用场景 7.1.2.1 异步解耦 7.1.2.2 流量削峰 7.1.3 常见的MQ产品 7.2 RocketMQ入门 7.2.1 RocketMQ环境搭建 7.2.1.1 环境准备 7.2.1.2 安装RocketMQ 7.2.1.3 启动RocketMQ 7.2.1.4 测试RocketMQ 7.2.1.5 关闭RocketMQ 7.2.2 RocketMQ的架构及概念 7.2.3 RocketMQ控制台安装 7.3 消息发送和接收演示 7.3.1 发送消息 7.3.2 接收消息 7.4 案例 7.4.1 订单微服务发送消息 7.4.2 用户微服务订阅消息 7.5 发送不同类型的消息 7.5.1 普通消息 7.5.2 顺序消息 7.5.3 事务消息 7.6 消息消费要注意的细节 7.1 MQ简介 7.1.1 什么是MQ MQ(Message Queue)是一种跨进程的通信机制,用于传递消息。通俗点说,就是一个先进先出的数据结构。 7.1.2 MQ的应用场景 7.1.2.1 异步解耦 最常见的一个场景是用户注册后,需要发送注册邮件和短信通知,以告知用户注册成功。传统的做法如下: 此架构下注册、邮件、短信三个任务全部完成后,才返回注册结果到客户端,用户才能使用账号登录。但是对于用户来说

使用 ZeroMQ 消息库在 C 和 Python 间共享数据

你说的曾经没有我的故事 提交于 2020-08-09 12:17:25
ZeroMQ 是一个快速灵活的消息库,用于数据收集和不同编程语言间的数据共享。 作为软件工程师,我有多次在要求完成指定任务时感到浑身一冷的经历。其中有一次,我必须在一些新的硬件基础设施和云基础设施之间写一个接口,这些硬件需要 C 语言,而云基础设施主要是用 Python。 实现的方式之一是 用 C 写扩展模块 ,Python 支持 C 扩展的调用。快速浏览文档后发现,这需要编写大量的 C 代码。这样做的话,在有些情况下效果还不错,但不是我喜欢的方式。另一种方式就是将两个任务放在不同的进程中,并使用 ZeroMQ 消息库 在两者之间交换消息。 在发现 ZeroMQ 之前,遇到这种类型的情况时,我选择了编写扩展的方式。这种方式不算太差,但非常费时费力。如今,为了避免那些问题,我将一个系统细分为独立的进程,通过 通信套接字 发送消息来交换信息。这样,不同的编程语言可以共存,每个进程也变简单了,同时也容易调试。 ZeroMQ 提供了一个更简单的过程: 编写一小段 C 代码,从硬件读取数据,然后把发现的东西作为消息发送出去。 使用 Python 编写接口,实现新旧基础设施之间的对接。 Pieter Hintjens 是 ZeroMQ 项目发起者之一,他是个拥有 有趣视角和作品 的非凡人物。 准备 本教程中,需要: 一个 C 编译器(例如 GCC 或 Clang ) libzmq 库

SpringBoot 和 Kafka集群案例详解,面试必学

妖精的绣舞 提交于 2020-08-08 05:43:50
前言 市面上消息队列中间件管理有蛮多的,如:ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ,但我最先接触的可能就是 Kafka 了,不过那时候为了用,只知道部分实用性的东西,这两天稍稍花了点时间看了看。 消息队列 在我看来,消息队列的出现更多的是 解耦合 ,我们不需关心数据的来处和出处,生产者和消费者可能都不知道对方是一种什么样的存在方式,而且解决了突发的 数据剧增现象 . 我在例子中曾这样实验过 线程跑一会睡眠 20ms 线程一直在跑 实验 1 的处理速度可以跟的上生产速度,offset 一直指向 end,但实验 2 生产速度大幅上升,处理速度明显跟不上,我停止生产后,几毫秒再去看,offset 才指向 end。 例子 通过例子了解的可能会更加的快,这里我使用 docker-compose 搭建的 kafka 集群 SpringBoot 和 kafka 生产者 https://github.com/tokeneros/kafka_produce... SpringBoot 和 kafka 消费者 https://github.com/tokeneros/kafka_consumt... 最后注意 :光理论是不够的。在此顺便送大家十套2020最新JAVA架构项目实战教程及大厂面试题库,进我扣裙 :七吧伞吧零而衣零伞 (数字的谐音

RabbitMQ的应用场景以及基本原理介绍

≯℡__Kan透↙ 提交于 2020-08-05 04:39:44
RabbitMQ 是一个由 erlang 开发的 AMQP(Advanced Message Queuing Protocol)的开源实现。 AMQP:高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。 AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。 RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 一、应用场景 异步处理 应用解耦 流量削峰 二、RabbitMQ 特性 RabbitMQ 最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。具体特点包括: # 可靠性(Reliability) RabbitMQ 使用一些机制来保证可靠性,如持久化、传输确认、发布确认。 # 灵活的路由(Flexible Routing) 在消息进入队列之前,通过 Exchange 来路由消息的。对于典型的路由功能,RabbitMQ 已经提供了一些内置的 Exchange 来实现

Kafka与RabbitMQ的区别?

三世轮回 提交于 2020-08-05 02:00:39
1、Kafka和RabbitMQ在吞吐量的区别是什么? 一般情况下,RabbitMQ单机的吞吐率在万级别之内,而Kafka单机则比RabbitMQ高出一两个量级,可以达到十万级别,甚至可以达到百万级别。(/但吞吐率是受到硬件层面的限制的。比如网卡的宽带,如果宽带为1gb,要达到百万的吞吐量就相当于1gb / 8 / 100w = 134b,相当于每次的消息体大小不能超过13b,否则就不算是百万的吞吐量了/) 这是RabbitMQ和Kafka在吞吐量之间的区别。 2、Kafka和RabbitMQ在消息可靠性的区别是什么? (/消息的可靠性:是指对消息不丢失的保障程度;消息的可用性:是指无故障运行时间的百分比,通常用几个9来衡量。/) 使用消息中间件在传输消息的过程中会导致消息的丢失,也就是可靠性是每个中间件都会面临的问题;同时又会涉及到消息的可用性。 从微观方面来说,分布式系统结构是一致性协议理论的应用实现,对于消息中间件的可靠性和可用性吧区别的话可以根据它们的一致性协议来看; -Kafka采用的是类似PacificA的一致性协议,通过ISR (In-Sync-Replica) 来保证多副本之间的同步,并且支持强一致性语义(通过acks实现)。(/类似Pacific的一致性协议和ZAB都是基于实用主义,把 log replication日志赋值 和 Leader election