1 什么是Feign Feign是一种声明式.模板化的HTTP客户端(仅在Application Client中使用).声明式调用是指,就像调用本地方法一样调用远程方法,无需感知操作远程http请求. Spring Cloud的声明式调用, 可以做到使用 HTTP请求远程服务时能就像调用本地方法一样的体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求.Feign的应用,让Spring Cloud微服务调用像Dubbo一样,Application Client直接通过接口方法调用A…
一.Feign受Retrofit.JAXRS-2.0和WebSocket影响,采用了声明式API 接口的风格,将Java Http 客户端绑定到它的内部. Feign 首要目的是将 Java Http 客户端调用过程变得简单. 理解的简单一点就是Feign的原理就是通过Java Http的方式访问,已经编写好的接口,实现调用的简单化.解耦化. 二.我们先写一个Feign例子看看(端口8676): 1)加入依赖: <dependency> <groupId>org.springfra…
在前面的文章中可以发现当我们通过RestTemplate调用其它服务的API时,所需要的参数须在请求的URL中进行拼接,如果参数少的话或许我们还可以忍受,一旦有多个参数的话,这时拼接请求字符串就会效率低下,并且显得好傻. 那么有没有更好的解决方案呢?答案是确定的有,Netflix已经为我们提供了一个框架:Feign. Feign是一个声明式的Web Service客户端,它的目的就是让Web Service调用更加简单.Feign提供了HTTP请求的模板,通过编写简单的接口和插入注解,就可以定义…
(1).链式调用 $("#mybtn").css("width","100px") .css("height","100px") .css("background","red"); (2).在对属性进行操作时建议使用JSON形式控制样式 $("#mybtn").css({    width:200,    height:"200"…
SpringCloud使用Feign调用其他客户端带参数的接口,传入参数为null或报错status 405 reading IndexService#del(Integer); 第一种方法: 如果你的API为Restful 方式的可以在Client接口参数中加注解@PathVariable @FeignClient(name = "PRODUCT") @Component public interface ProductClient { @PostMapping("/pro…
SpringCloud  在Feign上使用Hystrix(断路由) 第一步:由于Feign的起步依赖中已经引入了Hystrix的依赖,所以只需要开启Hystrix的功能,在properties文件中添加以下配置: feign.hystrix.enabled=true. 第二步:在Feign的接口上添加Hystrix(断路由) @FeignClient(name = "这里写服务名称", fallbackFactory = InsuranceCompany4OthersHystrixF…
SpringCloud(5)---Feign服务调用 上一篇写了通过Ribbon进行服务调用,这篇其它都一样,唯一不一样的就是通过Feign进行服务调用. 注册中心和商品微服务不变,和上篇博客一样,具体参考:SpringCloud(4)---Ribbon服务调用,源码分析 这边只重写订单微服务. 一.OrderService 订单微服务 1.pom.xml 这里相对于上一篇的订单微服务只要新添加一个jar包 <!--feign依赖--> <dependency> <group…
springcloud 实战 feign使用中遇到的相关问题 1.使用feign客户端调用其他微服务时,session没有传递成功,sessionId不一样. /** * @author xbchenf * @date 2018-10-27 16:35:52 * @description 通过拦截器,将head补上,避免session丢失 */ @Configuration public class FeignConfiguration implements RequestInterceptor…
最近有一个springcloud的feign请求,用于获取坐标经纬度的信息,返回结果永远是固定不变的,所以考虑优化一下,不然每次转换几个坐标都要去请求feign,返回的所有坐标信息,数据量太大导致耗时大,重复性请求. 第一步:创建配置类,用于在springboot项目启动后就执行feign接口用于查询所有的经纬度信息[返回结果封装在了一个map集合]. @Component @Order(value = 1)//定义组件加载顺序 @Slf4j public class GetLatLonConf…
整合Feign pom.xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> 启动类 @SpringBootApplication @EnableFeignClients public class OrderServiceApp…
本篇章讲解RabbitMQ的用途.原理以及配置,RabbitMQ的安装请查看SpringCloud之RabbitMQ安装 一.MQ用途 1.同步变异步消息 场景:用户下单完成后,发送邮件和短信通知. 运用消息队列之后,用户下单完之后,下单信息写入数据库,再写入消息队列,发送邮件和发送短信各自去消息队列进行读取,节省时间,提高效率. 2.应用解耦 场景:用户下单后,订单系统需要多渠道通知用户. 下单服务系统:用户使用下单服务后,将下单信息写入数据库,下单成功. 短信服务系统:用户下单后,将短信信息…
在使用SpringCloud进行Feign跨服调用时header请求头中的信息会丢失,是因为Feign是不会带上当前请求的Cookie信息和头信息的,这个时候就需要重写请求拦截. 1.需要重写RequestInterceptor接口中的apply方法(前提是Feign的隔离策略为SEMAPHORE) @Component public class FeignInterceptor implements RequestInterceptor{ @Override public void apply…
目录 前提:本篇是基于 SpringCloud+Eureka+Feign+Ribbon的简化搭建流程和CRUD练习[1] 的修改与拓展 1.修改consumer的CenterFeign.java,把返回值全部设置为String 2.在CenterFeign.java的同包下创建实现了CenterFeign接口的CenterFeignFallBack.java作为熔断器 3.修改consumer的CenterController.java,返回值全改为String 4.确认consumer中的配置…
Spring Cloud中Feign配置详解 到目前为止,小伙伴们对Feign的使用已经掌握的差不多了,我们在前文也提到Feign是对Ribbon和Hystrix的整合,那么在Feign中,我们要如何配置Ribbon和Hystrix呢?带着这两个问题,我们来看看本文的内容. Ribbon配置 ribbon的配置其实非常简单,直接在application.properties中配置即可,如下: 1 2 3 4 5 6 7 8 9 10 # 设置连接超时时间 ribbon.ConnectTimeou…
百度的面试官问:Web容器,Servlet容器,SpringMVC容器的区别: 我还写了个文章,说明web容器与servlet容器的联系,参考:servlet单实例多线程模式 这个文章有web容器与springMVC的联系: 客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器将请求转交给DispatcherServlet 具体看下面: 1.Spring MVC概述: Spri…
前言: Spring Cloud Config组件是独立的,不需要注册到eureka.config工作原理是把读取目标到配置拉取到本地缓存一份然后供给其他客户端使用,所以一旦config启动成功,可以将git上到配置删除(但是实际情况没人这么干).  如果微服务架构中没有使用统一配置中心时,所存在的问题: 配置文件分散在各个项目里,不方便维护 配置内容安全与权限,实际开发中,开发人员是不知道线上环境的配置的 更新配置后,项目需要重启 在SpringCloud中我们使用config组件来作为统一:…
原文地址:http://tiany.blog.51cto.com/513694/1421917/ Oracle 11g RAC SCAN ip的原理及配置   Oracle 11g RAC网格即插即用(GPnP)工作原理: SCAN概念:   先介绍一下什么叫SCAN,SCAN(Single Client Access Name)是Oracle从11g R2开始推出的,客户端可以通过SCAN特性负载均衡地连接到RAC数据库.SCAN提供一个域名来访问RAC,域名可以解析1个到3个(注意,最多3个…
DHCP原理于配置                      一.DHCP服务                       1)使用DHCP的好处                       2)DHCP的分配方式                      二.DHCP的租约过程                       1)客户机请求IP地址                       2)服务器响应                       3)客户机选择IP地址            …
[http://www.jb51.net/article/50053.htm]   MySQL 数据库的高可用性架构:         集群,读写分离,主备.而后面两种都是通过复制来实现的.下面将简单介绍复制的原理及配置,以及一些常见的问题.   [优点] 1. 如果主服务器出现问题, 可以快速切换到从服务器提供的服务2. 可以在从服务器上执行查询操作, 降低主服务器的访问压力3. 可以在从服务器上执行备份, 以避免备份期间影响主服务器的服务注意一般只有更新不频繁的数据或者对实时性要求不高的数据…
MySQL 的数据库的高可用性的架构大概有以下几种:集群,读写分离,主备.而后面两种都是通过复制来实现的.下面将简单介绍复制的原理及配置,以及一些常见的问题. 一.复制的原理 MySQL 复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新.删除等等).每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新,以便从服务器可以对其数据拷贝执行相同的更新. 将主服务器的数据拷贝到从服务器的一个途径是使用LOAD DATA FROM MASTER语句.请注意LOAD DATA FR…
Mysql中主从复制的原理.配置过程以及实际案例1.什么是主从复制?原理:主从分离,什么意思呢?我们不妨画个图看看.如图1所示: 2.准备工作:预备两台服务器,我这里使用虚拟机安装了两个Centos6.7_64位操作系统,并分别在两台服务器上安装mysql.我的IP地址分别为:192.168.1.15/192.168.1.16,这里我定义15为主服务器,16为从服务器.首先,我们编辑主服务器中mysql配置文件.(因我的mysql使用非root用户安装,因此配置文件放在/home/formal/…
Mysql主从复制原理及配置 1.复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的.复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一…
Samba原理和配置 个人原创,转载请注明,否则追究法律责任. 一,原理及安装 1,Samba是在Linux和UNIX系统上实现在局域网上共享文件一种通信协议,它为局域网内的不同计算机之间提供文件等资源的共享服务. 2,Samba访问控制机制:两重限制:操作系统本身的文件属性的限制和smb的访问列表的限制. 第二栏:多少档名连结到此节点(i-node) 文件的连接数 第三栏:文件(或目录)的拥有者 第四栏:文件的所属群组 第五栏:文件的容量大小(默认单位为bytes) 第六栏:最近的修改日期 3…
HAProxy原理和配置 目录 1.HAProxy简介 2.haproxy安装和配置说明 proxies配置参数 bind配置 Balance配置 基于cookie的会话绑定 统计接口启用相关的参数 haproxy的工作模式 forwardfor配置 错误页配置 修改报文首部 会话保持 日志系统 acl 1.HAProxy简介 (1)HAProxy 是一款提供高可用性.负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费.快速并且可靠的          一…
MySQL 的数据库的高可用性的架构大概有以下几种:集群,读写分离,主备.而后面两种都是通过复制来实现的.下面将简单介绍复制的原理及配置,以及一些常见的问题 一.复制的原理 MySQL 复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新.删除等等).每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新,以便从服务器可以对其数据拷贝执行相同的更新. 将主服务器的数据拷贝到从服务器的一个途径是使用LOAD DATA FROM MASTER语句.请注意LOAD DATA FRO…
[大型网站技术实践]初级篇:借助Nginx搭建反向代理服务器 - Edison Chou - 博客园http://www.cnblogs.com/edisonchou/p/4126742.html 图解正向代理.反向代理.透明代理 - 丁胖胖的BLOG - 51CTO技术博客http://z00w00.blog.51cto.com/515114/1031287 套用古龙武侠小说套路来说,代理服务技术是一门很古老的技术,是在互联网早期出现就使用的技术.一般实现代理技术的方式就是在服务器上安装代理服…
spring-cloud: eureka之:ribbon负载均衡自定义配置(二) 有默认配置的话基本上就是轮询接口,现在我们改用自定义配置,同时支持:轮询,随机接口读取 准备工作: 1.eureka服务 2.两个user服务: 项目名:spring-cloud-user接口:7900/7901 3.两个user服务:项目名:spring-cloud-user2接口:8800/8801 4.movie服务,读取/调用user信息接口 eureka启动文件加入@EnableEurekaServer注…
SNMP 原理及配置简述  net-snmp-utils  net-snmp 第2版基于SNMP 群体名(community name) 第3版引入了安全性更高的访问控制方法 SNMP协议操作只有4种  Apache的php_snmp 模块 --http://www.linuxfly.org/post/552/ 关键词被监控机器:服务器端 只安装net-snmp监控机器:客户端 net-snmp-utils 包 net-snmp-utils 包提供了一些客户端软件. 查看net-snmp版本 #…
SNMP 原理及配置简述 转载 2016年01月13日 16:18:51 随着机器数量的增长,管理员不能像过去那样,一台台机器进行监控.解决问题,而需要借助各方工具进行统一监控和管理.利用SNMP,一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态.修改网络设备配置.接收网络事件警告等.    在这里,我不想讲太多原理性的东西,网上有大堆的资料可以参考(附录中有链接),下面仅说明关键内容,并提供Linux 和 Windows 环境下snmp实现的方法. 一.SNMP的组成SN…
在 Spring Cloud 微服务系统中,一种常见的负载均衡方式是,客户端的请求首先经过负载均衡(Ngnix),再到达服务网关(Zuul 集群),然后再到具体的服务.服务统一注册到高可用的服务注册中心集群,服务的所有的配置文件由配置服务管理,配置服务的配置文件放在 GIT 仓库,方便开发人员随时改配置. 一.Zuul Zuul包含了对请求的路由和过滤两个最主要的功能: 其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是…