微服务和SpringCloud

一,微服务
1,什么是微服务
是一种架构模式,把一个程序分成很多不同的服务,各个服务运行在其独立的进程内,服务之间相互协调,相互配置。服务之间采用轻量级的通信机制http沟通,每个服务负责自己的业务,再有一个轻量级的集中式管理来协调这些服务

2,微服务优缺点
优点
高内聚,低耦合:每个服务足够小,代码容易理解,更方便各部门专注自己业务。各个服务相互独立
能使用不同语言进行开发
易于集成和部署
缺点
运维的复杂度加大
数据一致性问题,系统集成测试问题

3,微服务的技术栈

技术条目落地技术
服务开发springboot,spring,springMVC
服务配置及管理Archaius,Diamond
服务注册与发现Eureka,Zookeeper
服务调用Rest,RPC
服务熔断Hystrix,Envoy
负载均衡Ribbon,Nginx
消息队列kafka,RocketMQ,RabbitMQ
服务配置中心管理SpringCloudConfig,Chef
服务路由Zuul
服务监控Metrics,Zabbix,Cat
服务部署Docker,Kubernetes

4 ,微服务通讯
常见的微服务框架:dubbo和springcloud
dubbo采用RPC远程调用,二进制传输,占用带宽小一些
springcloud采用http传输,带宽占用多一点,比RPC调用更灵活

二,注册中心 Eureka
Eureka: 注册中心,SpringCloud封装了Eureka模块来完成服务注册和发现,类似于Zookeeper的客户端的作用
包含两个组件
Eureka Server:提供服务注册,节点启动后再Server中注册,通过注解@EnableEurekaServer启动Server
Eureka Client:Java客户端,应用启动后,会向EurekaServer发送心跳(30s),周期内没接到心跳则移除节点。通过注解@EnableEurekaClient连接Server

CAP原则
C:Consistency 强一致性 各分区数据保证一致
A:Availablility 可用性 复制数据过程的效率问题
P: Partition tolerance 分区容错性 一个数据复制到多个分区中
由于无法完全满足全部三个原则,只能同时实现两点,,Eureka保证的是AP
Zookeeper保证的是CP:Master 宕机后,从机需要重新选举Leader,这个过程很漫长,服务处于不可用状态,牺牲可用性
Eureka保证的是AP:节点之间平等,当某个Eureka节点向Eureka服务器注册失败时,剩余节点依旧可以提供服务。不过查到的信息不一定是最新的。好处就是不会使整个服务瘫痪

三,Ribbon负载均衡
Ribbon是一款客户端负载均衡的中间件,通过在客户端配置,轮询,或者随机分配达到负载均衡的目的。
Nginx是在服务器和客户端之间的独立负载均衡的中间件
Ribbon配置好后,不需要知道具体IP地址和端口号,由Eureka负责

四,高并发架构

在这里插入图片描述

客户端<–>服务器<–>数据库
1,多个客户端和服务器之间通过Nginx将请求分到不同的服务器上去。Nginx特点:负载均衡,正向代理,反向代理
2,经过Nginx之后,可以再用消息队列对短时间内的大量消息进行缓冲,比如Kafka,RabbitMQ。消息队列特点:生产者发布,消费者订阅;流量削峰,服务解耦
3,不同服务器负责不同的请求,比如查数据库,执行搜索功能等等。不同的服务共同构成了微服务架构。微服务架构之间通信采用的是RPC框架。微服务还需要服务治理等中间件,本篇博客上面写了。了解即可
4,到服务器层面,如果涉及秒系统的高并发,涉及的问题包括热点key的查询,修改。用到的技术不一样。对于查询服务,可以使用Redis存储热点内容,提高访问速度。或者Mysql分库分表,减少一张表的数据量。Redis特点:非关系型数据库,单线程,速度比Mysql快
5,对于热点数据的修改,必须要改Mysql的数据,设计的技术一方面是加锁,包括Mysql语句里加update加锁,Spring注解@Transaction保证事务性等方式。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值