精华内容
下载资源
问答
  • 【Java异常】...

    万次阅读 2020-04-23 19:58:46
    本文目录 一、问题描述 二、错误原因 ...Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client: basic-iot-config at com.netflix.loadba...

    本文目录

    一、问题描述

    二、错误原因

    三、解决方案

    3.1 方案1

    3.2 方案2


    一、问题描述

    报错信息如下

    Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client: basic-iot-config
    	at com.netflix.loadbalancer.LoadBalancerContext.getServerFromLoadBalancer(LoadBalancerContext.java:483)
    	at com.netflix.loadbalancer.reactive.LoadBalancerCommand$1.call(LoadBalancerCommand.java:184)
    	at com.netflix.loadbalancer.reactive.LoadBalancerCommand$1.call(LoadBalancerCommand.java:180)
    	at rx.Observable.unsafeSubscribe(Observable.java:10211)
    	at rx.internal.operators.OnSubscribeConcatMap.call(OnSubscribeConcatMap.java:94)
    	at rx.internal.operators.OnSubscribeConcatMap.call(OnSubscribeConcatMap.java:42)
    	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
    	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
    	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
    	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
    	at rx.Observable.subscribe(Observable.java:10307)
    	at rx.Observable.subscribe(Observable.java:10274)
    	at rx.observables.BlockingObservable.blockForSingle(BlockingObservable.java:445)
    	at rx.observables.BlockingObservable.single(BlockingObservable.java:342)
    	at com.netflix.client.AbstractLoadBalancerAwareClient.executeWithLoadBalancer(AbstractLoadBalancerAwareClient.java:117)
    	at org.springframework.cloud.netflix.feign.ribbon.LoadBalancerFeignClient.execute(LoadBalancerFeignClient.java:63)
    	... 33 common frames omitted

    二、错误原因

    在SpringCloud项目,会经常用一个服务a中调用另一个微服务b,明明启动了微服务b,但是却仍然报错

    com.netflix.client.ClientException: Load balancer does not have available server for client: xxx

    这时候,造成这种情况的原因基本上都是 两个服务注册到注册中心的端口不一样或者是注册到注册中心的服务名字不一致。

    三、解决方案

    3.1 方案1

    方案1解决了此问题:

    将两个服务(注册的服务和消费的服务)的名字改为一致即可,或者访问访问的URL改成一样的。

    public class SystemConstant {
        /**
         * 应用名
         */
        public static final String APPLICATION_NAME = "back-operation-service-123";
    
    }
    
    spring:
      application:
        name: back-operation-service-123
        system: operation

    3.2 方案2

    在application.yml配置文件中添加

    ribbon.eureka.enable: true
    展开全文
  • java实现websocket client

    千次下载 热门讨论 2013-11-08 17:47:12
    java_websocket.jar最新jar包 可用java实现websocket客户端,使用demo: https://github.com/TooTallNate/Java-WebSocket/blob/master/src/main/example/ExampleClient.java
  • 今天安装了navicat 和 mysql,...Client does not support authentication protocol requested by server; consider upgrading MySQL client 网上找了如下方法: 其一: mysql> SET PASS...

    今天安装了navicat 和 mysql,结果最后在navicat中连接mysql时,出现了如下错误提示:

    Client does not support authentication protocol requested by server; consider upgrading MySQL client
    

    网上找了如下方法:

    1. 其一:
    mysql> SET PASSWORD FOR
         -> 'some_user'@'some_host' = OLD_PASSWORD('newpwd');
    
    1. 其二:
    mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')
    
        -> WHERE Host = 'some_host' AND User = 'some_user';
    
    mysql> FLUSH PRIVILEGES;
    

    上面some_user、some_host、newpwd按自己实际情况修改

    但是自己尝试了之后依旧有错误提示,最后尝试了如下方法恢复正常:

    USE mysql;
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '831015';
    FLUSH PRIVILEGES;
    

    root是用户名,localhost是ip地址127.0.0.1都是特指本机,mysql_native_password是旧的密码验证机制,831015是密码,最后别忘了分号;

    最后问题解决:
    mysql错误解决
    感谢贴吧17楼大神:http://tieba.baidu.com/p/5658058140

    展开全文
  • ElasticSearch Client详解

    万次阅读 2018-10-19 21:06:48
       本文将重点探讨ElasticSearch Client的相关知识,重点关注TransportClient与Rest Client。Elasticsearch client 是我们进入ElasticSearch的大门。 1、概述    本节描述Elasticsearch提供的Java AP...

       从本文开始,将与大家进入到Elasticsearch的精妙世界中来,基于当前最新的6.4.x版本。
       本文将重点探讨ElasticSearch Client的相关知识,重点关注TransportClient与Rest Client。Elasticsearch client 是我们进入ElasticSearch的大门。
    1、概述
       本节描述Elasticsearch提供的Java API。所有Elasticsearch操作都是使用Client对象执行的。Client 定义的所有API都是异步执行的。(要么使用事件监听器回调或者使用Future模式)
    此外,客户端上的操作可以批量累积和执行。
    注意,所有API都通过Java API公开(实际上,Java API在内部用于执行它们)。
       Elasticsearch计划在Elasticsearch 7.0中弃用TransportClient,在8.0中完全删除它。相反,您应该使用Java高级REST client,rest client执行HTTP请求来执行操作,无需再序列化的Java请求。
    Java高级REST Client API目前支持更常用的api,但还需要添加更多的api。
    任何缺失的api都可以通过使用带有JSON请求和响应体的低级Java REST客户机来实现。
       按照官方的意思,以后ElasticSearch应该不会再为某一种具体语言单独提供客户端API,而是使用通用rest请求(http)来与ElasticSearch服务器进行交互。
       接下来我们会从java api开始进入ElasticSearch API的学习。
       ElasticSearch Client按照编程语言提供如下实现:
    在这里插入图片描述
       官方文档链接:https://www.elastic.co/guide/en/elasticsearch/client/index.html
       接下来将重点分析JAVA Client与Java REST Client。
    2、TransportClient详解
    2.1 TransportClient概述
       TransportClient 是ElasticSearch(java)客户端封装对象,使用transport模块远程连接到Elasticsearch集群,该transport node并不会加入集群,而是简单的向ElasticSearch集群上的节点发送请求。transport node使用轮询机制进行集群内的节点进行负载均衡,尽管大多数操作(请求)可能是“两跳操作”。(图片来源于Elasticsearch权威指南)
    在这里插入图片描述
       正如上述图所述,以一个新建操作为例,第一个请求首先发送到NODE1,然后会根据ID进行路由计算(hashcode(id)%主分片个数),例如使用p0(第一个主分片),此时NODE1会将请求转发到Node3,然后客户端发送第二个请求,会发送到NODE2上(上文中的轮询机制)。
       默认构建TransportClient的方法如下:

    // on startup
    TransportClient client = new PreBuiltTransportClient(Settings.EMPTY)    // @1
            .addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.10"), 9300))     // @2
            .addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.11"), 9300));   
     // on shutdown
     client.close();
    

       代码@1:使用空配置。
       代码@2:连接ElasticSearch 节点,可以通过addTransportAddress方法连接多个Node节点,这样请求会轮流发送到这些节点上,实现集群节点在接受请求时的负载均衡。
       TransportClient级别的主要参数如下:

    参数名 描述
    cluster.name transport node与服务端节点并不在一个集群中
    client.transport.sniff 是否开启集群嗅探功能,下文会详细介绍。
    client.transport.ignore_cluster_name 是否忽略连接节点的集群名称校验,设置为true表示忽略,避免连接的节点并不在同一个集群中。
    client.transport.ping_timeout ping命令的响应超时时间,默认为5s。
    client.transport.nodes_sampler_interval 对连接节点发送ping命令的频率,默认为5s,即常说的心跳检测间隔时间。

    接下来重点描述一下client.transport.sniff参数,集群群嗅探机制。
       在创建TransportClient时可以通过addTransportAddress来静态的增加ElasticSearch集群中的节点,如果开启集群群嗅探机制,即开启节点动态发现机制,允许动态添加和删除节点。当启用嗅探功能时,首先客户端会连接addTransportAddress中的节点上。在此之后,客户端将调用这些节点上的内部集群状态API来发现可用的数据节点。客户端的内部节点列表将仅被发现的数据数据节点替换。默认情况下,这个列表每5秒刷新一次。也就意味着如果该节点不是数据节点,则列表可能不包括它连接的原始节点。例如,如果您最初连接到一个主节点,在嗅探之后,如果发现了有其对应的数据节点,则不会再向该主节点发出请求,而是向任何数据节点发出请求。传输客户端排除非数据节点的原因是为了避免只向主节点发送搜索流量。
       使用配置构建Settings构建TransportClient对象代码如下:

    Settings settings = Settings.builder()
       .put("cluster.name", "myClusterName")
            .put("client.transport.sniff", "true").build();
    TransportClient client = new PreBuiltTransportClient(settings)
       .addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.1.10"), 9300))  ;
     //Add transport addresses and do something with the client...
    

    2.2、TransportClient API
       TransportClient 的核心类继承图如下:
    在这里插入图片描述
       上述API的设计要点:
       整个客户端API提供两个最底层的方法,execute,其关键特征如下:

    • ActionFuture execute(Action<Request, Response, RequestBuilder> action, Request request);
         返回ActionFuture,根据名称即可知道,该方法是典型的异步调用,Future模式。
    • void execute(Action<Request, Response, RequestBuilder> action, Request request, ActionListener listener);
         无返回值,但需要传入ActionListener listener,同样根据名称即可知道,该参数的作用是事件监听器(回调方法),也就是收到服务端响应后,调用回调函数,进行结果处理。
      注意:ElasticSearch Client API 其本质是使用异步请求模式。
    • prepare 开头的方法,例如IndexRequestBuilder prepareIndex()
         这类API的设计是使用Build模式,先通过build构建请求参数,最终会通过调用get()方法完成接口调用。
         TransportClient Api就先解释到这里了,后续会详细对上述API进行分类详解。
      2.3 Maven依懒
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>transport</artifactId>
        <version>6.4.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.11.1</version>
    </dependency>
    

    3、Java Rest Client详解
       Java REST客户端有两种风格:

    • Java Low Level REST Client:elasticsearch client 低级别客户端。它允许通过http请求与Elasticsearch集群进行通信。API本身不负责数据的编码解码,由用户去编码解码。它与所有的ElasticSearch版本兼容。
    • Java High Level REST Client:Elasticsearch client官方高级客户端。基于低级客户端,它定义的API,已经对请求与响应数据包进行编码解码。
      3.1 Java High Level REST Client
      3.1.1 初始化
    RestHighLevelClient client = new RestHighLevelClient(
            RestClient.builder(
                    new HttpHost("localhost", 9200, "http"),
                    new HttpHost("localhost", 9201, "http")));
    
    // close
    client.close();
    

       new HttpHost(“localhost”, 9200, “http”)其机制与TransportClient的addTransportAddress的作用一致。
       3.1.2 核心API依懒
       RestHighLevelClient 的类图 如下:
    在这里插入图片描述
       其API设计具有如下特征:

    • 每个API提供同步与异步调用,方法名以async结尾的方法为异步调用,需要提供对应的ActionListener实现。
    • 每个API都可以提供RequestOptions对象来定制请求选型。
         本节将不会对上述API一一介绍,上述API会在后续文章中详细解析。
      3.1.3 Maven依懒
    <dependency>
        	<groupId>org.elasticsearch.client</groupId>
        	<artifactId>elasticsearch-rest-client</artifactId>
        	<version>6.4.0</version>
    </dependency>
     <dependency>
        	<groupId>org.elasticsearch.client</groupId>
        	<artifactId>elasticsearch-rest-high-level-client</artifactId>
       	 <version>6.4.0</version>
             <type>pom</type>
    </dependency>
    

       本文就先介绍到这里了,详细分析介绍了Elasticsearch两大客户端 TransportClient与RestHighLevelClient ,后续文章会详细介绍各个API,例如文档的索引、更新、查询、删除、批量查询,Search API等。


    见文如面,我是威哥,热衷于成体系剖析JAVA主流中间件,关注公众号『中间件兴趣圈』,回复专栏可获取成体系专栏导航,回复资料可以获取笔者的学习思维导图。
    在这里插入图片描述

    展开全文
  • OSSClient

    万次阅读 2016-10-18 11:09:15
    OSSClient是OSS服务的Java客户端,它为调用者提供了一系列的方法,用于和OSS服务进行交互。 新建OSSClient 新建一个OSSClient很简单,如下面代码所示: String key = ""; String secret = ""; OSSClient ...


    OSSClient是OSS服务的Java客户端,它为调用者提供了一系列的方法,用于和OSS服务进行交互。

    新建OSSClient

    新建一个OSSClient很简单,如下面代码所示:

    String key = "<key>";
    String secret = "<secret>";
    OSSClient client = new OSSClient(key, secret);
    

    上面的方式使用默认域名作为OSS的服务地址,如果你想自己指定域名,可以传入endpoint参数来指定。

    String key = "<key>";
    String secret = "<secret>";
    String endpoint = "http://oss.aliyuncs.com";
    OSSClient client = new OSSClient(endpoint, accessKeyId, accessKeySecret);
    

    配置OSSClient

    如果你想配置OSSClient的一些细节的参数,可以在构造OSSClient的时候传入ClientConfiguration对象。ClientConfiguration是OSS服务的配置类,可以为客户端配置代理,最大连接数等参数。

    使用代理

    下面一段代码可以使客户端使用代理访问OSS服务:

    // 创建ClientConfiguration实例
    ClientConfiguration conf = new ClientConfiguration();
    
    // 配置代理为本地8080端口
    conf.setProxyHost("127.0.0.1");
    conf.setProxyPort(8080);
    
    // 创建OSS客户端
    client = new OSSClient(endpoint, accessKeySecret, accessKeySecret, conf);
    

    上面代码使得客户端的所有操作都会使用127.0.0.1地址的8080端口做代理执行。

    对于有用户验证的代理,可以配置用户名和密码:

    // 创建ClientConfiguration实例
    ClientConfiguration conf = new ClientConfiguration();
    
    // 配置代理为本地8080端口
    conf.setProxyHost("127.0.0.1");
    conf.setProxyPort(8080);
    
    //设置用户名和密码
    conf.setProxyUsername("username");
    conf.setProxyPassword("password");
    

    设置网络参数

    我们可以用ClientConfiguration设置一些网络参数:

    ClientConfiguration conf = new ClientConfiguration();
    
    // 设置HTTP最大连接数为10
    conf.setMaxConnections(10);
    
    // 设置TCP连接超时为5000毫秒
    conf.setConnectionTimeout(5000);
    
    // 设置最大的重试次数为3
    conf.setMaxErrorRetry(3);
    
    // 设置Socket传输数据超时的时间为2000毫秒
    conf.setSocketTimeout(2000);
    

    ClientConfiguration所有参数

    通过ClientConfiguration能指定的所有参数如下表所示:

    参数 说明
    UserAgent 用户代理,指HTTP的User-Agent头。默认为”aliyun-sdk-java”
    ProxyHost 代理服务器主机地址
    ProxyPort 代理服务器端口
    ProxyUsername 代理服务器验证的用户名
    ProxyPassword 代理服务器验证的密码
    ProxyDomain 访问NTLM验证的代理服务器的Windows域名
    ProxyWorkstation NTLM代理服务器的Windows工作站名称
    MaxConnections 允许打开的最大HTTP连接数。默认为50
    SocketTimeout 通过打开的连接传输数据的超时时间(单位:毫秒)。默认为50000毫秒
    ConnectionTimeout 建立连接的超时时间(单位:毫秒)。默认为50000毫秒
    MaxErrorRetry 可重试的请求失败后最大的重试次数。默认为3次
    展开全文
  • 关于这个问题,是在zookeeper启动时遇到的,输入命令 “ ./zkServer.sh start ” 启动时未报错,链接时连接不上zookeeper服务,查看zookeeper状态输入命令 “ ./zkServer.sh status” 时出现 “Client port found: ...
  • Transport Client vs Node Client

    千次阅读 2015-08-13 09:29:19
    如果你使用Java,你可能想知道什么时候用Transport Client,什么时候用Node Client。就像本书【1】最开始讨论的那样,transport client充当ES集群和你的应用直接的通信层,它知道API,并且能够在节点间自动轮循、...
  • com.netflix.client.ClientException: Load balancer does not have available server for client 这时候,我造成这种情况的原因是 两个服务部署到注册中心的端口不一样 配置文件中 这个位置URL一致,就解决问题...
  • Flink SQL Client初探

    千次阅读 2020-05-07 08:10:43
    体验Flink SQL Client
  • 一、问题产生 在centOS 通过docker pull mysql下载mysql镜像并成功启动mysql容器。...Client does not support authentication protocol requestedbyserver; consider upgrading MySQLclient ...
  • 使用shell 运行FastDFS客户端时,执行下面... 1.from fdfs_client.client import Fdfs_client 2. client = Fdfs_client('male/utils/fastdfs/client.conf') 3. ret = client.upload_by_filename('/home/python/De...
  • Bad client credentials

    千次阅读 2020-06-19 10:15:13
    oauth2 使用官方数据库进行持久化后,报如下错误 Bad client credentials @Bean public PasswordEncoder ...数据库配置如下,之前未配置第三条,client_id 不加密,但是client_secret需要进行加密 ...
  • Eureka Server和Eureka Client注册探秘

    万次阅读 2018-12-01 12:32:58
    目录 前言 Eureka Client注册过程分析 遗留问题 解决办法 原文作者:李刚 ...我们知道Eureka分为两部分,Eureka Server和Eureka Client。Eureka Server充当注册中心的角色,Eureka Client相对于Eur...
  • 如果 安装有其他fdfs包, 要先卸载完再安装py3Fdfs pip install py3Fdfs 测试 from fdfs_client.client import * client_conf_obj = get_tracker_conf('/etc/...client = Fdfs_client(client_conf_obj) ret = cli...
  • Transport Client 对比 Node Client如果使用Java,您可能想知道何时使用Transport Client与Node Client。如本书开头所讨论的,Transport Client充当集群和应用程序之间的通信层。它知道API,并可以自动在节点之间...
  • Redis Client UI工具

    万次阅读 2018-07-18 11:18:08
    前言 使用Redis做缓存也有一段时间了,一款趁手的UI工具可以省下很多的开发时间。这里,便总结下我所使用的Redis UI 工具。 Redis Client 原生工具 Redis Client (github) Redis Desktop Manager...Redis Client ...
  • python websocket client

    千次阅读 2018-04-13 09:50:49
    websocket-client 安装 pip install websocket-client 官网 https://github.com/websocket-client/websocket-client ws4py 安装 pip install websocket-client github https://github.com/Lawouach/We...
  • IntelliJ IDEA 使用 rest client

    万次阅读 2019-11-21 15:31:24
    idea 使用rest client
  • 报错信息如下:com.netflix.client.ClientException: Load balancer does not have available server for client:xxx解决方法:http://www.yayihouse.com/yayishuwu/chapter/1288
  • 本文将重点探讨ElasticSearch Client的相关知识,重点关注TransportClient与Rest Client。Elasticsearch client 是我们进入ElasticSearch的大门。 1、概述 所有Elasticsearch操作都是使用Client对象执行的。Client ...
  • Resteasy Client API

    千次阅读 2017-02-14 16:05:47
    1.JAX-RS 2.0 Client API JAX-RS 2.0介绍了一种新的client API,涉及主要3个类:Client , WebTarget 和Response。有两种方式来创建一个Client,标准的方式和使用ResteasyClientBuilder类,后一种方式配置client的...
  • secoclient64

    千次阅读 2019-04-02 09:08:23
    secoclient64位打开后显示当前服务进程已关闭,请问是什么原因
  • Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client xxxxx 方案 经过查询排查,两种解决方案 方案一(亲测有效) 在application.properties中添加 ribbon....
  • 一、ES Client 简介1. ES是一个服务,采用C/S结构 2. 回顾 ES的架构 3. ES支持的客户端连接方式3.1 REST API ,端口 9200 这种连接方式对应于架构图中的RESTful style API这一层,这种客户端的连接方式是RESTful...
  • 链接地址: http://www.gscholar.cn/2014/04/dhcp-client-error5.html一台Windows 7(32位)的笔记本通过有线网卡和无线网卡都无法自动获取IP,查看DCHP服务,发现无法正常启动,报错DHCP CLIent服务(位于本计算机上...
  • error: client-key-data or client-key must be specified for kubernetes-admin to use the clientCert authentication method.
  • 使用MqttClient

    千次阅读 2019-04-26 12:02:30
    使用MqttClient 从库中使用MQTT客户端非常简单。首先,您必须创建一个MqttClient类,它只提供一个强制参数(要连接到的代理的IP地址或主机名)和一些具有默认值的可选参数(MQTT Broker端口、安全连接和X.509证书)。在...
  • com.netflix.client.ClientException: Load balancer does not have available server for client: microservice-provider-user 错误原因: 消费者调用服务时无服务可用 解决办法: 确定本机是否关闭防火墙 是否...
  • client_header_buffer_size Syntax: client_header_buffer_size size; Default: client_header_buffer_size 1k; Context: http, server 如果配置为client_header_buffer_size 1k,且(请求头+请求行)的大小如果超过...
  • cas client入门之一:cas client分类

    千次阅读 2014-06-02 15:27:24
    cas client有多种语言实现,cas client主要分为以下几种: 1.官方客户端 主要实现有java client,.net client,php client等 2.遗留的客户端 主要是cas client2.0版本,另外还有pl/sql client,python client,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 600,525
精华内容 240,210
关键字:

client