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

相关推荐
爬山算法9 分钟前
Redis(168) 如何使用Redis实现会话管理?
java·数据库·redis
程语有云13 分钟前
生产事故-那些年遇到过的OOM
java·内存·oom·生产事故
狗哥哥17 分钟前
Pinia Store 平滑迁移:用代理模式实现零风险重构
前端·架构
雨中飘荡的记忆17 分钟前
Spring Test详解
java·后端·spring
sugar__salt25 分钟前
网络编程套接字(二)——TCP
java·网络·网络协议·tcp/ip·java-ee·javaee
wshzd26 分钟前
LLM之Agent(三十八)|AI Agents(七):Multi-Agent架构
人工智能·架构
颜颜yan_26 分钟前
跨越x86与ARM:openEuler全架构算力实战评测
java·arm开发·架构
毕设源码-朱学姐28 分钟前
【开题答辩全过程】以 陪诊就医小程序设计与实现为例,包含答辩的问题和答案
java
动感小麦兜37 分钟前
NAS学习
java·开发语言·eureka
狗哥哥38 分钟前
我是如何治理一个混乱的 Pinia 状态管理系统的
前端·vue.js·架构