
SpringCloud
文章平均质量分 86
一只胡说八道的猴子
共勉!!高处见!
展开
-
Spring Cloud微服务学习系列14 Bus服务总线
Spring Cloud Bus服务总线问题前面已经完成了将微服务中的配置文件集中存储在远程Git仓库,并且通过配置中心微服务从Git仓库拉取配置文件,当用户微服务启动时会连接配置中心获取配置信息从而启动用户微服务。如果我们更新Git仓库中的配置文件,那用户微服务是否可以及时接收到新的配置信息并更新呢?1. 修改远程Git配置修改在码云上的userservice-dev.yml文件,添加一个属性test.name。2.修改UserControllerpackage com.pjh.user.C原创 2021-08-10 19:56:58 · 578 阅读 · 0 评论 -
Spring Cloud微服务学习系列13 分布式配置中心
SpringCloud分布式配置中心什么是分布式配置中心在分布式系统中,由于服务数量非常多,配置文件分散在不同的微服务项目中,管理不方便。为了方便配置文件集中管理,需要分布式配置中心组件。在Spring Cloud中,提供了Spring Cloud Config,它支持配置文件放在配置服务的本地,也支持放在远程Git仓库(GitHub、码云)。使用Spring Cloud Config配置中心后的架构如下图:分布式配置中心本质上也是一个微服务,同样要注册到Eureka注册中心远程仓库的选择远程原创 2021-08-10 19:55:55 · 295 阅读 · 0 评论 -
Spring Cloud微服务学习系列12 Gateway网关
Spring Cloud Gateway网关简介Spring Cloud Gateway是Spring官网基于Spring 5.0、 Spring Boot 2.0、Project Reactor等技术开发的网关服务。网关的主要作用:Spring Cloud Gateway基于Filter链提供网关基本功能:安全、监控/埋点、限流等**。**Spring Cloud Gateway为微服务架构提供简单、有效且统一的API路由管理方式。3.Spring Cloud Gateway是替代Netf原创 2021-08-10 19:55:07 · 628 阅读 · 0 评论 -
Spring Cloud微服务学习系列11 Feign
Feign简介在前面的学习中,使用了Ribbon的负载均衡功能,大大简化了远程调用时的代码:String url = "http://user-service/user/" + id;User user = this.restTemplate.getForObject(url, User.class)如果就学到这里,你可能以后需要编写类似的大量重复代码,格式基本相同,无非参数不一样。有没有更优雅的方式,来对这些代码再次优化呢?这就是接下来要学的Feign的功能了Feign也叫伪装:Fei原创 2021-08-10 19:53:43 · 222 阅读 · 0 评论 -
Spring Cloud微服务学习系列11 服务降级介绍与使用
服务降级1 、简介什么是服务降级?当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的不处理或换种简单的方式处理,从而释放服务器资源以保证核心交易正常运作或高效运作。如果还是不理解,那么可以举个例子:假如目前有很多人想要给我付钱,但我的服务器除了正在运行支付的服务之外,还有一些其它的服务在运行,比如搜索、定时任务和详情等等。然而这些不重要的服务就占用了JVM的不少内存与CPU资源,为了能把钱都收下来(钱才是目标),我设计了一个动态开关,把这些不重要的服务直接在最外层拒掉,这样处理原创 2021-03-04 20:10:30 · 252 阅读 · 1 评论 -
Spring Cloud微服务学习系列10 熔断器Hystrix的使用 雪崩问题 服务降级问题
熔断器HystrixHystrix是什么?Hystrix 在英文里面的意思是 豪猪,它的logo 看下面的图是一头豪猪,它在微服务系统中是一款提供保护机制的组件,和eureka一样也是由netflix公司开发。主页:https://github.com/Netflix/Hystrix/那么Hystrix的作用是什么呢?具体要保护什么呢?Hystrix是Netflix开源的一个延迟和容错库,用于隔离访问远程服务、第三方库,防止出现级联失败。雪崩问题微服务中,服务间调用关系错综复杂,一个请求,可原创 2021-03-04 20:10:16 · 511 阅读 · 0 评论 -
Spring Cloud微服务学习系列9 URI和URL的区别及其关系
URI和URL的区别及其关系解释1统一资源标志符URI就是在某一规则下能把一个资源独一无二地标识出来。拿人做例子,假设这个世界上所有人的名字都不能重复,那么名字就是URI的一个实例,通过名字这个字符串就可以标识出唯一的一个人。现实当中名字当然是会重复的,所以身份证号才是URI,通过身份证号能让我们能且仅能确定一个人。那统一资源定位符URL是什么呢。也拿人做例子然后跟HTTP的URL做类比,就可以有:动物住址协议://地球/中国/浙江省/杭州市/西湖区/某大学/14号宿舍楼/525号寝/张三.人原创 2021-03-02 13:06:54 · 508 阅读 · 0 评论 -
Spring Cloud微服务学习系列8 序列化与反序列化
序列化与反序列化序列化和反序列化作为Java里一个较为基础的知识点,大家心里也有那么几句要说的,但我相信很多小伙伴掌握的也就是那么几句而已,如果再深究问一下Java如何实现序列化和反序列化的,就可能不知所措了!遥记当年也被问了这一个问题,自信满满的说了一大堆,什么是序列化、什么是反序列化、什么场景的时候才会用到等,然后面试官说:那你能说一下序列化和反序列化底层是如何实现的吗?一脸懵逼,然后回家等通知!一、基本概念1、什么是序列化和反序列化(1)Java序列化是指把Java对象转换为字节序列的过程,而原创 2021-03-02 13:06:23 · 1733 阅读 · 3 评论 -
Spring Cloud微服务学习系列7 负载均衡Ribbon
负载均衡Ribbon在刚才的案例中,我们启动了一个 user-service ,然后通过DiscoveryClient来获取服务实例信息,然后获取ip和端口来访问。但是实际环境中,往往会开启很多个 user-service 的集群。此时获取的服务列表中就会有多个,到底该访问哪一个呢?一般这种情况下就需要编写负载均衡算法,在多个实例列表中进行选择。不过Eureka中已经集成了负载均衡组件:Ribbon,简单修改代码即可使用。什么是Ribbon:接下来,我们就来使用Ribbon实现负载均衡1.启动原创 2021-03-02 13:04:37 · 170 阅读 · 0 评论 -
Spring Cloud微服务学习系列6 分布式服务中需解决的问题与Eureka注册中心的使用
分布式服务出现的问题1.简单回顾一下,刚才我们写了什么:****1.user-service:**对外提供了查询用户的接口**2.consumer-demo:**通过RestTemplate访问 http://locahost:9091/user/{id} 接口,查询用户数据2.存在什么问题?在consumer中,我们把url地址硬编码到了代码中,不方便后期维护consumer需要记忆user-service的地址,如果出现变更,可能得不到通知,地址将失效consumer不清楚user-se原创 2021-03-02 13:04:01 · 493 阅读 · 0 评论 -
Spring Cloud微服务学习系列6 SpringCloud基础入门
SprigCloud前面做了那么多的铺垫,只为了让大家的基础能更加的扎实,因为面试不会只简单的问你框架怎么用,所以前面就啰嗦了那么几下,现在我们来正式进入Spring的学习1.为什么SpringCloud在微服务中这么受喜爱微服务是一种架构方式,最终肯定需要技术架构去实施。微服务的实现方式很多,但是最火的莫过于Spring Cloud了。为什么?**1.后台硬:**作为Spring家族的一员,有整个Spring全家桶靠山,背景十分强大。**2.技术强:**Spring作为Java领域的前辈,可以原创 2021-03-02 13:02:24 · 129 阅读 · 0 评论 -
Spring Cloud微服务学习系列5 Spring RestTemplate介绍及其应用
Spring RestTemplate介绍及其应用什么是Spring RestTemplateSpring提供了一个RestTemplate模板工具类,对基于Http的客户端进行了封装,并且实现了对象与json的序列化和反序列化,非常方便。RestTemplate并没有限定Http的客户端类型,而是进行了抽象,目前常用的3种都有支持:HttpClientOkHttpJDK原生的URLConnection(默认的)搭建一个SpringCloud示例工程需要导入的jar包 <paren原创 2021-03-02 13:01:44 · 209 阅读 · 0 评论 -
Spring Cloud微服务学习系列4 Socket原理
Socket原理1、什么是Socket在计算机通信领域,socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过 socket 这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据 socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。 我的理解就是Socket就是该模式的一个实现:即socket是一种特殊的文件,一些so原创 2021-03-02 13:00:30 · 1091 阅读 · 2 评论 -
Spring Cloud微服务学习系列3 Restful风格介绍
Restful风格越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,现在我们必须考虑,如何开发在互联网环境中使用的软件。RESTful架构,就是目前最流行的一种互联网软件架构。它原创 2021-03-02 12:59:51 · 480 阅读 · 0 评论 -
Spring Cloud微服务学习系列2 服务调用方式RPC与HTTP
服务调用方式OSI七层架构图没有学习过计算机网络的同学可以通过下图大致了解一下,OSI七层架构的大致情况RPC简介RPC:Remote Produce Call远程过程调用,RPC基于Socket,工作在会话层。自定义数据格式,速度快,效率高。早期的webservice,现在热门的dubbo,都是RPC的典型代表 。通信双方需要使用相同的语言开发。精讲RPC,即 Remote Procedure Call(远程过程调用),是一个计算机通信协议。 该协议允许运行于一台计算机的程序调用另一台计算原创 2021-03-02 12:58:55 · 579 阅读 · 0 评论 -
Spring Cloud微服务学习系列1 系统架构的演变
系统架构的演变单体架构架构说明:所有的功能全部集中与一个项目内优点:架构简单,前期开发成本低,开发周期短,适合小型项目,减少了节点部署也就自然减少了成本缺点:全部功能集中在一个工程中,对大型项目不易开发,拓展和维护技术栈受限,只可以使用一种语言开发系统性能拓展只能通过拓展集群结点,成本高单点容错率低,并发能力差无法水平拓展垂直架构架构说明:按照业务进行切割,形成小的单体项目。架构优点:技术栈可扩展(不同的系统可以用不同的编程语言编写)。架构缺点:功能集中在一个项目原创 2021-03-02 12:57:43 · 145 阅读 · 0 评论 -
Spring Cloud
Spring Cloud什么是Spring CloudSpringCloud是基于SpringBoot的一整套实现微服务的框架。它提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。最重要的是,基于SpringBoot,会让开发微服务架构非常方便。官网也给出了SpringCloud的定位和说明:既然,本身SpringClud是一套框架,是个大管家。下图列举了一些比较核心的功能:既然SpringCloud是基于Spri原创 2021-03-01 15:15:17 · 480 阅读 · 0 评论