Bootstrap

微服务框架中的Eureka和Ribbon的个人理解

微服务框架需要学习的东西很多,基本上我把它分为了五个模块:

第一:微服务技术模块

        分为三个常用小模块:

        1.微服务治理:

                注册发现

                远程调用

                配置管理

                网关路由

        2.微服务保护:

                流量控制

                系统保护

                熔断降级

                服务授权

        3.分布式事务:

                分布式事务

                TCC模型

                AT模型

                Seata

第二:缓存技术模块

        分为三个小模块

        1.分布式缓存:

                Redis数据结构

                SpringDataRedis

                缓存穿透、雪崩

        2.多级缓存:

                Openresty

                多级缓存

                Nginx本地缓存

                缓存数据同步

        3.Redis集群:

                Redis集群

                Redis主从复制

                Lua脚本

                数据持久化

第三:异步通信模块

        分为两个模块

        1.异步通信:

                数据持久化

                消息堆积问题

                MQ消息模型

                SpringAMQP

        2.可靠消息服务:

                消息可靠性

                消息幂等性

                镜像集群

                延迟队列

第四:搜索技术模块

        主要就一个分布式搜索:

                DSL语句

                RestAPI

                ES集群状态

第五:Devops模块

        主要就是Docker技术:

                Docker使用

                Dockerfile

                Dockers compose

版本兼容关系:

SpringCloud的关键:如何在Java代码中发起Http请求,来达到分布式的需求。

在实际的分布式中,我们其实很少使用类似于这种Http://localhost:8080/user/ +order.getUserId()这种硬编码,我们通常会使用eurka(尤里卡)来进行服务端注册

搭建注册中心

 

在注册了Eureka之后我们需要把上面的硬代码换成服务器地址同时如果还有负载均衡的话我们还需要添加@LoadBalanced注解:

总结以下:

Ribbon作为Eureka中间件实现了请求的负载均衡:

从前端发过来的请求之后到LoadBalancer:

IRule作为拦截之后查询得规则,有以下内容作为查询时遵循的规则,默认是轮询,

修改规则:方法一是全局得,方法二是针对某个微服务的。

Ribbon的懒加载:

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;