软件系统定制开发微服务中间件


Nacos 端口号:8848 软件系统定制开发注册中心和配置中心
 
Nacos软件系统定制开发的心跳机制-------为每个和Nacos软件系统定制开发保持沟通和交换信息
软件系统定制开发默认情况下:软件系统定制开发服务启动每隔5秒向Nacos软件系统定制开发发送一个心跳包,软件系统定制开发包含基本信息
 
软件系统定制开发软件系统定制开发一个服务心跳3次心跳(15秒)未与Nacos软件系统定制开发进行信息交互-----不健康
一个服务心跳6次心跳(30秒)未与Nacos进行信息交互------从注册列表中删除


(Remote Procedure Call):远程过程调用
   需要和序列化协议
Dubbo是一套RPC框架(实现微服务之间的相互调用)
   使用的是2.7之后的版本
   通信协议------dubbo(默认)
   协议------hessianz(默认)
   特征:
使用NIO单一长链接
优秀的并发性能,处理大型文件
注册发现流程
服务的提供者启动服务会将自己具备的服务注册到注册中心(Nacos),其中包括ip地址及端口等信息,同时注册该项目提供的远程调用的方法。
消费者的那个项目,也注册到注册中心,同时从Nacos中获得所有服务列表
当注册中心发现新的服务,会通知已订阅的消费者,更新所有服务队列
RPC调用,根据注册中心服务列表的信息,只需要服务名称就可以利用Dubbo调用远程方法

负载均衡(Loadbalance)
多个功能相同的项目运行(集群),可以承受更高的并发,负载均衡为了将请求尽可能的在相对空闲的服务器上运行。
Dubbo内置的负载均衡算法
random loadlabance 随机分配(默认)------随机生成一个随机数,在哪个范围就让哪个服务器运行
优点:算法简单,效率高,长时间运行下,任务分配比例准确
缺点:偶然性高,如果连续的几个随机请求发送带性能弱的服务器,会导致宕机
round Robin Loadlabance 权重平滑分配------按照比例,选择占比最大的,选择后减去总权重数,然后一次加上占比数.
Leastactive Loadbalance 活跃度自动感知分配-------记录每个服务器处理一次请求的使时间,按照时间比例分配任务数,运行一次时间多的分配的请求少。
Consistanthash Loadbalance一致性hash算法分配------根据请求的参数进行hash运算,以后每次相同参数的请求都会访问固定服务器,因为根据参数选择服务器,不能平衡的分配到每台服务器上,所以用得也较少。
配置
生产者:
要有service接口
业务逻辑层实现类上添加@DubboService
SpringBoot启动类添加@EnableDubbo
消费者:
Pom文件添加消费者模块的service依赖
在业务逻辑层调用前,添加@DubboReference

Seata
 在微服务架构下提供高性能和简单易用的分布式事务
 事务的四个特性:
 原子性:事务中的操作是一个整体,要么都成功,要么都失败
 一致性:事务的执行不能破坏数据的完整性和一致性,一个事务执行前和执行后,数据库都必须处于一直状态(如果数据库在运行过程中发生故障,有些事务未完成就被迫中断,但是事务对数据库已经做了一定的修改(一些如物理数据库),数据库则处于一种不正确的状态,这就是不一致状态)
隔离性:并发事务是相互隔离的,每个事务都有各自的数据空间,事务之间的执行是互不干扰的。
事务的四个隔离了机制:
读未提交(Read Uncommited)------如果一个事务已经开始写数据,其他事务不能同时进行写操作,但是,允许其他事务读此行数据,可以通过排他锁实现,可以避免更新丢失,但是会造成脏读(一个事务读取到了另一个事务未提交的数据操作结果。)。          
读已提交(Read Commmited)-------读取数据的事务允许其他数据访问,但是对于未提交的写事务,会禁止访问。避免了脏读,但是可能会出现不可重复读。
可重复读(Repeatable Read)--------读取数据的事务将会禁止写事务(允许读事务),写事务禁止任何其他事务。可以通过共享锁和排他锁实现。避免了不可重复读和脏读,但是可能会出现幻读
可串行化------要求事务序列化,一个一个的执行,但是只靠行锁是无法实现的。但是一般不会用

持久性:保存到硬盘。

Seata组成
TC:事务协调器
TM:事务管理器
RM:资源管理器

AT模式运行过程:
事务的发起方(TM)向事务协调器(TC)申请一个全局事务id,并保存
Seata会管理事务中所有的参与方的数据源,将数据操作前后的镜像都保存到undo-log表中,依靠它来实现提交和回滚。
事务的发起方(TM)会连同全局id一起通过远程调用,运行RM中的方法。
RM接收全局id,去运行指定方法,并运行结果的状态发送到TC。
如果所有的分支都正常,TC会通知所有分支进行提交,此时才会正真的影响数据库。反之如果有任何一个分支发生异常,TC会通知所有分支进行回滚,数据库恢复运行前的内容。
启动命令:Seata-server.bat -h 127.0.0.1 -m -file
使用:业务逻辑层实现类增加@GlobalTransational

Sentinel 
端口号:8080
为了保证服务的稳定性,在请求数到达设计最高值是,将过期的请求限流/保证在设计请求数内的请求能够稳定完成处理。

一般运用在控制层上。
增加@SentineResource(Value,blockHandler,fallback)
                          限流方法  降级方法

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发