网站开发源码售卖合同,百度广告投诉电话,外贸网站推广建设,几个好用的在线网站目录 1.什么是微服务#xff1f;谈谈你对微服务的理解#xff1f;
2.什么是Spring Cloud#xff1f;
3.Springcloud中的组件有哪些#xff1f;
3.具体说说SpringCloud主要项目#xff1f;
5.SpringCloud项目部署架构#xff1f; 1.什么是微服务#xff1f;谈谈你对微…目录 1.什么是微服务谈谈你对微服务的理解
2.什么是Spring Cloud
3.Springcloud中的组件有哪些
3.具体说说SpringCloud主要项目
5.SpringCloud项目部署架构 1.什么是微服务谈谈你对微服务的理解 微服务
以前所有的代码都放在同一个工程中、部署在同一个服务器、同一项目的不同模块不同功能互相抢占资源微服务就是将工程根据不同的业务拆分成微服务部署在不同的服务器上服务之间相互调用Java中有的微服务有dubbo(只能用来做微服务Springcloud提供了 服务的发现断路器等。 微服务的特点
1.按业务划分为一个独立运行的程序即服务单元
2.服务之间通过HTTP协议相互通信
3.自动化部署
4.可以用不同的编程语言
5.可以用不同的存储技术
6.服务集中化管理
7.微服务是一个分布式系统
微服务的优势
1.将一个复杂的业务拆分成若干小的业务将复杂的业务简单化新人只需要了解他所接管的服务代码减少新人的学习成本。
2.由于微服务是分布式服务服务于服务之间没有任何耦合。微服务系统的微服务单元具有很强的横向扩展能力。
3.服务与服务之间采用HTTP网络通信协议来通信单个服务内部高度耦合服务与服务之间完全独立无耦合。这使得微服务可以采用任何开发语言和技术来实现提高开发效率降低开发成本。
4.微服务是按照业务进行拆分的并有坚实的服务边界若要重写某一业务代码不需了解所有业务重写简单。
5.微服务的每个服务单元是独立部署的即独立运行在某个进程中微服务的修改和部署对其他服务没有影响。
6.微服务在CAP理论中采用的AP架构具有高可用分区容错特点。高可用主要体现在系统7*24不间断服务他要求系统有大量的服务器集群从而提高系统的负载能力。分区容错也使得系统更加健壮。
微服务的不足
1.微服务的复杂度构建一个微服务比较复杂服务与服务之间通过HTTP协议或者其他消息传递机制通信开发者要选出最佳的通信机制并解决网络服务差时带来的风险。
2.分布式事务将事务分成多阶段提交如果一阶段某个节点失败仍会导致数据不正确。如果事务涉及的节点很多某一节点的网络出现异常会导致整个事务处于阻塞状态大大降低数据库的性能。
3.服务划分将一个完整的系统拆分成很多个服务是一件非常困难的事因为这涉及了具体的业务场景。
4.服务部署最佳部署容器Docker。
微服务和SOA的关系
微服务相对于和ESB联系在一起的SOA轻便敏捷的多微服务将复杂的业务组件化也是一种面向服务思想的体现。对于微服务来说他是SOA的一种体现但是他比ESB实现的SOA更加轻便敏捷和简单。
2.什么是Spring Cloud Spring Cloud是一系列框架的有序集合。他利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发如服务发现注册配置中心智能路由消息总线均衡负载断路器数据监控等都可以用Spring Boot的开发风格做到一键启动和部署。 Spring Cloud并没有重复制造轮子他只是将各家公司开发的比较成熟经得起实际考验的服务框架组合起来通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理最终个开发者留出了一套简单易懂易部署和易维护的分布式系统开发工具包。
SpringCloud的优点
1.耦合度比较低。不会影响其他模块的开发。
2.减轻团队的成本可以并行开发不用关注其他人怎么开发先关注自己的开发。
3.配置比较简单基本用注解就能实现不用使用过多的配置文件。
4.微服务跨平台的可以用任何一种语言开发。
5.每个微服务可以有自己的独立的数据库也有用公共的数据库。
6.直接写后端的代码不用关注前端怎么开发直接写自己的后端代码即可然后暴露接口通过组件进行服务通信。
SpringCloud的缺点
1.部署比较麻烦给运维工程师带来一定的麻烦。
2.针对数据的管理比较麻烦因为微服务可以每个微服务使用一个数据库。
3.系统集成测试比较麻烦。
4.性能的监控比较麻烦。
3.Springcloud中的组件有哪些
1.Spring Cloud Eureka,服务注册中心特性有失效剔除服务保护。
2.Spring Cloud Zuul,API服务网管功能有路由分发和过滤。
3.Spring Cloud Config分布式配置中心支持本地仓库SVNGitJar包配置等模式。
4.Spring Cloud Ribbon客户端负载均衡特性有区域亲和重试机制
5.Spring Cloud Hystrix,客户端容错保护特性有服务降级服务熔断请求缓存请求合并依赖隔离。
6.Spring Cloud Feign,声明式服务调用本质上就是RibbonHystrix.
7.Spring Cloud Stream,消息驱动有SinkSourceProcessor三种通道特性有订阅发布消息组消息分区。
8.Spring Cloud Bus消息总线配合Config仓库修改一种Stream实现。
9.Spring Cloud Sleuth分布式服务追踪器需要搞清楚TraceID和SpanID以及抽样如何与ELK整合。
3.具体说说SpringCloud主要项目 SpringCloud的子项目大致分成两类一类是对现有成熟框架”SpringBoot化的封装和抽象也是数量最多的项目第二类是开发了一部分分布式系统的基础设施的实现如Spring Cloud Stream扮演的就是Kafka,ActiveMQ这样的角色。
Spring Cloud Config Config能够管理所有微服务的配置文件
集中配置管理工具分布式系统中统一的外部配置管理默认使用Git来存储配置。可以支持客户端配置的刷新以及加密解密操作。
Spring Cloud Netflix
Netflix OSS 开源组件集成包括Eureka,Hystrix,Ribbon,Feign,Zuul等核心组件。
1.Eureka:服务治理组件包括服务端的注册中心和客户端的服务发现机制
2.Ribbon负责均衡的服务调用组件具有多种负载均衡调用策略。
3.Hystrix:服务容错组件实现了断路器模式为依赖服务的出错和延迟提供了容错能力。
4.Feign:基于Ribbon和Hystrix的声明式服务调用组件。
‘5.Zuul:API网关组件对请求提供路由以及过滤功能。
Spring Cloud Bus
1.用于传播集群状态变化的消息总线使用轻量级消息代理链接分布式系统中的节点可以用动态刷新集群中的服务配置信息。
2.简单来说就是修改了配置文件发送一次请求所有客户端便会重新读取配置文件需要利用中间插件MQ。
Spring Cloud Consul
Consul是HashiCorp公司推出的开源工具用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案Consul的方案更“一站式”内置了服务注册与发现框架分布一致性协议实现健康检查Key/Value存储多数据中心方案不再需要依赖其他工具比如Zookeeper等。使用起来比较简单。Consul使用Go语言编写因此具有天然可移植性支持LinuxWindows和Mac OS X安装包仅包含一个可执行文件方便部署与Docker等轻量级容器可无缝配合。
Spring Cloud Security
Spring Cloud Security提供了一组原语用于构建安全的应用程序和服务而且操作简便。可以在外部或集中进行大量配置的声明性模型有助于实现大型协作的远程组件系统通常具有中央身份管理服务。他也非常易于在Cloud Foundry等服务平台中使用。在SpringBoot和Spring Security OAuth2的基础上可以快速创建实现常见模式的系统如单点登录令牌中继和令牌交换。 Spring Cloud Sleuth
在微服务中通常根据业务分模块项目中前端发起一个请求后端可能跨几个服务调用才能完成这个请求如下图。如果系统越来越庞大服务之间的调用与被调用关系就会变得复杂假如一个请求中需要跨几个服务调用其中一个服务由于网络延迟等原因挂掉了那么这时候我们需要分析具体哪一个服务出现问题了就会显得困难。Spring Cloud Sleuth服务链路跟踪功能就可以帮助我们快速的发现错误根源以及监控分析每条请求链路上的性能等等。 Spring Cloud Stream
轻量级事件驱动微服务框架可以使用简单的声明式模型来发送以及接收消息主要实现为Apache Kafka以及RabbitMQ。
Spring Cloud Task
Spring Cloud Task的目标是为Spring Boot应用程序提供创建短运行期微服务的功能。在Spring Cloud Task中我们可以灵活的动态运行任何任务按需分配资源并在任务完成后检索结果。Tasks是Spring Cloud Data Flow中的一个基础项目允许用户将几乎任何Spring Boot应用程序作为一个短期任务执行。
Spring Cloud Zookeeper Spring Cloud 支持三种注册方式EurekaConsulgo语言编写zookeeper Spring Cloud Zookeeper是基于Apache Zookeeper的服务治理组件。
Spring Cloud GateWay Spring Cloud Gateway是Spring官方基于Spring 5.0SpringBoot2.0和Project Reactor等技术开发的网关Spring Cloud GateWay旨在为微服务架构提供简单有效和统一的API路由管理方式Spring Cloud GateWay作为Spring Cloud生态系统中的网关目标是替代Neflix Zuul,其不仅提供统一的路由方式而且还基于Filer链的方式提供网关基本的功能例如安全监控/埋点限流等。
Spring Cloud OpenFeign Feign是一个声明性的Web服务客户端。他使编写Web服务客户端变得更容易。要使用Feign,我们可以将调用的服务方法定义成抽象方法保存在本地添加一点点注解就可以了不需要自己构建http请求了直接调用接口就行了不过要注意调用方法要和本地抽象方法的签名完全一致。
5.SpringCloud项目部署架构