微服务架构的简单理解和springcloud基本认识

Springcloud

最近的商城项目使用到微服务架构

对于微服务的理解:
在实际开发中,单体架构项目在同一个项目中虽然便于管理,但是在后期产品规模越来越大时就会出现很多弊端:
1:当越来越多的功能模块都集中在同一项目的时候,对后期维护造成麻烦。
2:资源无法隔离,整个单体系统的各个功能模块都依赖于同样的数据库、内存等资源,一旦某个功能模块对资源使用不当,整个系统都会被拖垮。
3:无法灵活扩展当系统的访问量越来越大的时候,单体系统固然可以进行水平扩展,部署在多台机器上组成集群:

微服务

所以提出了微服务架构的思想
微服务:微服务架构风格是一种将单个应用程序作为一套小型服务开发的方法,每种应用程序都在自己的进程中运行,并与轻量级机制(通常是HTTP资源API)进行通信。 这些服务是围绕业务功能构建的,可以通过全自动部署机制独立部署。 这些服务的集中管理最少,可以用不同的编程语言编写,并使用不同的数据存储技术。

优点:
1.聚集一个指定的业务模块或者业务需求,开发效率高
2.耦合性低,每个服务就是一个进程,服务之间互相不干扰
3.每个服务可以使用不同的语言进行开发,服务之间通过REST API进行调用。
4.微服务只是一个后端的程序,我们没必要去关注前端的html,css,javascript,只需要关注REST 请求的地址+输入参数的格式和报文约定+输出参数
5.每一个服务可以有自己的数据库,与其他的服务的数据库互不干扰,也可以服务之间共用一个数据库。
缺点:
1.分布式的复杂性(之前只需要部署一个war,现在需要进行多个进行部署)
2.服务之间进行通信的复杂性及调用超时的处理
3.对服务的性能进行监控。
--------------------- 
作者:赵宪福 
来源:CSDN 
原文:https://blog.csdn.net/qq_35336425/article/details/82838567 
版权声明:本文为博主原创文章,转载请附上博文链接!

springcloud

springcloud

在这里插入图片描述

springcloud很好的支持了微服务架构

springcloud的五大组件
在这里插入图片描述

  • 注册中心
    Eureka包含两个组件:Eureka Server 和 Eureka Client
    Eureka由两个组件组成:Eureka服务器和Eureka客户端。Eureka服务器用作服务注册服务器。Eureka客户端是一个java客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支持。

在这里插入图片描述

  • hystrix
    通过如下机制来解决雪崩效应问题。

1 资源隔离(限流):包括线程池隔离和信号量隔离,限制调用分布式服务的资源使用,某一个调用的服务出现问题不会影响其他服务调用。
2 融断:当失败率达到阀值自动触发降级(如因网络故障/超时造成的失败率高),熔断器触发的快速失败会进行快速恢复。
在这里插入图片描述
3 降级机制:超时降级、资源不足时(线程或信号量)降级,降级后可以配合降级接口返回托底数据。
在这里插入图片描述
4 缓存:提供了请求缓存、请求合并实现。
在这里插入图片描述
Zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用。
Zuul 在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门,也要注册入Eureka.
在这里插入图片描述
前面这一层俗称为“网关层”,其存在意义在于,将"1对N"问题 转换成了"1对1”问题(路由),同时在请求到达真正的微服务之前,可以做一些预处理(过滤),比如:来源合法性检测,权限校验,反爬虫之类…
在这里插入图片描述
官网资料 https://github.com/Netflix/zuul
在这里插入图片描述
负载均衡:为了提供并发量,有时同一个服务提供者可以部署多个。这个客户端在调用时要根据一定的负责均衡策略完成负载调用
策略:
在这里插入图片描述

在这里插入图片描述
配置中心:
微服务架构中,每个项目都有一个yml配置,管理起来麻烦。要使用spring cloud config来统一管理。
在这里插入图片描述
和github集成使用

具体yml配置文件

server:
  port: 6666
eureka:
  client:
    service-url:
      defaultZone: http://localhost:7001/eureka
  instance:
    prefer-ip-address: true
spring:
  application:
    name: spring-cloud-config-server
  cloud:
    config:
      server:
        git:
        	//这是github上提供配置文件的url和你的账户密码
          uri: https://github.com/xxxxx/microservice-config.git
          username: xxxxx
          password: xxxxx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值