微服务

用户头像
qh12346
关注
发布于: 2020 年 10 月 18 日

为解决单体应用问题,1、打包,编译,部署困难;2、代码分支管理困难;配置管理小组,代码提交冲突解决;3、数据库连接耗尽;4、新增业务困难;(上百万行代码)

解决方案:拆分,分布式服务,微服务,将模块独立部署,降低系统耦合

纵向拆分:大应用拆分为小应用,应用系统

横向拆分:复用的共用的业务拆分,部署为独立的微服务(集群),订单模块,用户模块,服务的方式调用,用接口调用,接口规范定义好



微服务好处

1、改一个小模块打包容易,用请求调用测试没问题即可,独立部署;

2、改模块,小团队内部改,只需要保证向前兼容,还支持以前的服务接口,即可自行维护;

3、业务分库,一个服务连接一个业务库,用户库,不需要那么多数据库连接;

4、新同学只负责一个小模块开发,更容易参与和上手,接口兼容就可以发布新的版本;

小模块,通过 rpc 远程调用进行访问,关系更清晰。



Dubbo 微服务框架(Spring Cloud 同):Java 微服务框架,远程微服务调用过程

Dubbo 框架的失效转移:如果负载均衡失效,则由服务框架从注册列表中再选一个服务器进行调用,实现失效转移。

Dubbo 对应用的最少侵入:客户端依赖的是服务接口包,dubbo 完成接口包的实现类。可以本地调用和远程调用。

服务 Requester 依赖 Dubbo 框架进行远程调用,Dubbo 框架和 requester 是集成在一起的,以 SDK 包的方式提供给 requester 程序,requester 通过 SDK 包进行远程调用。



微服务架构如何落地

业务先行,理顺业务的边界和依赖,哪些服务是可以独立部署的,这些服务之间的依赖关系如何,哪些功能要放在哪些服务中。如何发现业务的边界在哪里,模块的边界和依赖关系如何设计,模块内部包含哪些功能,这是微服务中最重要的一点。

先有独立的模块,再有分布式服务。先把模块关系拆分清楚,组件关系理清楚。

微服务的目标是什么?这些服务提供业务级的复用,提供给其他系统;维护的边界清晰,业务开发,产品职责清晰;微服务集群提升性能;



微服务为什么要服务注册?

做负责均衡时,如何知道服务在哪里;负载均衡要自己配置;新增加服务器,要改配置重新发布;

要自己解决这些问题,带来开发效率,管理效率,灵活性问题;



发布于: 2020 年 10 月 18 日 阅读数: 14
用户头像

qh12346

关注

还未添加个人签名 2018.05.01 加入

还未添加个人简介

评论

发布
暂无评论
微服务