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

相关推荐
上海合宙LuatOS12 分钟前
全栈工程师实战手册:LuatOS日志系统开发指南!
java·开发语言·单片机·嵌入式硬件·物联网·php·硬件工程
多敲代码防脱发12 分钟前
导出导入Excel文件(详解-基于EasyExcel)
java·开发语言·jvm·数据库·mysql·excel
一刀到底21123 分钟前
做为一个平台,给第三方提供接口的时候,除了要求让他们申请 appId 和 AppSecret 之外,还应当有哪些安全选项,要过等保3级
java·网络·安全
wjcurry1 小时前
我的实习日报
java·redis·mysql
我喜欢山,也喜欢海2 小时前
Jenkins Maven 带权限 搭建方案2025
java·jenkins·maven
明天更新2 小时前
Java处理压缩文件的两种方式!!!!
java·开发语言·7-zip
铁锚2 小时前
一个WordPress连续登录失败的问题排查
java·linux·服务器·nginx·tomcat
yychen_java2 小时前
上云API二开实现三维可视化控制中心
java·无人机
理智的煎蛋2 小时前
keepalived+lvs
java·开发语言·集成测试·可用性测试