在  译:2. RabbitMQ 之Work Queues (工作队列)  我们学习了如何使用工作队列在多个工作人员之间分配耗时的任务. 但是如果我们需要在远程计算机上运行一个函数并等待结果呢?嗯,这是一个不同的故事.此模式通常称为远程过程调用或RPC. 在本教程中,我们将使用RabbitMQ构建RPC系统:客户端和可伸缩的RPC服务器.由于我们没有任何值得分发的耗时任务,我们将创建一个返回Fibonacci数字的虚拟RPC服务. 客户端界面 为了说明如何使用RPC服务,我们将创建一个简单的客户…
这些教程介绍了使用RabbitMQ创建消息传递应用程序的基础知识.您需要安装RabbitMQ服务器才能完成教程 1. 打造第一个Hello World 程序 RabbitMQ是一个消息代理:它接受和转发消息.你可以把它想象成一个邮局:当你把你想要发布的邮件放在邮箱里时,你可以确定先生或女士邮递员最终将邮件发送给你的收件人. 在这个比喻中,RabbitMQ是邮政信箱,邮局和邮递员. RabbitMQ和邮局的主要区别在于它不处理纸张,而是接受,存储和转发二进制数据块 - 消息. 英文原文地址:htt…
在上篇博文 译:3.RabbitMQ 之Publish/Subscribe(发布和订阅)  我们构建了一个简单的日志系统 我们能够向许多接收者广播日志消息. 在本篇博文中,我们将为其添加一个功能 - 我们将只能订阅一部分消息. 例如,我们只能将关键错误消息定向到日志文件(以节省磁盘空间),同时仍然能够在控制台上打印所有日志消息. 本文是译文,英文原文请移步:https://www.rabbitmq.com/tutorials/tutorial-four-java.html Bindings 绑定…
在 上篇博文 译:4.RabbitMQ 之Routing(路由) 中,我们改进了日志系统. 我们使用的是direct(直接交换),而不是使用只能进行虚拟广播的 fanout(扇出交换) ,并且有可能选择性地接收日志. 虽然使用direct(直接交换)改进了我们的系统,但它仍然有局限性 - 它不能基于多个标准进行路由. 在我们的日志系统中,我们可能不仅要根据严重性订阅日志,还要根据发出日志的源来订阅日志.您可能从syslog unix工具中了解这个概念,该 工具根据严重性(info / warn…
在上篇揭开RabbitMQ的神秘面纱一文中,我们编写了程序来发送和接收来自命名队列的消息. 本篇我们将创建一个工作队列,工作队列背后的假设是每个任务都交付给一个工作者 本篇是译文,英文原文请移步:http://www.rabbitmq.com/tutorials/tutorial-two-java.html 前提:本教程假定RabbitMQ 已在标准端口(15672)上的localhost上安装并运行.如果您使用不同的主机,端口或凭据,则需要调整连接设置. 1. Work Queue 工作队列…
在上篇 RabbitMQ 之Work Queues (工作队列)教程中,我们创建了一个工作队列,工作队列背后的假设是每个任务都交付给一个工作者. 在这一部分,我们将做一些完全不同的事情 - 我们将向多个消费者传递信息.此模式称为“发布/订阅”. 这篇为译文加上自己的理解,英文原文请移步:http://www.rabbitmq.com/tutorials/tutorial-three-java.html 为了说明这种模式,我们将构建一个简单的日志记录系统. 它将包含两个程序 - 第一个将发出日志消…
Java Client的5.x版本系列需要JDK 8,用于编译和运行.在Android上,仅支持Android 7.0或更高版本.4.x版本系列支持7.0之前的JDK 6和Android版本. 加入RabbitMQ java client(基于4.x最新版本)依赖: <!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client --> <dependency> <groupId>com.rabbitmq…
Remote procedure call (RPC) (using the .NET client) Prerequisites This tutorial assumes RabbitMQ isinstalled and running on localhoston standard port (5672). In case you use a different host, port or credentials, connections settings would require ad…
由于不可抗因素, 需要给对接方撸一个client的demo.基于比较老的jdk. 所幸找到了这里:http://www.rabbitmq.com/releases/rabbitmq-java-client 干脆拿第一版1.4.0开撸,以下demo: import java.io.IOException; import com.rabbitmq.client.ConnectionFactory; import com.rabbitmq.client.Connection; import com.r…
pom文件: <dependencies> <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.0.0</version> </dependency>   <dependency> <groupId>org.springframework.am…
在第四篇学习笔记中,我们学习了如何使用工作队列在多个工作者之间分配耗时的任务.   但是,如果我们需要在远程计算机上运行一个函数并等待结果呢?这是另一回事.这种模式通常称为远程过程调用或RPC.   在本篇学习笔记中,我们将使用RabbitMQ构建一个RPC系统:客户机和可伸缩的RPC服务器.由于我们没有任何值得分发的耗时任务,所以我们将创建一个返回斐波那契数的虚拟RPC服务. 为了说明如何使用RPC服务,我们将创建一个简单的客户端类.它将公开一个名为call的方法,该方法发送一个RPC请求并阻…
Remote procedure call (RPC) 在第二篇教程中,我们学习了如何使用工作队列在多个工作人员之间分配耗时的任务. 但是如果我们需要在远程计算机上运行一个函数并等待结果呢?嗯,这是一个不同的故事.此模式通常称为远程过程调用或RPC. 在本教程中,我们将使用RabbitMQ构建RPC系统:客户端和可伸缩的RPC服务器. 由于我们没有任何值得分发的耗时任务,我们将创建一个返回Fibonacci数字的虚拟RPC服务. 客户端界面 为了说明如何使用RPC服务,我们将从“Sender”和…
w https://en.wikipedia.org/wiki/Remote_procedure_call In distributed computing a remote procedure call (RPC) is when a computer program causes a procedure (subroutine) to execute in another address space (commonly on another computer on a shared netw…
RPC,就是Remote Procedure Call,远程过程调用 远程过程调用,自然是相对于本地过程调用 本地过程调用,就好比你现在在家里,你要想洗碗,那你直接把碗放进洗碗机,打开洗碗机开关就可以洗了.这就叫本地过程调用 远程过程调用,那就是你现在不在家,突然发现碗还没洗,打了个电话过来,叫我去洗碗,这就是远程过程调用 RPC调用的流程: 服务消费方(client)调用以本地调用方式调用服务: client stub接收到调用后负责将方法.参数等组装成能够进行网络传输的消息体: client…
在第三篇文章中, 我们学习了怎么使用队列在多了消息消费者当中进行耗时任务轮询. 但是如果我们想要在远程电脑上运行一个方法,然后等待其执行结果,这就是一个不同的场景,这种就是我们一般讲的RPC(远程过程调用). 在这篇文章当中我们将会使用RabbitMQ构建一个简单的RPC系统,一个客户端和一个服务端,由于我们没有耗时任务需要轮询,因此我们创建一个假的返回斐波那契数字的服务端. 客户端接口 为了说明RPC服务是运行方式,我们创建一个了简单的Client类,该类有一个Call的方法用来发送RPC请求…
RPC(Remote Procedure Call Protocol)--远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据.在OSI网络通信模型中,RPC跨越了传输层和应用层.RPC使得开发包括网络分布式多程序在内的应用程序更加容易. RPC采用客户机/服务器模式.请求程序就是一个客户机,而服务提供程序就是一个服务器.首先,客户机调用进程发送一个有进程参数的调用信息到服务进…
使用java client访问kerberos-secured cluster,最重要的是先从admin那里拿到可用的keytab文件,用来作认证.接下来就是调整连接的配置.以下先用连接hdfs为例进行说明. 申请可用的keytab文件 1. 申请可认证的keytab文件,keytab文件用来存储principal的key.由KDC那边生成的principal,最终可以存储在keytab文件中. 2. 安装Kerberos client常用命令,并熟悉kerberos认证原理. 3. 配置/et…
在教程二中,我们学习了如何使用工作队列在多个工作线程中分发耗时的任务.但如果我们需要去执行远程机器上的方法并且等待结果会怎么样呢?那又是另外一回事了.这种模式通常被称为远程过程调用(RPC). 本教程中我们将使用RabbitMQ构建一个远程过程调用系统:一个客户端和一个可扩展的服务器.由于没有什么耗时的任务值得分发,我们将创建一个虚拟的RPC服务用于返回斐波那契数列. 客户端接口 为了阐释如何使用RPC服务我们将创建一个简单的客户端类.类中奖公开一个方法用于发送一个RPC请求,然后阻塞知道收到应…
In my previous post, I listed down most common telnet commands for memcached with sample execution terminal logs. Today I want to discuss about the Memcached Client program available in Java language. There are three most widely used memcached client…
Redis 介绍 redis这个想必大家都了解,关于redis的安装參考这里,redis使用文档參见这里,英文文档. Redis Cclient的用法 Redis的cclient Hiredis使用比較广泛,以下主要介绍下它. 1,Hiredis的安装,配置 Hiredisclient 在redis解压后的deps/hiredis下有对应的文件.假设你的安装包没有对应的文件能够到这里下载. cd deps/hiredis (下载hiredis的话 自行解压进入 解压后的文件夹). make 最后…
一.ES Client 简介 1. ES是一个服务,采用C/S结构 2. 回顾 ES的架构 3. ES支持的客户端连接方式 3.1 REST API ,端口 9200 这种连接方式对应于架构图中的RESTful style API这一层,这种客户端的连接方式是RESTful风格的,使用http的方式进行连接 3.2 Transport 连接 端口 9300 这种连接方式对应于架构图中的Transport这一层,这种客户端连接方式是直接连接ES的节点,使用TCP的方式进行连接 4. ES提供了多种…
------------------------------------------------------ 如需转载,请注明出处. 文章链接:https://www.cnblogs.com/dzblog/p/9946486.html ------------------------------------------------------ 更新 2018-11-28:文章写于11月12日,今日查询官网发现,在Jenkins最新的weekly版本上已经支持了JDK11,个人未测试,若有需要请更…
一.简介 1.先看ES的架构图 二.ES支持的客户端连接方式 1.REST API http请求,例如,浏览器请求get方法:利用Postman等工具发起REST请求:java 发起httpClient请求等. 2.Transport 连接 socket连接,用官方提供的TransPort客户端,底层是netty. 注意:ES的发展规划中在7.0版本开始将废弃 TransportClient,8.0版本中将完全移除 TransportClient,取而代之的是High Level REST Cl…
按照Elasticsearch API,在Java端使用是ES服务需要创建Java Client,但是每一次连接都实例化一个client,对系统的消耗很大,即使在使用完毕之后将client close掉,由于服务器不能及时回收socket资源,极端情况下会导致服务器达到最大连接数. 为了解决上述问题并提高client利用率,可以参考使用池化技术复用client. import java.io.IOException; import java.net.InetSocketAddress; impo…
JAVA Client环境搭建 POM: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.1</version> </dependency> 非maven的可以去官网直接下载jar包 如果需要使用池需要用到common-pool,上面那个jedis的POM里已经包含了common-…
JSON example with Jersey + Jackson Jersey client examples RESTful Java client with RESTEasy client framework RESTful Java client with java.net.URL RESTful Java client with Apache HttpClient RESTful Java client with Jersey client Apache HttpClient…
https://github.com/xetorthio/jedis Jedis is a blazingly small and sane Redis java client. Jedis was conceived to be EASY to use. Jedis is fully compatible with redis 2.8.x and 3.0.x. 小.功能健全.简单易用.全面兼容 1. 单客户端 <dependency> <groupId>redis.clients…
JIRA是一个缺陷跟踪管理系统,被广泛应用于缺陷跟踪.客户服务.需求收集.流程审批.任务跟踪.项目跟踪和敏捷管理等工作领域,当我们需要把第三方业务系统集成进来时,可以调用他的API. JIRA本身的API非常强大,但它是一个底层的API体系,并不是一个易用的接口,如果要开发和拓展,所以需要我们二次包装. jira官方为解决这个问题,推出了方便强大的java client library(目前只有java客户端库,没有.Net类库) jira的Rest API  最新文档官网. JIRA 6.4.…
elasticsearch系列七:ES Java客户端-Elasticsearch Java client(ES Client 简介.Java REST Client.Java Client.Spring Data Elasticsearch) 一.ES Client 简介 1. ES是一个服务,采用C/S结构 2. 回顾 ES的架构 3. ES支持的客户端连接方式 3.1 REST API ,端口 9200 这种连接方式对应于架构图中的RESTful style API这一层,这种客户端的连接…
由于公司业务需求,最近想上RabbitMQ,之前我研究了一段时间微软的MSMQ.开源队列有很多,各有优劣.就先拿RabbitMQ练练手吧.本篇着重代码部分,至于怎么安装,怎么配置不在赘述.而且代码是在RabbitMQ.NET Client 类库基础上实现. 假设阅读本文的人已经安装好RabbitMQ并且做了相应的用户配置.而且项目中已经从nuget安装了rabbitmq.client.dll.我们开始做一个简单的队列发送和接收消息. 将需要配置的东西放在配置文件里,例如主机地址,端口,用户名,密…