学习日志 0129

今天开始做spring cloud netFlix的Demo

一。

一开始就遇到了一个小小的问题,我发现我注入User对象的时候注入不了。

我就开始疑惑,后来发现自己真是个笨比,没有加注解当然注入不进去。随后就给User对象加了一个@component 注解。

还有几个月没写代码了,很多东西都忘了,就记录一下吧。在User上加@Data 就可以不用写 hashcode tostring getset 方法了。@AllargsConstructor  @NoargsConstructor 

不用写构造器方法。

二。

我之前写微服务的项目时,服务之间的调用 都是用的openfeign,所以看到这个方法还有点新奇,想记录下来。也就是RestTemplate,它可以直接调用其他服务,零配置。

我这里是把他写在 启动类里面的,然后需要用到就@autowired。以下图片是它的用法

写在启动类里

注入并使用,这里是订单服务调用用户服务

三。

集成ribbon 实现随机算法进行调用

先给user服务做一个集群

然后在UserController 写下port 方便我们查看调用的是哪个接口

给 order 服务加上 ribbon依赖 

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
        </dependency>
    </dependencies>

</project>

给RestTemplate加上 @Loadbalanced注解,让它能搞负载均衡调用,再写一个负载均衡算法,这里写的是随机算法

最后别忘了用RestTemplate调用的url不要用 端口号,要使用服务名调用。

完成! 

四 集成openfeign 果然还是openfeign方便很多

先导对应的依赖

 <dependency>
              <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

在启动类加上注解@EnableFeignClients

写上对应的feign接口 

理解Feign的工作原理(重要)

要使用Feign,我们除了导入依赖之外,需要主配置类通过@EnableFeignClients(value="")注解开启Feign,也可以通过value属性指定了Feign的扫描包。同时我们需要为Feign编写客户端接口,接口上需要注解@FeignClient标签。 当程序启动,注解了@FeignClient的接口将会被扫描到然后交给Spring管理

当请求发起,会使用jdk的动态代理方式代理接口,生成相应的RequestTemplate,Feign会为每个方法生成一个RequestTemplate同时封装好http信息,如:url,请求参数等等

最终RequestTemplate生成request请求,交给Http客户端(UrlConnection ,HttpClient,OkHttp)。然后Http客户端会交给LoadBalancerClient,使用Ribbon的负载均衡发起调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值