摘要: 前言 MQ消息中间件⼴泛应⽤在应⽤解耦合、异步消息处理、流量削峰等场景中。 不同的MQ消息中间件内部机制包括使⽤⽅式都会有所不同,⽐如RabbitMQ中有Exchange(交换机/交换器)这⼀概念, kafka有Topic、 Partition分区这些概念, MQ消息中间件的差异性不利于我们上层的开 阅读全文
posted @ 2021-01-04 23:14 易水寒的博客 阅读(963) 评论(0) 推荐(0) 编辑
摘要: 前言 在单体应用架构中,我们的配置文件比如application.yml可以每次手动维护,每次修改完之后重启项目即可。但在微服务架构中可能有多个微服务,涉及到的配置文件数量较多,如果每次手动维护的话会特别麻烦。 期望效果: 我们希望配置文件能够集中存储管理,且能实现一次修改、到处生效的效果; 不同 阅读全文
posted @ 2021-01-04 23:12 易水寒的博客 阅读(567) 评论(0) 推荐(0) 编辑
摘要: GateWay简介 网关(GateWay) 局域⽹中就有⽹关(翻译过来就叫做GateWay)这个概念,局域⽹接收或者发送数据出去通过这个⽹关,⽐如⽤Vmware虚拟机软件搭建虚拟机集群的时候,往往我们需要选择IP段中的⼀个IP作为⽹关地址。 我们学习的GateWay(Spring Cloud Gat 阅读全文
posted @ 2021-01-04 23:09 易水寒的博客 阅读(647) 评论(0) 推荐(0) 编辑
摘要: 前言 我们之前调用远程服务的方式如下代码: String url="http://lagou-service-resume/resume/openstate/"+userId; Integer forObject =restTemplate.getForObject(url,Integer.clas 阅读全文
posted @ 2021-01-04 23:08 易水寒的博客 阅读(442) 评论(0) 推荐(0) 编辑
摘要: 前言 雪崩效应 在微服务架构中,⼀个应⽤可能会有多个微服务组成,微服务之间的数据交互通过远程过程调⽤完成。 这就带来⼀个问题,假设微服务A调⽤微服务B和微服务C,微服务B和微服务C⼜调⽤其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调⽤响应时间过⻓或者不可⽤,对微服务A的调⽤就会占 阅读全文
posted @ 2021-01-04 23:05 易水寒的博客 阅读(425) 评论(0) 推荐(0) 编辑
摘要: Ribbon介绍 Ribbon是Netflix发布的负载均衡器。 Eureka⼀般配合Ribbon进⾏使⽤, Ribbon利⽤从Eureka中读取到服务信息,在调⽤服务提供者提供的服务时,会根据⼀定的算法进⾏负载。 Ribbon属于客户端负载均衡。 负载均衡 负载均衡分为客户端负载均衡和服务器端负载 阅读全文
posted @ 2021-01-04 23:02 易水寒的博客 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 前言 微服务原则上是应该有多个服务提供者的实例的,在通常情况下服务提供者的数量和分布往往是动态变化的,这样在传统的单体应用中的那种硬编码服务url进行远程调用的方式就不足取。服务注册中心就是为了解决服务之间的注册与发现而产生的。 服务注册中心本质上是为了解耦服务提供者和服务消费者。 服务注册中心的一 阅读全文
posted @ 2021-01-04 22:58 易水寒的博客 阅读(6803) 评论(0) 推荐(0) 编辑
摘要: springAOP的实现方式 三种 纯XML方式,XML+注解,纯注解方式。 Spring 实现AOP思想使⽤的是动态代理技术 默认情况下, Spring会根据被代理对象是否实现接⼝来选择使⽤JDK还是CGLIB。当被代理对象没有实现 任何接⼝时, Spring会选择CGLIB。当被代理对象实现了接 阅读全文
posted @ 2020-07-20 17:19 易水寒的博客 阅读(1464) 评论(1) 推荐(1) 编辑
摘要: 续接前文 手写SpringMVC框架(二)结构开发设计 本节我们来开始具体方法的代码实现。 doLoadConfig()方法的开发 思路:我们需要将contextConfigLocation路径读取过来的配置文件springmvc.properties加载到内存中来。 实现:使用properties 阅读全文
posted @ 2020-07-02 17:13 易水寒的博客 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 续接前文, 手写SpringMVC框架(一)项目搭建 本节我们来开始手写SpringMVC框架的第二阶段:结构开发设计。 新建一个空的springmvc.properties, 里面写我们要扫描的包名,之后这里面我们需要些一些配置信息,比如扫描的包路径等等。 scanPackage=com.lago 阅读全文
posted @ 2020-07-02 16:39 易水寒的博客 阅读(162) 评论(0) 推荐(0) 编辑