了解一下微服务各个模块的关联和使用认知

一个经过长时间断断续续了解的知识,突然发现用的不多我都要忘了,所以才写这一篇 来拾起来自己的记忆。


先来看一下我都是了解到了什么 源码供上 springCloud-demo 看一下20190728的日志吧 下面就不多说了 具体的模块概念去百度多了解。

目录

Eureka

启动类

配置文件

访问服务

Client

启动类

配置文件

Feign

启动类

配置文件

使用

Ribbon

启动类

配置文件

使用

Turbine

启动类

配置文件

使用

Zuul

启动类

配置文件

使用


Eureka

这位是老大 他是一个对于分布式最底层的一个服务 没有他其它的模块就是一盘散沙。。。。。。so先了解这位 

启动类

他实现了开启eureka服务 证明他是一个服务者

配置文件

  • spring.application.name:服务名称
  • server.port:服务端口号
  • eureka.client.service-url.defaultZone:Eureka默认的服务地址空间信息配置
  • eureka.client.fetch-registry:是否从其他Eureka注册中心同步服务列表(单节点无需配置启用).
  • eureka.client.register-with-eureka:是否将自己作为服务注册到其他Eureka服务注册中心(单节点无需配置启用).

访问服务


Client

client顾名思义就是客户端了,他是起到一个当做业务逻辑的地方,具体就是看怎么分层了吧,举个例子:client我要是分的话就会再有两个module,dao和service因为client不只有一个,他可以是当做一个登录的client可以是官网或者管理后台,这样他们可以把用到的service方法抽出来做成自己的client服务,也可以本身做一个service抽出来dao层方法也是可以的,具体就是看自己怎么分了。这里没有提到controller,因为接下来会单独讲。

启动类

这里是启动了eureka客户端,就是server的小弟了,看配置文件就知道了。

配置文件

  • spring.application.name:服务名称
  • server.port:服务端口号
  • eureka.client.service-url.defaultZone:Eureka默认的服务地址空间信息配置

服务地址空间信息配置是一样的 我的项目中有两个client项目服务名都是叫做client,因为我想实现访问接口可以访问任意一个client做到负载均衡的效果。


Feign

这个就很关键了,个人很喜欢这个,看一下对他的介绍,copy自网上(Feign是一个声明性的web服务客户端。它使编写web服务客户机变得更容易。使用Feign创建一个接口并注释它。它有可插入的注释支持,包括佯装注解和JAX-RS注释。Feign还支持可插拔的编码器和解码器。Spring Cloud增加了对Spring MVC注释的支持,也增加了Spring Web默认使用的httpmessageconverter。Spring Cloud集成了Ribbon和“发现”,在使用Feign时,它提供了一个负载均衡的http客户端。)总结重点就是它集成了ribbon和提供了一个负载均衡。

启动类

最主要的两个是绿色框里面的开启feign客户端和开启eureka客户端让server发现。

红色框的是开启监控观察和熔断在下面会讲

配置文件

  • spring.application.name:服务名称
  • server.port:服务端口号
  • eureka.client.service-url.defaultZone:Eureka默认的服务地址空间信息配置
  • feign.hystrix.enabled:true 开启hystrix的使用
  • management.endpoints.web.exposure.include:'*'  配置启用所有的监控端点

使用

name:通过注册client可以访问到client项目 只要能在eureka服务页面能看到client项目,feign就能进行访问,这里是能找到这两个client项目的所以name填的就是要进行负载均衡访问的项目 

通过feign访问client项目

访问一个地址他会有两次不同地方的响应 这就是两个client的作用。

fallback:如果两个client项目都宕机了那么他会执行HelloServiceImpl方法的 自己看源码Impl写的什么吧 这里就做效果图了


Ribbon

随意了解一下吧 ribbon也是实现了负载均衡的

启动类

第一个框是开启监控观察和熔断

第二个框是发现服务

在下面还有实现了一个RestTemplate

配置文件

  • spring.application.name:服务名称
  • server.port:服务端口号
  • eureka.client.service-url.defaultZone:Eureka默认的服务地址空间信息配置
  • management.endpoints.web.exposure.include:'*'  配置启用所有的监控端点

使用

也是使用了熔断,两个client都宕机了会执行serviceFailure()方法

通过restTemplate去访问client服务,host填写的就是项目注册的名字也是只要能在server上互相发现ribbon就能进行访问。


Turbine

这个就特别有意思了先认识一下它,查看单个微服务用的是Hystrix Dashboard,如果想看整个系统的Hystrix Dashboard数据就需要用到Hystrix Turbine,监控数据也是很有用的,监测你服务的状态和可以知道需要优化的接口,具体的解释就需要你自己在去了解了。

启动类

启动Hystrix Dashboard和Turbine 

配置文件

红色的就是基本的配置了 讲了好多次了就不说了 重要的是黄色框的appConfig这就是feign和ribbon项目的启动类为什么实现了那两个注解的用处

@EnableHystrixDashboard 启动检测表查看
@EnableCircuitBreaker 熔断

使用

要想使用这个Turbine 先访问http://localhost:port/hystrix ,红色框的内容就按照他的提示写 

写好之后就是这样 点击第二个红色框你会发现一个新大陆

在你进来这个页面后 你需要通过feign或者ribbon项目访问接口,才会有这些数据。简单介绍几个监测信息想多了解监测信息自己百度吧!


Zuul

感觉多个feign服务调用起来会特别麻烦,还要记着端口ip什么的,所以又研究了个zuul(路由),它的用处挺大的比如可以通过接口携带参数user,传入相应的参数我就让他去访问对应的feign,理解起来就是把feign管理起来了。

启动类

启动zuul和注册服务 很好理解

配置文件

红色的还是基础的配置 黄色的就比较厉害了 

zuul.routes:配置路由

  • zuul.routes.ribbo.path: 自定义ribbon的访问路径
  • zuul.routes.ribbo.serviceId: ribbon注册服务的名字
  • zuul.routes.feign.path: 自定义feign的访问路径
  • zuul.routes.feign.serviceId:feign注册服务的名字

使用

这里就讲一下我实现逻辑的方法 很粗糙

  1. 首先第一个框写的是 先获取到了访问当前内容的信息转换为HttpServletRequest
  2. 第二个框写的是获取参数验证信息 然后进行相应的处理

访问页面就是下面这样的 直接是通过路由去访问的,参数user必须是填写正确的才会去访问,我这是实验了两个负载均衡的项目,能做好多事的zuul就要自己拓展了。

ribbon服务效果

feign服务效果


下面图片是注册进去的所有服务,eureka页面上就是这些了。。。。。。(写帖子真的很需要耐心

cheer

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值