
SpringCloud
muzi木子
把简单的事做好,就是不简单!
把平凡的事做好,就是不平凡!
展开
-
【心得分享】-- 微服务架构演变过程
1. 微服务架构演变过程1.1 传统的架构所有的业务都写在一个工程里边(ALL IN ONE),开发起来比较简单,部署也比较简单,但是程序的耦合度高,业务与业务之间代码耦合在一起,不利于团队开发!1.2 分布式架构就是将原来的单体架构,拆分成多个负责相关业务的服务(降低业务之间的耦合度),每个服务拥有自己的相关资源(数据库、缓存、消息队列),各个服务间通过RPC远程调用进行通信(http、dubbo、grpc)。1.2.1 SOA面向服务架构什么是面向服务架构呢?面向服务架构即S原创 2020-12-26 18:41:36 · 342 阅读 · 0 评论 -
【开发技巧/经验分享】在Zuul网关服务中实现限流、用户鉴权(访问鉴权) 、跨域访问
1. 在zuul网关服务中实现限流1.1 为什么需要限流?限流是为了保证服务器的负载量处于正常状态,因为如果太多的访问量可能会直接导致服务的崩溃。1.2 如何实现限流1.2.1 令牌桶算法简介在zuul中实现限流是通过创建一个filter实现的,底层算法采用的是令牌桶算法,令牌桶会每秒往桶中投放一定数量的令牌,如果令牌桶中的令牌达到了临界值,新产生的令牌就会丢弃,当请求到达zuul网关后...原创 2020-02-19 14:05:11 · 2263 阅读 · 1 评论 -
【开发技巧/经验分享】使用zuul构建服务网关ApiGetaway
1. 什么是服务网关?服务网关就好比是一个请求的转发者,它能够根据相关的请求规则调用对应的服务提供者,它有点像nginx起到了一个代理的作用,使用服务网关可以实现限流、服务鉴权、请求处理、请求参数验证等操作。2. 什么是zuul?zuul是服务网关的实现之一,zuul作为一个边界性质的应用程序,它提供了动态路由、监控、弹性负载和安全功能。Zuul底层利用各种filter实现如下功能:认...原创 2020-02-17 22:17:48 · 1052 阅读 · 0 评论 -
【开发技巧/经验分享】使用SpringCloudStream操作RabbitMQ(内附重复消费的情况,并有相关解决方案)
1. 什么是SpringCloudStream?SpringCloudStream是SpringCloud中对于消息中间件操作的封装包,目前支持的消息中间件有RabbitMQ、Kafka,一下是SpringCloudStream的模型图。从上图可以发现消息的发送由output接口提供,消息的接收由input输入。应用程序与消息中间件通过Binder进行链接。2. 为什么要使用SpringC...原创 2020-02-16 20:45:49 · 1084 阅读 · 0 评论 -
【开发技巧/经验分享】SpringBoot快速使用RabbitMQ
1. 为什么需要使用MQ消息中间件?在实际开发中,有很多操作都是可以不同步执行的,比如邮件信息、短信的发送操作都不需要同步执行,还有一些服务的掉用也是可以不同步执行的,如果这一部分操作全都同步执行那么可能导致客户端阻塞的情况,并且会增加服务器的压力。而消息中间件就起到了一个,消息异步通知、流量削峰的作用。2. 主流的MQ中间件有哪些?ActiveMQ、RabbitMQ、Kafka等。3. ...原创 2020-02-16 17:43:48 · 262 阅读 · 0 评论 -
【开发中遇到的小问题】SpringCloudBus配置Webhooks不生效(无法发送请求/monitor)以及能够发送请求但是无法刷新客户端配置解决方案
1. 配置Webhooks不生效以及能够发送请求解决方案根据查阅官方文档以及其他资料发现,是因为缺少了依赖包<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-monitor</artifactId...原创 2020-02-16 12:28:41 · 789 阅读 · 0 评论 -
【开发技巧/经验分享】使用SpringCloudCofig实现远程配置管理(服务端、客户端实现)
1. 为什么需要需要远程配置管理?首先我们分析传统的配置管理,传统项目中我们的配置文件都是写死在项目中,如果更改一些配置可能导致整个应用需要重新编译,并且我们在开发中也是整个开发团队一起开发的,如果其中一个人修改了配置那么所有的配置都将受到影响,所以在这一方面会有配置冲突的问题,而下面要提到的SpringCloudConfig就是为了解决以上问题而衍生出来的。2. 如何使用SpringClou...原创 2020-02-14 17:00:01 · 334 阅读 · 0 评论 -
【开发技巧/经验总结】--使用RestTemplate的调用其他服务的方式
1. 什么是远程调用?远程调用指的就是,程序通过某种协议调用其他服务的一种方式,一般说远程调用有两种方式一种是基于HTTP的Restful轻量级通信,一种是基于RPC的远程调用方式。2. HTTP调用与RPC调用的区别是什么?http调用是发送一个http请求去调用服务接口,它的典型实现框架有SpringCloud,而RPC是一种高性能的远程调用方式,它比http调用性能更优,它的典型实现是...原创 2020-02-11 18:18:30 · 344 阅读 · 0 评论 -
【开发技巧/经验总结】--使用eureka实现服务注册与发现并且实现eureka服务的高可用(基于SpringBoot2.x版本)
1. eureka的介绍以及基本实现1.1 什么是eureka?eureka是netflix开发的一个服务注册发现组件,它是微服务中必不可少也是最基础的一部分。1.2 为什么要使用eureka?在SpringCloud中eureka对netflix的eureka进行了再次封装,使用起来更加方便与便捷,并且eureka支持异构化处理,也就说我们的调用者使用的底层语言可不必为Java,在其他语...原创 2020-02-09 21:18:17 · 353 阅读 · 0 评论 -
【概念分析】浅谈分布式系统、集群、分布式计算以及微服务之间的区别
1. 什么是分布式系统?所谓的分布式系统就是将一个系统的各个功能模块拆分出来,部署到不同的节点上,它们之间会有相互通信。2. 什么是集群?集群就是讲一个功能模块相同的系统部署在多个服务器节点上,它们之间是不需要互相通信的。3. 什么是分布式计算?分布式计算就好比在厨房中有多个炒菜的大厨,每个人负责一部分任务,最后组合成一个产品,即分布式计算就是将一个计算任务划分到多个节点上进行,最终整合...原创 2020-02-04 12:24:16 · 578 阅读 · 0 评论 -
hystrix dashbord 后台报错 Error proxying request的解决方案
hystrix dashbord 后台报错堆栈信息:2020-01-19 18:35:47.023 ERROR 18836 --- [nio-8093-exec-4] ashboardConfiguration$ProxyStreamServlet : Error proxying request: http://localhost:8023/actuator/hystrix.streamj...原创 2020-01-19 19:02:56 · 2760 阅读 · 12 评论 -
SpringCloud实战Ribbon完全脱离Eureka实现自定义负载均衡出错【使用@RibbonClient注解后找不到实例】的解决方案
错误堆栈信息:java.lang.NullPointerException: null at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:213) ~[guava-16.0.1.jar:na] at com.google.common.cache.LocalCache.get(LocalCache....原创 2020-01-07 18:01:16 · 2013 阅读 · 0 评论