关于微服务开发框架主流技术介绍

一、关于微服务

定义

微服务(Microservices) 是一种软件架构风格,它是以许多小型服务构建而成的系统,各个小型服务之间通过http资源API来互相通信,从而使整个系统运转起来。

优点

单一职责;轻量级的通信;

隔离性,运行在自己的进程中,不会相互干扰;

有自己的数据,数据的独立性,每个微服务都有自己的数据库。

缺点

产生额外的工作、数据一致性的问题、测试困难。

二、主流技术介绍

1.Spring-Cloud

Spring Cloud是一系列框架工具集。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。

常见的spring-cloud子项目

spring-cloud-netflix

spring-cloud-alibaba

spring-cloud

2.服务与服务之间的联系

微信微服务架构 

如何通信?

服务与服务之间通过网络进行通信。

1.常见的通信协议

http\dubbo\grpc

2.常用的httpclient

java.net.URL

apache commons httpcomponents/httpclient

okhttp

retrofit

如何调用?

1.服务发现

通过第三方nacos提供的方法找到服务实例。

举例

2.负载均衡

2.1 为解决集群服务性能压力分配不均衡产生的问题。

使用netflix-ribbon作为负载均衡服务,由nacos-discovery引入。

2.2 ribbon内置常用策略

BestAvailableRule 最小并发数

WeightedResponseTimeRule 响应时间加权

RoundRobinRule 轮询

RandomRule 随机

3.共享接口

为什么要实现共享接口?

便于其它服务对它进行调用

如何做到?

将接口拆分成单独的模块,使它的实现类与它分离。

4.配置管理

nacos不仅提供服务发现的功能,同时也提供配置管理的功能。

通过配置一些公共的配置来简化程序员对配置的修改。

5.分布式事务

为解决数据一致性问题,引入分布式事务来处理。

分布式事务是由三个角色事务参与者、事务协调者、事务发起者共同参与的。

事务分为两个阶段:

5.1 预备阶段

由事务协调者通知所有分支事务执行业务操作,并将结果返回

5.2 提交阶段

事务协调者根据返回的结果做统一提交或者回滚

举例

 常见事务解决方式

5.3.1 XA模式

在操作数据库时介入,同时开启多个数据库事务,等事务协调者统一处理。

5.3.2 TCC模式

对执行的业务编写多个接口,每个接口对其执行的结果进行提交、回滚等操作,每个事务单独提交,事务协调者最后做统一处理。

5.3.3 SAGAS

每一个服务都存在正向和补偿服务,一旦事务回滚,则全部执行补偿服务。

5.3.4 AT模式

是由seata提供的

执行业务并获取持久化回滚数据,通过seata代理数据源,拦截所有的sql操作,得到sql操作前后的数据,并根据sql生成insert sql插入到undo_log表中,并加入到当前事务,最后提交。如果全都正常提交,则删除undo_log表中的数据,如果回滚,seata则根据表中数据进行回滚操作。

6.服务网关

服务网关是分布式系统的唯一入口,并提供一些通用的功能(例如:ip黑名单,ip白名单,认证、授权,动态路由,日志记录,性能统计,协议转换,限流)。

7.单点登录

属于同一个网站下的不同页面的登录操作只需要做一次。它是基于sa-token实现的,登陆后将数据携带在cookie去访问不同页面,页面解析cookie中携带的数据来判断用户是否登录。

8.服务容错

问题产生:由于分布式系统的弊端,在高并发的通信过程中容易存在服务出错,如果不进行处理,则会造成服务器雪崩。

解决方法:采用Sentinel服务容错框架,可以根据框架提供的方法对资源进行流控、降级等操作,实现对服务资源的控制及容错。


总结

以上就是我对于微服务开发框架主流技术介绍的全部内容,如果有不对的地方请您即使指出,将对我的学习提供很大的帮助,感谢您的阅览!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值