微服务框架中的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的懒加载:

相关推荐
zhuyasen2 分钟前
定义即代码!这个框架解决了90%的Go开发者还在低效开发项目的问题
架构·go·gin
LCG元5 分钟前
云原生微服务间的异步消息通信:最终一致性与系统容错的架构实战
微服务·云原生·架构
勤奋的知更鸟19 分钟前
Java 编程之模板方法模式
java·开发语言·模板方法模式
逸风尊者40 分钟前
开发易掌握的知识:GeoHash查找附近空闲车辆
java·后端
骑着王八撵玉兔1 小时前
【性能优化与架构调优(二)】高性能数据库设计与优化
数据库·性能优化·架构
碎叶城李白1 小时前
若依学习笔记1-validated
java·笔记·学习·validated
都叫我大帅哥2 小时前
🌊 Redis Stream深度探险:从秒杀系统到面试通关
java·redis
都叫我大帅哥2 小时前
Redis持久化全解析:从健忘症患者到记忆大师的逆袭
java·redis
程序猿阿越2 小时前
Kafka源码(一)Controller选举与创建Topic
java·后端·源码