一、微服务核心基础知识
简介:网关,服务发现注册,配置中心,链路追踪,负载均衡器,熔断
①、网关:路由转发+过滤器
/api/v1/product/ 商品服务
/api/v1/order/ 订单服务
/api/v1/user/ 用户服务
网关最主要的作用是路由的转发,和充当过滤器的功能。
路由:用户的请求来到网关层的这边,然后由网关层去决定调用哪个服务。
过滤器:比如某个服务是需要登录的,比如用户服务/订单服务,因为它要下订单。
②、服务注册发现:调用和被调用方的信息维护
在上面的图中,比如有四个服务a,b,c,d,由网关路由到a,b,c,但是服务c调用服务d。由网关是很难配置管理这几个服务的,这时就有服务注册发现组件的产生。这时由网关请求服务注册中心。服务在启动的时候就向服务注册中心中去注册,把信息和ip地址等等都注册上去。这时网关就不会自己去实现一些复杂的调用关系。
这时网关从服务注册中心上去拿到服务的一些注册的信息,就可以根据一些信息就找到相对应的服务。这样就方便很多。
如果某一个时刻服务a不可用了,这时服务注册中心就可以告诉网关这个服务a不能用了,就可以告诉网关去找服务a一样的服务了,这样就很方便了。
③、配置中心:主要用于应用里面的一些配置。(application.properties)
主要功能:管理配置,动态更新
因为服务是比较多的,比如上面的5个服务,或者几十个服务,如果配置一多,如果修改了一个服务的配置,这个配置是这些个服务都用的上的,如果是逐一修改的话不是很现实的,这个时候就引入了配置中心,动态的刷新。
④、链路追踪:分析调用链路耗时
比如:下单->查询商品服务获取商品的价格->查询用户信息->保存数据库
获取整一个链路的耗时。可以分析哪个服务的时间耗时长,然后从而进行优化。
⑤、负载均衡器:分发负载,分发一些请求
比如nginx做负载均衡器,比如瞬间有几百个请求到网关这一边,然后由网关负载到不同的服务,这时就会出现一个服务对应不同的服务实例。以防所有的请求就只到一个服务实例上,从而宕机。
⑥、熔断:保护自己和被调用方
在下面的图中,服务a需要服务b提供的服务,以此类推,服务c需要服务d提供的服务。从而形成一个链路。
如果服务d宕机的话,就会影响服务c,从而会影响服务a,这时就会出现雪崩的效应。
熔断的作用就是在服务d不能够提供服务的时候就给它干掉。让服务c去请求其他的服务。也是保证整个服务的安全。