consul之acl配置

前言

配置项

acl_datacenter

该配置项指定了对ACL信息具有权威性的数据中心。 必须提供它才能启用ACL。 所有Server实例和数据中心必须就ACL数据中心达成一致。
必须在整个集群的Server节点上设置该配置项。但是针对API来说,如果要使客户端的请求能被正确转发,那么也需要在客户端节点设置。
在Consul 0.8及更高版本中,还可以启用代理级别的ACL。 有关详细信息,请参阅ACL指南

acl_default_policy

该配置项可选的值为allowdeny。默认值为’allow’。默认的策略控制token在没有匹配的规则时的行为。
allow模式下,ACL规则是一个黑名单:任何没有被禁止的操作都是可以执行的。
deny模式下,ACL规则是一个白名单,任何没有明确指定的操作都是被禁止的。

注意:该配置项只有在配置了acl_datacenter后才起作用

ActiveMQ 延迟消息

前言

有非常多的业务场景需要用到延迟消息功能。例如:订单待支付提醒,订单超时取消等。但并不是所有的消息中间件都支持延迟消息的功能,为了实现延迟消息,各路大神也是创造了很多的方案。
我们的系统使用的是ActiveMQ,ActiveMQ从版本5.4开始提供了持久化的延迟消息功能。下文就ActiveMQ提供的延迟消息功能进行介绍。

启用ActiveMQ定时消息功能

为了使用ActiveMQ的延迟消息功能,我们需要修改ActiveMQ的配置文件activemq.xml
在broker节点上添加schedulerSupport="true",如下所示:

zookeeper使用之curator

前言

Apache Curator是Netflix开源的操作Zookeeper的,功能非常强大的客户端。提供了很多非常好用的功能来帮助我们构建分布式应用。

分布式锁

Curator 提供的分布式锁分为以下三类:

  • 可重入公平锁 InterProcessMutex
  • 不可重入的非公平锁 InterProcessSemaphoreMutex
  • 可重入的读写锁 InterProcessReadWriteLock
  • 锁集合 InterProcessMultiLock

spring中RestTemplate简介

RestTemplate 是什么?

RestTemplate是Spring提供的一个访问Http服务的客户端类,非常类似JdbcTemplate, JmsTemplate。它是线程安全的(一旦创建完成)。从名称上来看,该类更多是针对RESTFUL风格API设计的。当然如果你想通过它调用普通的Http接口也是可以的。

RestTemplate 的方法

RestTemplate提供的方法都是以Http协议中的6个动词开头的:

这些方法的名称清楚地表明它们调用的是哪个HTTP方法,而名称的第二部分表示返回的内容。 例如,getForObject()将执行GET,将HTTP响应转换为你选择的对象类型,并返回该对象。postForLocation将执行POST,将给定对象转换为HTTP请求,并返回可以找到新创建对象的响应HTTP Location标头。 如你所见,这些方法试图强制执行REST最佳实践。

Java 虚拟机的关机方式

文章转自: Java 虚拟机的关机方式

JVM 是一个虚拟机,既然是虚拟的机器,就必然涉及到关机操作。JVM 关闭时,首先调用关闭钩子,所有钩子执行完毕后,如果需要进行垃圾回收就调用 finalize 方法,否则直接关闭虚拟机。JVM 关闭过程中,不会中断或停止任何线程,在最终关闭虚拟机时强制关闭所有线程。

Zookeeper简介

zookeeper 是什么?

官方解释如下

ZooKeeper是一个开源的,专门服务于分布式应用的分布式协调服务。 它提供了一组简单的原语,分布式应用程序可以利用这些原语来实现更高级别的服务,以实现同步,配置维护以及组和命名。 它被设计为易于编程,并使用类似大家所熟悉的文件系统目录树结构的数据模型。

众所周知,协调服务很难正确实现。 它们特别容易出现诸如竞态条件和死锁等错误。 ZooKeeper背后的动机是减轻分布式应用程序从头开始实施协调服务的责任。

常见DNS记录解释

A记录

A记录,又称IP指向,用户可以设置域名到目标主机IP地址的映射,从而实现通过域名找到服务器。

负载均衡

可以配置多条A记录,通过域名解析来实现轮询负载均衡。

泛域名解析

泛域名解析指的是将一个域名所有未指定的子域名统一解析到一个地址。

主机名中填入*,类型为AIP地址/主机名中填入web服务器的IP地址,点击“新增”按钮即可。

JWT简介

What is JSON Web Token?

JSON Web Token(JWT)是一个开放式标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以JSON对象安全的传输信息。 这些信息可以通过数字签名进行验证和信任。 JWT可以使用一个秘钥(HMAC签名算法)或使用RSA的公钥/私钥对对JWT进行签名。

虽然JWT可以加密以提供各方之间数据传递的保密性,但我们将重点关注已签名的令牌。 签名的令牌可以验证其中包含的信息的完整性,而加密令牌隐藏来自其他方的信息。 当令牌使用公钥/私钥对进行签名时,签名还证明只有持有私钥的方是签名方。

下面深入了解下JWT中的概念

  • 紧凑: 因为JWT的大小比较小,因为它可以通过URL, POST参数 或者HTTP请求头来进行传递。从另一方面来说说,因为它小,所以传递速度也比较快(占用带宽小)。
  • 自包含: JWT的负载包含了该用户所需的所有信息,从而避免了对DB的多次查询。
|