微服务主流技术架构

1. 注册中心

主流技术栈:Zookeeper、Eureka、Consul、Nacos

Zookeeper: 多用于Dubbo,leader+follower,leader写同步到follower,follower可以读。CP,leader崩溃的时候,为了保证数据一致性,要重新选举leader以及数据同步,集群可能会短暂不可用;

Eureka: 多用于Spring Cloud NetFlix,peer-to-peer,每个节点都能读都能写,异步复制。AP,不同的节点可能读到的数据不一样,任何节点宕机,其他节点正常工作;

Consul: 多用于Spring Cloud,基于raft算法的CP模型;

Nacos(推荐): 用于Spring Cloud Alibaba,支持CP和AP。功能最为完善,包括了雪崩保护、自动注销实例、坚挺支持、多数据中心、跨注册中心同步、Spring Cloud集成、Dubbo集成、k8s集成。

 

2. RPC框架

主流技术栈:Feign+Ribbon、Dubbo、gRPC

Feign+Ribbon:  Spring Cloud NetFlix技术栈,轻量级框架,基于Spring MVC写的controller暴露出的http接口,本质是发送http请求给Tomcat,tomcat收到解析这个http请求,交给Spring MVC写的controller来处理;

Dubbo: 自定义协议,组装请求、序列化,重量级框架;

gRPC: 跨语言通信,要生成代码;

 

3.  微服务开发完整流程

1)系统设计(概要设计、详细设计/简化设计)

概要设计:业务架构、技术架构、业务流程、技术方案、部署方案;

详细设计:接口定义、数据库表结构、核心类建模(领域设计)、各个接口被请求时的系统运行时序图、技术方案细化;

简化设计:运行流程图、技术方案、接口、表、时序图。

2)开发代码

3)本地自测:单元测试、dev环境自测

4)持续集成

5)联调测试/功能测试:日常环境联调、测试;

6)预发布测试:模拟线上环境,可进行压力测试、全链路压测、性能测试、可用性测试、稳定性测试,线上流量回放;

7)线上部署。

 

4. 部署方案

1)滚动发布:一个服务部署在多台机器上,部署的时候每台机器依次停机tomcat,再重新启动tomcat; 滚动发布风险加大,自动发布完成后出现问题,要全量重新部署,时间较长;

2)灰度发布:上线不是一次性滚动全部发布到所有机器,只部署比如1台机器,切比如10%的流量,观察并运行一段时间,没有问题后进行全量发布;一旦出现问题,只会影响灰度的部分系统和数据;

3)蓝绿发布:灰度发布全量部署以后,仍然有可能出现问题,回滚很慢,此时可以将流量全部立马切回老集群;一般用于大版本的发布。

 

在目前的软件开发市场中,有许多主流的框架被广泛应用于企业级开发和各种项目中。以下是一些流行的框架分类及代表: 1. 前端框架: - React:由Facebook开发的一个用于构建用户界面的JavaScript库,非常灵活且拥有强大的生态系统。 - Vue.js:一个渐进式JavaScript框架,用于构建用户界面,以其简单易用和灵活性著称。 - Angular:由Google支持的一个完整的前端框架,提供了从视图到服务的全面解决方案。 2. 后端框架: - Spring Boot:基于Spring框架的开源Java平台,能够简化新Spring应用的初始搭建以及开发过程。 - Django:一个高级Python Web框架,鼓励快速开发和干净、实用的设计。 - Ruby on Rails:一个为Web应用提供模型-视图-控制器(MVC)架构的Ruby Web应用框架,注重开发速度和简单性。 3. 移动端框架: - Flutter:由Google开发的一个开源移动应用开发框架,可以用来构建在iOS和Android上同时运行的应用程序。 - React Native:同样是由Facebook开发,允许开发者使用React创建跨平台的原生移动应用。 4. 微服务框架: - Spring Cloud:一套微服务架构下的开发工具集,帮助开发人员构建分布式系统中的各种常见模式。 - Dubbo:阿里巴巴开源的一个高性能Java RPC框架,用于快速构建高性能、透明化的RPC服务。 这些框架各有特色,适用的场景和需求也不同。开发者通常会根据项目需求、团队熟悉度以及社区支持等因素选择合适的框架进行开发。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值