高并发之——应用拆分

应用拆分实例

应用拆分原则

1 业务优先
2 循序渐进(拆分、测试)
3 兼顾技术(重构、分层)
4 可靠测试

应用拆分的思考

1.应用之间的通信:RPC(dubbo等)、消息队列
消息传输适用于传输数据包小但是数据量大,对实时性要求不高的场景。比如下单成功后通过短信通知用户。而选用RPC框架实时性更高一些。你应该知道的 RPC 原理
2.应用之间的数据库设计:每个应用都有独立的数据库
3.避免事务操作跨应用,分布式事务是一个非常消耗资源的问题。这样应用和应用的耦合度降低。

应用拆分组件

1 服务化 Dubbo

Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。

主要核心部件
Remoting: 网络通信框架,实现了 sync-over-async 和request-response 消息机制.
RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能
Registry: 服务目录框架用于服务的注册和服务事件发布和订阅

2 微服务 Spring Cloud

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

Spring Cloud组成

Spring Cloud的子项目,大致可分成两类,一类是对现有成熟框架”Spring Boot化”的封装和抽象,也是数量最多的项目;第二类是开发了一部分分布式系统的基础设施的实现,如Spring Cloud Stream扮演的就是kafka, ActiveMQ这样的角色。对于我们想快速实践微服务的开发者来说,第一类子项目就已经足够使用,如:

 

  •     Spring Cloud Netflix

    是对Netflix开发的一套分布式服务框架的封装,包括服务的发现和注册,负载均衡、断路器、REST客户端、请求路由等。

  •     Spring Cloud Config

    将配置信息中央化保存, 配置Spring Cloud Bus可以实现动态修改配置文件

  •     Spring Cloud Bus

    分布式消息队列,是对Kafka, MQ的封装

  •     Spring Cloud Security

    对Spring Security的封装,并能配合Netflix使用

  •     Spring Cloud Zookeeper

    对Zookeeper的封装,使之能配置其它Spring Cloud的子项目使用

  •     Spring Cloud Eureka

    Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件中的一部分,它基于Netflix Eureka 做了二次封装,主要负责完成微服务架构中的服务治理功能。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值