介绍:橙哥,java后端 7年开发经验。曾就职华为、今日头条,目前在一个小公司当CTO,有想互相学习的小伙伴可以加个公众号,里面有橙哥几年积攒的资料还有个人经验的分享。
公众号:橙哥学习之路
目录
一、为什么要使用微服务,与单体架构对比
(1).单体架构与分布式架构
单体架构: 将业务的所有功能集中在一个项目中开发,打成一个包部署
优点: 架构简单、部署成本低 ; 缺点: 耦合度高
项目打包部署到Tomcat,用户直接访问。用户量增加后就多部署几台服务器形成集群。
随着互联网发展、一个APP或Web通常都用有相当多的模块,因此出现了 分布式架构
分布式架构: 根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务。
优点: 降低服务耦合、有利于服务升级拓展 ;
二、微服务有哪些功能
如上图所示,微服务的主要组件包括:
(1)、Eureka:注册中心将微服务的信息注册到注册中心,然后通过注册中心找到对应需要请求的服务ip以及端口号;
(2)、Zuul:服务网关对流量进行拦截还有进行一些权限控制负载均衡;
(3)、Ribbon:负载均衡减少服务器的压力,主要用于集群;
(4)、Feign:服务调用针对每个微服务之间的通信;
(5)、Hystix:熔断器 服务器宕机时可以进行服务降级处理,防止一个服务宕机影响其他服务正常运转;
三、总结
微服务单独地将每个服务拆开,降低的解耦性,方便开发人员进行独立开发。针对于互联网时代的到来,用户量急剧增加,微服务也是正顺应时代的要求,所以必需要好好掌握微服务。