RabbIT

13种加密与解密算法【四】

血红的双手。 提交于 2020-04-06 04:17:50
【10、散列哈希之SHA1加密】 SHA1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。 SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。 **【SHA-1和SHA-0】 SHA-1和SHA-0的算法只在压缩函数的消息转换部分差了一个比特的循环位移。 【散列之SHA1】 /** * SHA1 * @param inStr 需要摘要的内容 * @return */ public static String sha1Encode(String inStr) { MessageDigest sha = null; try { sha = MessageDigest.getInstance("SHA"); byte[] byteArray = inStr.getBytes("UTF-8"); byte[] md5Bytes = sha.digest(byteArray); StringBuffer hexValue = new StringBuffer(); for (int i = 0; i < md5Bytes.length; i++) { int val = ((int)

Centos7上部署openstack mitaka配置详解(将疑难点都进行划分)

余生长醉 提交于 2020-04-05 20:21:29
在配置openstack项目时很多人认为到处是坑,特别是新手,一旦进坑没有人指导,身体将会感觉一次次被掏空,作为菜鸟的我也感同身受,因为已经被掏空n次了。 以下也是我将整个openstack配置过程进行汇总,并对难点进行分析,希望对您们有所帮助,如果在配置过程中有疑问,也可以进行留言。 尝试自己配置前可阅读《 菜鸟帮你跳过openstack配置过程中的坑 http://www.cnblogs.com/yaohong/p/7352386.html 》。 同时如果不想一步步安装,可以执行安装脚本: http://www.cnblogs.com/yaohong/p/7251852.html 一:环境 1.1主机网络 系统版本 CentOS7 控制节点: 1 处理器, 4 GB 内存, 及5 GB 存储 计算节点: 1 处理器, 2 GB 内存, 及10 GB 存储    说明:   1:以CentOS7为镜像,安装两台机器(怎样安装详见 http://www.cnblogs.com/yaohong/p/7240387.html )并注意配置双网卡和控制两台机器的内存。   2:修改机器主机名分别为:controller和compute1 #hostnamectl set-hostname hostname   3:编辑controller和compute1的 /etc/hosts 文件

CentOS-Docker安装RabbitMQ集群

走远了吗. 提交于 2020-02-28 04:14:42
创建目录 $ mkdir -p /home/rabbitmq 三台机器分别配置创建 $ vim /home/rabbitmq/hosts 192.168.1.101 rabbit1 rabbit1 192.168.1.102 rabbit2 rabbit2 192.168.1.103 rabbit3 rabbit3 参数说明 #容器后台运行 -d #容器的主机名为 rabbit_master,容器内部的hostname --hostname rabbit_master #将宿主机目录/home/rabbitmq挂载到容器的/var/lib/rabbitmq目录。z是一个标记,在selinux环境下使用。 -v /home/rabbitmq:/var/lib/rabbitmq:z #设置rabbitmq的cookie可以自定义为其他文本,三个容器保持一致即可。 -e RABBITMQ_ERLANG_COOKIE='xxx_2019' 创建容器(rabbit1) $ docker run --restart=unless-stopped -h rabbit1 -d -p 5672:5672 -p 15672:15672 -p 25672:25672 -p 4369:4369 --name myrabbit1 \ -v /home/rabbitmq:/var/lib/rabbitmq:z

SpringCloud 进阶: 消息驱动(入门)Spring Cloud Stream【Greenwich.SR3】

折月煮酒 提交于 2020-02-26 14:34:23
 我的博客: 程序员笑笑生 ,欢迎浏览博客!  上一章 SpringCloud 基础教程(十二)-Zipkin分布式链路追踪系统搭建 当中,我们使用Zipkin搭建完整的实时数据追踪系统。本章开始我们将进入Spring Cloud的更高阶的内容部分,首先从消息驱动Spring Cloud Stream开始。 前言  消息驱动,顾明思议,在企业级应用中,消息中间件经常用于处理非同步场景、消息通知、应用解耦等。常用的有RabbitMq、kafka、Redis等消息队列等。Spring Cloud Stream是一个构建事件消息驱动的微服务框架,提供了一个灵活的编程模型。并基于Spring的基础之上,支持发布-订阅模型、消费者分组、数据分片等功能。 一、Stream 应用模型 Middleware: 消息中间件,如RabbitMq等 Binder:可以认为是适配器,用来将Stream与中间连接起来的,不同的Binder对应不同的中间件,需要我们配置 Application Core:由Stream封装的消息机制,很少情况下自定义开发 inputs:输入,可以自定义开发 outputs:输出,可以自定义开发 接下来快速开始,主要就是针对以上几个组件进行不同的配置。 二、快速开始  接下来,我们以RabbitMQ为例(消息队列的环境搭建整这里不做过多的介绍,本章以Stream为主)

SpringCloud进阶:消息驱动之Spring Cloud Stream 消息分区

旧街凉风 提交于 2020-02-26 13:15:39
  我的博客: 程序员笑笑生 ,欢迎浏览博客!  上一章 SpringCloud进阶:Spring Cloud Stream 消费者分组 当中,我们通过配置消费者分组,实现了在同一个组内,消息只被一个消费者接收的功能。本章将介绍消息分区的功能。 前言  在Spring Cloud Stream中很容易使单个应用程序连接到消息中间件,但是更多的情况是多实例的应用程序,在实际的应用场景中,我们需要将同一种类型的消息,比如同一个用户,或者同一个类型的日志消息始终由同一个消费者消费并做统计,但是消息被分散到了不同的实例上去了, 就不好办了 。这个时候就可以使用消息分区了。 一 、Instance Index 和 Instance Count  当我们在采用集群的方式部署同一个应用时,每一个实例都可以接受到同一个应用有多少个实例数量,以及当前自己的实例在集群中的索引。Stream通过 spring.cloud.stream.instanceCount 实例数量和 spring.cloud.stream.instanceIndex 当前的实例索引实现这一点。如果实例总数instanceCount 是3,那么instanceIndex 索引从0开始到1、2 ,这两个属性的正确配置对于解决分区行为非常的重要,可以用来确保消息在多个实例之间正确的分割。 二 、未分区测试 2.1 生产者配置

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

家住魔仙堡 提交于 2020-02-26 00:55:19
1.背景 RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现。 2.应用场景 2.1异步处理 场景说明:用户注册后,需要发注册邮件和注册短信,传统的做法有两种1.串行的方式;2.并行的方式 (1)串行方式:将注册信息写入数据库后,发送注册邮件,再发送注册短信,以上三个任务全部完成后才返回给客户端。 这有一个问题是,邮件,短信并不是必须的,它只是一个通知,而这种做法让客户端等待没有必要等待的东西. (2)并行方式:将注册信息写入数据库后,发送邮件的同时,发送短信,以上三个任务完成后,返回给客户端,并行的方式能提高处理的时间。 假设三个业务节点分别使用50ms,串行方式使用时间150ms,并行使用时间100ms。虽然并性已经提高的处理时间,但是,前面说过,邮件和短信对我正常的使用网站没有任何影响,客户端没有必要等着其发送完成才显示注册成功,英爱是写入数据库后就返回. (3)消息队列 引入消息队列后,把发送邮件,短信不是必须的业务逻辑异步处理 由此可以看出,引入消息队列后,用户的响应时间就等于写入数据库的时间+写入消息队列的时间(可以忽略不计),引入消息队列后处理后,响应时间是串行的3倍,是并行的2倍。 2.2 应用解耦 场景:双11是购物狂节,用户下单后,订单系统需要通知库存系统,传统的做法就是订单系统调用库存系统的接口.

spring cloud stream 集成 spring-cloud-starter-stream-rabbit 程序突然报异常

落花浮王杯 提交于 2019-12-24 10:46:03
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 2019-12-20 22:09:30.736 TRACE [doorRecord.anonymous.0bb6ipBpS36_bcEKqcseBg-1] org.springframework.amqp.rabbit.connection.CachingConnectionFactory$CachedChannelInvocationHandler (1352) physicalClose - AMQChannel(amqp://guest@112.74.17.62:5672/,1) is already closed com.rabbitmq.client.AlreadyClosedException: connection is already closed due to clean connection shutdown; protocol method: #method<connection.close>(reply-code=200, reply-text=OK, class-id=0, method-id=0) at com.rabbitmq.client.impl.AMQChannel.processShutdownSignal(AMQChannel.java:401) ~[amqp

立足于SpringCloud.H + Spring Cloud Bus消息总线(14)

狂风中的少年 提交于 2019-12-11 20:13:38
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 《SpringCloud.H心法总纲》 继续上一篇 ,在原来config-client子模块的基础上,添加spring cloud bus配置。 1、添加依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> 2、controller层 在子模块config-client之前的接口类添加,如下 @RefreshScope 3、application配置文件 在之前的基础之上,添加如下rabbit、bus、actuator相关配置 # 本地rabbit spring.rabbitmq.host=localhost # rabbit启动端口号,默认5672 spring.rabbitmq.port=5672 # rabbit登陆用户名 spring.rabbitmq

简析JavaScript中的this关键字

旧城冷巷雨未停 提交于 2019-12-02 10:14:50
本文为译文,文章有点长,但是仔细通篇阅读下来,关于 this 的识别问题基本就搞定了。由于译者水平有限,文中有纰漏之处,还请读者多多指正。下面看正文吧: 1. 谜之this 在很长一段时间内, this 关键字都让我感到迷惑,相信很多JavaScript的初学者也是一样。 this 是JavaScript中很强大的一个特点,但是想搞懂它,你必须得花点时间。 对于像Java、PHP这样的标准语言来说, this 在类方法中指代的就是调用这个方法的实例。一般来说, this 不能在方法外使用,如此简单的规则不会让人迷惑。 但是在JavaScript中情况就有些不同了: this 指的是当前函数的执行上下文。在JavaScript中,函数有4种调用类型: 函数调用(function invocation): alert('Hello World') 方法调用(method invocation): console.log('Hello World') 构造调用(constructor invocation): new RegExp(\\d) 间接调用(indirect invocation): alert.call(undefined, 'Hello World') 每种调用类型都有自己定义执行上下文的方式,所以 this 指代的对象和我们预期的可能稍有不同。

RabbitMq入门级教程之完全掌握5种开发方案

[亡魂溺海] 提交于 2019-12-02 04:28:27
1、安装 windows安装rabbitmq mac安装rabbitmq 需要注意的是,mac安装rabbitmq,启动的时候命令前,需要加 sudo,不然会报错误 2、rabbitmq 开发概念词 2.1 Producer(生产者) 2.2 Consumer(消费者) 2.3 Exchange(交换机) 2.4 Queue(队列) 2.5 rountingKey(交换机与队列之间的关系) 3、RabbitMQ开发方案 官网的6中模式 ,可以点开这个网址,显示6中模式,第6中模式RPC远程调用我们不需要用该模式,所以我们只要关注前五种就可以了。 接下来我们就直接简单教学rabbitmq的简单使用 3.0 代码讲解 /** * 声明队列,五个参数列表,如果直接使用默认channel.queueDeclare("queue"),那么其他参数都会自动默认设置属性,所以一般我们几乎都默认它 * String queue 队列名称 * boolean durable 队列是需要持久化,意思就是rabbitmq重启的时候,如果不是持久化,那么该队列就会消失,默认true * boolean exclusive 如果你想创建一个只有自己可见的队列,不允许其它用户访问RabbitMQ允许你将一个Queue声明成为排他性的,只对首次声明它的连接(Connection)可见