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

相关推荐
程序员清风34 分钟前
ZooKeeper是多主多从的结构,还是一主多从的结构?
java·后端·面试
小王不会写code1 小时前
Spring MVC面试题(一)
java·spring·mvc
极客先躯1 小时前
高级java每日一道面试题-2025年2月18日-数据库篇-MySQL 如何做到高可用方案?
java·数据库·mysql·架构·高可用
可观测性用观测云1 小时前
DataKit APM 自动注入原理篇
java
工一木子1 小时前
【HeadFirst系列之HeadFirstJava】第17天之深入解析 Java 包与 JAR:从代码组织到应用发布全流程(含实战)
java·jar
EdwardYange1 小时前
【说下线程本地变量ThreadLocal及其用法】
java·jvm·算法
小诸葛IT课堂2 小时前
SpringBoot动态加载JAR包实战:实现插件化架构的终极指南
spring boot·架构·jar
小咕聊编程2 小时前
【含文档+PPT+源码】基于Python的美食数据的设计与实现
java·eclipse·tomcat·美食
计算机-秋大田2 小时前
基于SpringBoot的美食信息推荐系统设计与实现(源码+SQL脚本+LW+部署讲解等)
java·vue.js·spring boot·后端·课程设计
雷渊2 小时前
mybatis源码-深入分析sql执行流程
java·后端·面试