十一、OpenFeign服务接口调用
十一、OpenFeign服务接口调用1、OpenFeign概述【1】OpenFeign是什么?
Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单。它的使用方法是定义一个服务接口然后在上面添加注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组合使用以支持负载均衡
官网文档解释:https://cloud.spring.io/spring-cloud-static/Hoxton.SR1/reference/htmlsingle/#spring-cloud-openfeign
GitHub链接:https://github.com/spring-cloud/spring-cloud-openfeign
【2】OpenFeign能干啥?Feign能干什么?
Feign旨在使编写Java Http客户端变得更容易。前面在使用Ribbon+Re ...
无题
MySQL 8.0 Public Key Retrieval is not allowed 错误的解决方法
在使用 MySQL 8.0 时重启应用后提示 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not allowed
最简单的解决方法是在链接后面添加 allowPublicKeyRetrieval=true
文档中(https://mysql-net.github.io/MySqlConnector/connection-options/)给出的解释是:
如果用户使用了 sha256_password 认证,密码在传输过程中必须使用 TLS 协议保护,但是如果 RSA 公钥不可用,可以使用服务器提供的公钥;可以在连接中通过 ServerRSAPublicKeyFile 指定服务器的 RSA 公钥,或者AllowPublicKeyRetrieval=True参数以允许客户端从服务器获取公钥;但是需要注意的是 AllowPublic ...
无题
Nacos Server did not start because dumpservice bean construction failure : No DataSource set异常解决1、第一种情况:nacos和mysql都部署在本地机器【1】先检查mysql服务是否启动,如果没有启动,就启动mysql后再尝试启动nacos(此时mysql中一定要已经导入了nacos-mysql.sql文件初始化了数据库了)
【2】如果mysql已经启动了nacos启动还是报错,修改connectTimeout、socketTimeout1234567spring.datasource.platform=mysqldb.num=1db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=truedb.user=rootdb.password=123456
123456 ...
无题
Mac m1使用Docker安装Nacos 2.0.3版本1、拉取docker镜像12345# 这是普通通用版本docker pull nacos/nacos-server# M1芯片使用这个版本docker pull zhusaidong/nacos-server-m1
2、查看镜像1docker images
3、启动容器中的nacos1234docker run --env MODE=standalone --name mynacos -d -p 8848:8848 zhusaidong/nacos-server-m1:2.0.3# 如果内存不足可以调低内存占用docker run -e JVM_XMS=256m -e JVM_XMX=256m --env MODE=standalone --name mynacos -d -p 8848:8848 zhusaidong/nacos-server-m1:2.0.3
4、查看启动日志1docker logs -f mynacos
5、访问测试(默认账号密码都是nacos)
6、nacos2.0. ...
无题
关于SpringCloud Config分布式配置中心中Config客户端配置与测试的相关疑点一、org.eclipse.jgit.api.errors.TransportException: git@github.com:xx/springcloud-config.git: Auth fail错误周阳老师的uri是这么写的:**uri: git@github.com:zzyybs/springcloud-config.git**
改成github默认给的这种就好了:**uri: https://github.com/zzyybs/springcloud-config.git**
私有仓库注意要配置账号密码,或者依旧使用ssh,然后多配个私钥12345678910111213141516spring: application: name: cloud-config-center #注册进Eureka服务器的微服务名 cloud ...
无题
在docker中运行RabbitMQ相关配置1、查找镜像【1】使用web查看
https://www.rabbitmq.com/download.html
https://hub.docker.com/_/rabbitmq?tab=tags
ps:
带有alpine的是用最小linux镜像构建的,体积最小可达5M。初学者不建议这么折腾,而且Alpine Linux使用了muslmusl实现的DNS服务,不会使用resolv.conf文件中的search和domain两个配置,通过DNS来进行服务发现时需要注意,带有-management的是带有web控制台
【2】使用docker搜索
2、下载镜像(注意:如果需要访问web管理页面,就选择tag为management)1docker pull rabbitmq:management
3、创建容器并运行(15672是管理界面的窗口,5672是服务的端口。这里顺便将管理系统的用户名和密码设置为admin admin)12345# --hostname: 指定容器主机名称# --name: 指定容器名称# -p: ...
无题
docker安装openzipkin1、查看可用的 openzipkin/zipkin版本,docker官网查看zipkin镜像地址及版本信息:https://hub.docker.com/r/openzipkin/zipkin ,每个版本后都有拉取zipkin镜像的命令。
2、拉取zipkin镜像1docker pull openzipkin/zipkin
3、查看本地镜像1docker images
4、运行容器12# openzipkin/zipkin:latest REPOSITORY:TAGdocker run -d -p 9411:9411 openzipkin/zipkin:latest
5、docker run语法
6、运行成功,通过docker ps来查看是否安装成功
7、访问:http://localhost:9411/ (IP+端口号)
十、Ribbon负载均衡服务调用
十、Ribbon负载均衡服务调用1、Ribbon的概述【1】Ribbon是什么?
Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。
简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。
简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们很容易使用Ribbon实现自定义的负载均衡算法。
【2】官网资料只不过Ribbon目前也进入了维护模式
未来替换Ribbon的方案——>Spring Cloud Starter Loadbalancer
【3】Ribbon能用来干啥?(LB,负载均衡)LB负载均衡(Load Balance)是什么?简单的说就是将用户的请求平摊的分配到多个服务上,从而达到系统的HA(高可用)。
常见的负载均衡有软件Nginx,LVS,硬件 F5等。
集中式LB ...
九、Consul服务注册与发现
九、Consul服务注册与发现1、Consul简介【1】consul是什么?
Consul是一种服务网格解决方案,提供具有服务发现,配置和分段功能的全功能控制平面。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建完整的服务网格。Consul需要一个数据平面,并支持代理和本机集成模型。Consul附带了一个简单的内置代理,因此一切都可以直接使用,还支持Envoy等第三方代理集成。
Consul 是一套开源的分布式服务发现和配置管理系统,由 HashiCorp 公司用 Go 语言开发。
提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网格,总之Consul提供了一种完整的服务网格解决方案。
它具有很多优点。包括: 基于 raft 协议,比较简洁; 支持健康检查, 同时支持 HTTP 和 DNS 协议 支持跨数据中心的 WAN 集群 提供图形界面 跨平台,支持 Linux、Mac、Windows
【2】consul能干啥?
服务发现:Consul的客户端可以注册服务,例如a ...
八、Zookeeper服务注册与发现
八、Zookeeper服务注册与发现1、注册中心Zookeeper的相关说明【1】zookeeper是一个分布式协调工具,可以实现注册中心功能
【2】关闭Linux服务器防火墙后启动zookeeper服务器关闭linux的防火墙12systemctl stop firewalldsystemctl status firewalld
使用docker启动Zookeeper:(docker的操作可以看这篇:Docker基础入门学习笔记)12345#拉取Zookeeper镜像docker pull zookeeper#启动Zookeeperdocker run --name zk01 -p 2181:2181 --restart always -d zookeeper
【3】zookeeper服务器取代Eureka服务器,zk作为服务注册中心服务节点是临时节点还是持久节点?zookeeper也是有心跳机制,在一定时间内如果一直没有心跳返回,zookeeper就会把服务节点剔除掉。所以在zookeeper上的服务节点是临时节点。
2、服务提供者的相 ...