为何会用微服务???

一、微服务比单体应用好在哪里???tomcat

单体应用:微信

1)单体应用全部的功能都部署在一个tomcat里面,不利于单个功能的吞吐量并发

2)单体应用部署方式是集群方式,扛不住了就多部署几个tomcat分布式

3)单体应用不利于维护,可能其中某个模块错误,就致使整个系统的流程没有办法正确走下去微服务

4)单体应用团队开发时候,耦合度较高,可能须要了解其余成员的代码和功能工具

5)单体应用开发周期长,升级麻烦,难以维护开发工具

微服务:代理

1)微服务能够更好的平滑扩展。根据并发量,功能点等等规划服务,再根据实际场景平滑扩展,提供服务的吞吐量事务

2)微服务部署方式是分布式部署,根据服务的状况,决定服务节点的个数路由

3)微服务中服务划分好后,那么各自服务负责各自的业务点,就算某个服务出现错误,那么也不会影响其余服务的正常运转

4)微服务更加适用于团队开发,成员各自负责各自的业务功能

5)微服务更容易升级,快速开发,快速迭代,快速上线。同时支持独立开发/独立部署

 

二、公司为何会开展微服务???

1)微信、人工客服这两个项目,常常因为瞬时并发量较大,并且用户体量未知,致使系统常常挂

2)有些项目客户反应响应较慢

3)现场同事升级和维护过程较麻烦,周期较长

 

三、微服务选型???

Spring Boot/Spring Cloud/Docker

Spring Boot:只不过是为了让咱们快速用Spring集成开发,是Spring体系微服务的起点

Spring Cloud:是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操做提供了一种简单的开发方式

Docker:它能让更多数量的应用程序在同一硬件上运行;它让开发人员易于快速构建可随时运行的容器化应用程序;它大大简化了管理和部署应用程序的任务

注意:

1)微服务中服务与服务之间的事务很难控制

2)微服务中必需要有监控,否则出了问题,在服务较多的状况下,短期比较难以排查

3)用微服务必需要运用Docker这种自动化部署,否则会比原先单体应用部署起来,更加复杂

相关文章
相关标签/搜索