关于微服务(三)

摘要:
一.微服务架构特点服务服务力度:粒度是围绕业务进行拆分的。

一.微服务架构特点

(1)服务服务力度:粒度是围绕业务进行拆分的。

(2)独立进程:任何一个微服务从它的开发,测试,上线,以及运维等过程都可以独立的进行,不依赖以其他的微服务。

(3)围绕业务建模:微服务架构是围绕业务建模的

(4)轻量级通信:通信模式是轻量级的,两个模块之间的通信没有语言关系,没有平台关系。

(5)去中心化管理:微服务具体用的语言,平台都没有强行的规定,以平台,语言没有依赖关系。

二.微服务架构设计

关于微服务(三)第1张

关于微服务(三)第2张

微服务网关:作为客户端服务器,它会维护海量的链接,对用户身份的校验,session的管理,请求的转发。不做业务处理。对外提供HTTP接口。

微服务聚合层:根据用户的请求,拆分为多个微服务原子层,向微服务原子层发送请求,发送回来之后在微服务聚合层把请求的结果汇集起来,提供给微服务网关层,把结果返回给客户端。提供RPC接口。

微服务原子层:提供这些微服务的增删改查的修改。提供RPC接口。

微服务数据层:对每一个微服务的数据单独存在一个数据库中。

去中心化管理:采用相同的语言开发。

备注:

网关层:http/https接口协议,安全

聚合层:服务器内部同过rpc接口协议,传输更快,通信效率更高

需要两个中心:微服务注册中心、微服务配置中心

将聚合层再按业务功能拆分成多个聚合层

关于微服务(三)第3张

三.通信协议和服务的注册、发现

通信协议-轻量级通信协议

(1)REST:基于HTTP,与语言、平台无关;

(2)HAL:基于REST协议做的一个提升,国内用的暂时比较少;

(3)RPC:远程过程调用,国内开源RPC框架用得比较多,如:Apache、Thrift、gRpc、dubbo;

(4)消息队列:两个微服务通过消息队列通信,可以把同步的调用变成异步的调用;

关于微服务(三)第4张

RPC相较HTTP的优势:

(1)省去了HTTP头信息,传输包更轻量;

(2)基于TCP长连接,效率比较高;

(3)安全方面高于HTTP;

关于微服务(三)第5张

关于微服务(三)第6张

关于微服务(三)第7张

四.柔性可用和服务治理

1、为什么需要柔性可用?

流量高峰期,短时请求量大的情况下:服务能力有限、性能下降、服务宕机、系统雪崩

2、柔性设计如何做?

目标:保证核心服务可用;非核心服务弱可用,甚至不可用;

方式:系统降级、数据层降级、柔性可用策略;

(1)系统降级:拒绝部分请求、关闭部分服务(业务紧密)

关于微服务(三)第8张

(2)数据层降级

更新请求:持久到消息队列,只更新缓存,暂不更新数据库;

读请求:读取缓存;

数据补齐:后续需将消息队列中的数据写入数据库中;

(3)柔性可用策略

自动打开柔性可用策略,不依赖人员手动开启;

测试环境时需演练,确保线上生效;

3、服务治理

(1)服务需要监控:监控进程状态,及时发现问题,掌握主动权;

(2)主要监控:机器资源、进程状态;

(3)监控手段:

关于微服务(三)第9张

(4)微服务实时监控

例如:请求平均耗时、请求异常条数等,对比最近几天的数据情况发现问题

(5)微服务监控框架:open-falcon、定制开发。

免责声明:文章转载自《关于微服务(三)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇比Redis更快:Berkeley DB面面观VxWorks固件分析方法总结下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

利用MATLAB仿真节点个数和节点通信半径与网络连通率的关系

一、目的        ①在不同节点个数的情况下,用Matlab拟合出连通率与通信半径的关系曲线。        ②在不同节点通信半径的情况下,用Matlab拟合出连通率与节点个数的关系曲线。 二、方法描述        在1x1的单位矩形中随机部署传感器节点,而且假设每个节点的通信半径一样。在每一组节点个数和节点通信半径下进行1000次试验,进而分别模拟...

树莓派+4G模块获取gps坐标

EC20模块是移远通信推出的基于4G的无线通信模块,它自带4g卡槽(直接插4g卡,用4g卡上网),免驱动(省去了很多事情),能够很方便的帮助我们获取gps坐标信息。 一、开启EC20(4G模块)的GPS功能 1.打开console,执行lsusb,查看是否正常显示usb2.新开console,执行ls -l /dev/ttyUSB*命令,查看串口转usb是...

分布式系统理论进阶

有很多基于Paxos的优化,在保证一致性协议正确(safety)的前提下,减少Paxos决议通信步骤、避免单点故障、实现节点负载均衡,从而降低时延、增加吞吐量、提升可用性,下面我们就来了解这些Paxos变种。 Multi Paxos 首先我们来回顾一下Multi Paxos,Multi Paxos在Basic Paxos的基础上确定一系列值,其决议过程如...

对于应用之间的调用,如何选择rpc还是mq?

两个系统之间的调用,是选择rpc呢还是mq,说一下你们系统的选择吧比如rpc可以是简单的spring httpinvoker,但是前提是都是java应用而且都是用spring framework,可以选择restful的web service或者是重量级的soap web service,或者是使用rmi,或者编写java api的socket程序;或者使...

Android 蓝牙开发(1)

普通蓝牙设备官方文档 Android 平台包含蓝牙网络堆栈支持,凭借此支持,设备能以无线方式与其他蓝牙设备交换数据。应用框架提供了通过 Android Bluetooth API 访问蓝牙功能的途径。使用 Bluetooth API Android 应用可以执行下面的操作: 扫描其他蓝牙设备 查询本地蓝牙适配器的配对蓝牙设备 建立 RFCOMM 通道...

.net平台下C#socket通信(上)

完全是基础,新手可以随意看看,大牛可以关闭浏览页了,哈哈。 在开始介绍socket前先补充补充基础知识,在此基础上理解网络通信才会顺理成章,当然有基础的可以跳过去了。都是废话,进入正题。   TCP/IP:Transmission Control Protocol/Internet Protocol,传输控制协议/因特网互联协议,又名网络通讯协议。简单来说...