![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
微服务学习
文章平均质量分 94
shi_zi_183
这个作者很懒,什么都没留下…
展开
-
使用Docker Compose编排微服务
使用Docker Compose编排微服务经过前文讲解,可使用Dockerfile(或Maven)构建镜像,然后使用docker命令操作容器,例如docker run、docker kiil等。然而,使用微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署国歌示例。如果每个微服务都有手动启停,那么效率之低、维护量之大可想而知。Docker Compose简介Compose是一个用于定义和运行多容器Docker应用程序的工具,前身是Fig。它非常适合用在开发、测试、构建CI工作流等场景。这里原创 2021-11-11 20:26:33 · 2373 阅读 · 0 评论 -
将微服务运行在Docker上
将微服务运行在Docker上使用Dockerfile构建Docker镜像Dockerfile构建Docker镜像。Dockerfile是一个文本文件,其中包含了若干条指令,指令描述了构建镜像的细节。1)准备一个文件,名为Dockerfile:FORM nginxRUN echo '<h1>test</h1>' > /usr/share/nginx/html/index.htmlFORM、RUN都是Dockerfile的指令。FROM指令用于指定基础镜像,RUN指令原创 2021-11-10 21:35:28 · 848 阅读 · 0 评论 -
Docker入门
Docker入门Docker是一个开源的容器引擎,它有助于更快地交付应用。Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用Docker,可更快地打包、测试以及部署应用程序,并可缩短从编写到部署运行代码地周期。版本与迭代计划版本区别Docker EE(企业版)Docker EE由公司提供支持,可在经过认证的操作系统和云提供商中使用,并可运行来自Docker Store的、经过认证的容器和插件。Docker EE提供了三个服务层次服务层次功能原创 2021-11-09 17:06:39 · 547 阅读 · 0 评论 -
使用Spring Cloud Sleuth实现微服务跟踪
使用Spring Cloud Sleuth实现微服务跟踪之前已经了解了几种监控微服务的方式,例如使用Spring Boot Actuator监控微服务示例,使用Hystrix监控Hystrix Command等。为什么要实现微服务追踪Peter Deutsch的分布式计算的八大误区。网络可靠延迟为零带宽无限网络绝对安全网络拓扑不会改变必须有一名管理员传输成本为零网络同质化从中可以看到,该文章很多点都在描述一个问题——网络问题。网络常常很脆弱,同时网络资源也是有限的。我们知道,微服原创 2021-11-06 19:07:44 · 320 阅读 · 0 评论 -
使用Spring Cloud Config统一管理微服务配置
使用Spring Cloud Config统一管理微服务配置为什么要统一管理微服务配置对于传统的单体应用,常使用配置文件管理所有配置。例如一个Spring Boot开发的单体应用,可将配置内容放在application.yml文件中。如果需要切换环境,可设置多个Profile,并在启动应用时指定spring.profiles.active={profile}。当然也可借助Profile实现环境切换。然而,在微服务架构中,微服务的配置管理一般有以下需求:集中管理配置。一个使用微服务架构的应用系统可能原创 2021-11-06 00:51:17 · 905 阅读 · 0 评论 -
使用Zuul构建微服务网关
使用Zuul构建微服务网关为什么要使用微服务网关经过前文的讲解,微服务架构已经初具雏形,但还有一些问题——不同的微服务一般会有不同的网络地址,而外部客户端(例如手机APP)可能需要调用多个服务的接口才能完成一个业务需求。如果让客户端直接与各个微服务通信,会有以下的问题:客户端多次请求不同的微服务,增加了客户端的复杂性存在跨域请求,在一定场景下处理相对复杂认证复杂,每个服务都需要独立认证难以重构,随着项目的迭代,可能需要重新划分微服务。例如,可能将多个服务合并成一个或者将一个服务拆分成多个。如原创 2021-11-05 01:22:56 · 494 阅读 · 0 评论 -
使用Hystrix实现微服务的容错处理
使用Hystrix实现微服务的容错处理至此,已用Eureka实现类微服务的注册与发现,Ribbon实现了客户端侧的负载均衡,Feign实现了声明式的API调用。实现容错的手段如果服务提供者响应非常缓慢,那么消费者对提供者的请求就会被强制等待,直到提供者响应或超时。在高负载场景下,如果不做任何处理,此类问题可能会导致服务消费者的资源耗尽甚至整个系统的崩溃。例如,曾经发生过一个案例——某电子商务网站在一个黑色星期五发生过载。过多的并发请求,导致用户支付的请求延迟很久都没有响应,在等待很长时间后最终失败。支原创 2021-11-03 09:16:32 · 397 阅读 · 0 评论 -
使用Feign实现声明式REST调用
使用Feign实现声明式REST调用之前示例中是使用RestTemplate实现REST API调用的,代码大致如下: public User findById(@PathVariable Long id){ return this.restTemplate.getForObject("http://microservice-provider-user/"+id,User.class); }由代码可知,我们是使用拼接字符串的方式构造URL的,该URL只有一个参数。然而在现实中原创 2021-11-01 22:40:50 · 441 阅读 · 0 评论 -
使用Ribbon实现客户端侧负载均衡
使用Ribbon实现客户端侧负载均衡在生成环境中,各个微服务都会部署多个实例。那么服务消费者要如何将请求分摊到多个服务者实例上呢?Ribbon简介Ribbon是Netfix发布的负载均衡器,它有助于控制HTTP的TCP客户端的行为。为Ribbon配置服务提供者地址列表后,Ribbon就可基于某种负载均衡算法,自动地帮助服务消费者去请求。Ribbon默认为我们提供了很多的负载均衡算法,例如轮询、随机等。当然,我们也可为Ribbon实现自定义的负载均衡算法。在Spring Cloud中,当Ribbon与原创 2021-10-29 23:58:32 · 317 阅读 · 0 评论 -
微服务注册与发现
微服务注册与发现服务发现简介通过前文的讲解,我们知道硬编码提供者地址的方式有不少问题。想要解决这些问题,服务消费者需要一个强大的服务发现机制,服务消费者使用这种机制获取服务提供者的网络信息。不仅如此,即使服务提供者的信息发生变化,服务消费者也无需修改配置文件。...原创 2021-10-28 18:34:22 · 1981 阅读 · 0 评论 -
开始使用Spring Cloud实战微服务
开始使用Spring Cloud实战微服务Spring Cloud 实战前提Spring Cloud不一定适合所有人。学习之前需要了解需要具备什么样的技术能力,以及实战中会使用到哪些工具。技术储备Spring Cloud并不是面向零基础开发人员的,它有一定的学习曲线。语言基础:Spring Cloud是一个基于Java语言的工具套件,所以学习他需要一定的Java基础。当然,Spring Cloud同样也支持使用Scala、Groovy等语言进行开发。Spring Boot:Spring Clo原创 2021-10-26 11:55:37 · 235 阅读 · 0 评论 -
微服务开发框架——Spring Cloud
微服务开发——Spring CloudSpring Cloud简介尽管Spring Cloud带有“Cloud”的字样,但它并不是云计算解决方案,而是在Spring Boot基础上构建的,用于快速构建分布式系统的通用模式的工具集。使用Spring Cloud开发的应用程序非常适合在Docker或者PaaS(例如 Cloud Foundry)上部署,所以又叫作云原生应用(Cloud Native Application)。云原生(Cloud Native)可简单理解为面向云环境的软件架构。Spring原创 2021-10-25 21:06:52 · 355 阅读 · 0 评论 -
微服务架构概述
微服务架构概述微服务架构是当前软件开发领域得技术热点。什么是微服务?它解决了哪些问题?它又具有哪些特点?单体应用架构存在得问题一个归档包(例如war格式)包含所有功能得应用程序,通常称为单体应用。而架构单体应用得方法论,就是单体应用架构。以一个电影售票系统为例。该应用尽管已经进行了模块化,但由于UI和若干业务模块最终都被打包在一个war包中,该war包包含了整个系统所有的业务功能,这样的应用系统称为单体应用。相信很多项目都是从单体应用开始的。单体应用比较容易部署、测试,在项目的初期,单体应用可以很原创 2021-10-25 20:22:50 · 282 阅读 · 0 评论 -
Spring Boot任务管理
Spring Boot任务管理开发Web应用时,多数应用都具备任务调度功能。常用的任务包括异步任务、定时任务和发邮件任务。我们以数据库报表为例看看任务调度如何帮助改善系统设计。报表可能是错综复杂的,用户可能需要报表为例看看任务调度如何帮助改善系统设计。报表可能是错综复杂的,用户可能需要很长时间找到需要的报表数据,此时,我们可以在这个报表应用中添加异步任务减少用户等待时间,从而提高用户体验;除此之外,还可以在报表应用中添加定时任务和邮件任务,以便用户可以安排在任何他们需要的时间定时生成报表,并在Email中原创 2021-10-24 00:19:16 · 2419 阅读 · 0 评论 -
Spring Boot消息服务
Spring Boot消息服务在实际项目开发中,有时候需要与其他系统进行集成完成相关业务功能,这种情况最原始的做法是程序内部相互调用,除此之外,还可以使用消息服务中间件进行业务处理,使用消息服务中间件处理业务能够提升系统的异步通信和扩展解耦能力。Spring Boot对消息服务管理提供了非常好的支持。消息服务概述为什么要使用消息服务在多数应用尤其是分布式系统中,消息服务是不可或缺的重要部分,它使用起来比较简单,同时解决了不少难题,例如异步处理、应用解耦、流量削峰、分布式事务管理等,使用消息服务可以实原创 2021-10-23 00:36:23 · 4992 阅读 · 8 评论 -
Spring Boot安全管理
Spring Boot安全管理实际开发中,一些应用通常要考虑到安全性问题。例如,对于一些重要的操作,有些请求需要用户验明身份后才可以执行,还有一些请求需要用户具有特定权限才可以执行。这样做的意义,不仅可以用来保护项目安全,还可以控制项目访问效果。Spring Security介绍针对项目的安全管理,Spring家族提供了安全框架Spring Security,它是一个基于Spring生态圈的,用于提供安全访问控制解决方案的框架。为了方便Spring Boot项目的安全管理,Spring Boot对Sp原创 2021-10-12 22:36:51 · 1984 阅读 · 3 评论 -
Spring Boot缓存管理
Spring Boot缓存管理缓存是分布式系统中的重要组件,主要解决数据库数据的高并发访问问题。在实际开发中,尤其是用户访问较大的网站,为了提高服务器访问性能、减少数据库的压力、提高用户体验,使用缓存显得尤为重要。Spring Boot对缓存提供了良好的支持。本章将针对Spring Boot的缓存管理进行介绍,并完成Spring Boot与Redis缓存中间件的整合使用。Spring Boot默认缓存管理Spring框架支持透明地向应用程序添加缓存并对缓存进行管理,其管理缓存的核心是将缓存应用于操作数原创 2021-10-02 21:21:35 · 680 阅读 · 1 评论 -
Spring Boot实现Web的常用功能
Spring Boot实现Web的常用功能通常在Web开发中,会涉及静态资源的访问支持、视图解析器的配置、转换器和格式化器的定制、文件上传下载等功能,甚至还需要考虑到与Web服务器相关联的Servlet相关组件的定制。Spring Boot框架支持整合一些常用Web框架,从而实现Web开发,并默认支持Web开发中的一些通用功能。Spring MVC的整合支持为了实现并简化Web开发,Spring Boot为一些常用的Web开发框架提供了整合支持,例如Spring MVC、Spring WebFlux等原创 2021-09-26 19:35:18 · 1438 阅读 · 0 评论 -
Spring Boot视图技术
Spring Boot视图技术在一个Web应用中,通常会采用MVC设计模式实现对应的模型、视图和控制器,其中。视图是用户看到并与之交互的界面。对最初的Web应用来说,视图是由HTML元素组成的静态界面;而后期的Web应用更倾向于使用动态模板技术,从而实现前后端分离和页面的动态数据展示。Spring Boot框架为简化项目的整体开发,提供了一些视图技术支持,并主要推荐整合模板引擎技术实现前端页面的动态化内容。Spring Boot支持的视图技术前端模板引擎技术的出现,使前端开发人员无需关注后端业务的具体原创 2021-09-25 01:02:57 · 1598 阅读 · 2 评论 -
Spring Boot数据访问
Spring Boot数据访问Spring Boot数据访问概述Spring Data是Spring提供了一个用于简化数据库访问、支持云服务的开源框架。它是一个伞形项目,包含了大量关系型数据库及非关系型数据库的数据访问解决方案,其设计目的是使我们可以快速且简单地使用各种数据访问技术。Spring Boot默认采用整合Spring Data地方式统一处理数据访问层,通过添加大量自动配置,引入各种数据访问模板xxxTemplate以及统一的Repository接口,从而达到简化数据访问层的操作。Sprin原创 2021-09-13 21:55:46 · 978 阅读 · 1 评论 -
Spring Boot核心配置与注解
Spring Boot核心配置与注解Spring Boot全局配置文件1、application.properties2、application.yaml全局配置文件能对一些默认配置值进行修改。Spring Boot使用一个application.properties或者application.yaml的文件作为全局配置文件。存放路径:src/main/resource目录或者类路径的/config下。application.properties使用Spring Initializr方式构原创 2021-09-01 17:19:51 · 1714 阅读 · 1 评论