
SpringCloud微服务实战
文章平均质量分 86
SpringCloud微服务项目实战,包括服务发现、配置管理、负载均衡、服务熔断、分布式消息传递等原理、源码、项目应用。
学会了没
javaer, 偶尔写一些go和js,欢迎各路大佬留言一起探讨
展开
-
SpringCloud微服务实战系列:05远程调用组件Feign的核心原理
1.Feign就是定义一个接口,让后用jdk Proxy创建一个动态代理实例。feign可以基于name从注册中心获取调用目的接口的IP端口,实现负载均衡; 也可以直接用url指定目的接口的IP端口。2. 因为可以插入自己的拦截器,所以可以实现比较复杂的业务功能。3. Feign 可以用直接当成一个http请求客户端工具使用,比如文章开头的演示demo就是这中用法。原创 2024-12-16 09:23:03 · 523 阅读 · 0 评论 -
SpringCloud微服务实战系列:04用了spring-cloud-gateway网关,为什么外面还需要加一层nginx网关
1.Nginx的高性能Nginx是一个基于C++编写的高性能Web服务器和反向代理服务器,它以事件驱动的方式处理请求,能够高效地处理大量并发连接。Nginx的底层实现使其在处理静态资源、SSL终止、HTTP压缩等方面具有显著优势。2. SpringCloud Gateway的Java性能瓶颈SpringCloud Gateway是基于Java编写的,虽然Java语言本身具有强大的功能和丰富的生态系统,但在处理高并发请求时,其性能可能受到JVM(Java虚拟机)和垃圾回收机制的限制。原创 2024-12-15 22:10:22 · 450 阅读 · 0 评论 -
SpringCloud微服务实战系列:03spring-cloud-gateway业务网关&灰度发布
这里的灰度逻辑比较简单,就是请求加了一个version的请求头,然后后端服务注册到注册中心时候在注册信息的metadata中写了一个version , 前端请求只会发到与后端version匹配的的server上。发散思考:请求头什么时候加进去?1.前端代码直接加,适用于前端多版本共存的情况,比如前端是andriod apk,那么前端多个版本共存就很常见了。2.后端直接加,比如前端只有web,那么前端一般都是最新版本,这时候我们要做灰度,就可以直接在GrayLoadBalancer灰度了,实现逻原创 2024-12-15 09:10:14 · 1152 阅读 · 0 评论 -
SpringCloud微服务实战系列:02从nacos-client源码分析注册中心工作原理
1. 其实单纯实现一个单机版注册中心还是很容易的。核心思路:用一个HashMap , key是serviceId , value 自己封装一个对象列表,该对象有以下关键字段service的IP 、端口、有效期客户端注册成功后,不停地发心跳,更新有效期,如果心跳上不来,有效期过期了,server端就认为该节点失效了,自动屏蔽该节点2.上述实现是很简单的,也完满足注册中心需求,但问题是单机版的,有单点故障问题。在微服务架构中,注册中心是核心功能,必须绝对可靠,如果注册中心宕机,那么整个系统原创 2024-12-14 16:52:12 · 528 阅读 · 0 评论 -
SpringCloud微服务实战系列:01让SpringCloud项目在你机器上运行起来
1. 这是一个spring微服务项目吗?为什么微服务很多组件、概念这里没涉及?这是基于springcloud的微服务,最精简版, 只用了2个与微服务概念相关的服务治理组件,所有的微服务架构必须要有这2个组件。gateway : 业务网关nacos: 注册中心2. yudao-demo 这个明显是java项目,为什么叫前端项目?这里就是将前端源码编译后,直接放到springboot项目里,springboot内置了一个tomcat,这里整个 yudao-demo 项目就是几个tomca原创 2024-12-14 11:27:02 · 1489 阅读 · 0 评论 -
SpringCloud微服务实战系列:00 Spring、SpringBoot、SpringCloud关系是什么?你真的需要SpringCloud吗?
spring 的第一个版本发布于2002年,他出现的使命就是替换EJB(J2EE规范,理论上很先进,开发效率低,且性能不好,已成功被spring彻底打败)。springboot 诞生于2014年,他出现的使命就是简化spring的用法,早期spring bean等配置需要配置到xml中,这个思路应该很大程度来源于EJB 。其实这个时候微服务架构已经很流行了,苦于java没有全家桶方案,各厂商就各显神通,东拼西凑,rpc框架,注册中心、业务网关等组件都是各式各样的,这个时候程序员要说做过微服务是有很大溢价原创 2024-12-13 09:42:17 · 804 阅读 · 0 评论