1.微服务
a.微服务的微体现的是功能小,可以将系统中能够独立运行的各种功能拆分开来,各自围绕一个主题工程实现解耦和独立调用
b.而所谓服务,一定要区别于系统,服务一个或者一组相对较小且独立的功能单元,是用户可以感知最小功能集。
c.微服务的目的是有效的拆分应用,实现敏捷开发和部署
2.微服务的产生背景
单体架构的不足
a.扩展性差,可靠性不高,维护成本高。
b.与某种技术栈强绑定的
c.遗留系统很难对接,切换时间太长,成本太高,新系统稳定性的收敛也需要一些时间
3.微服务框架
微服务架构(Microservice Architecture):一种架构概念,目的是将功能拆分,降低系统耦合性,提供更加灵活的服务支持。
4.SpringClould与Dubbo
dubbo: 重量级的微服务框架,非常多的接口需要开发人员自己维护,支持非常多的访问协议,rpc,http等,强调的是整体微服务框架的性能,大型企业中运用的dubbo保证企业的系统运行流畅且快速,且准确.dubbo中可以使用eureka的服务治理,一旦强调数据的一致性,服务治理组件替换成zookeeper
springcloud: 轻量级的微服务框架,所有接口,都已经成为组件维护,只支持http的rest访问,相对于dubbo来讲,springcloud的性能没有dubbo强,重点强调的是可用性(数据一致性偏弱),中小型企业,考虑开发成本的情况下使用springcloud;
5.springCloud的微服务框架具有很多的功能组件:
1 服务治理 eureka 所有工程都可以在eureak中注册自己 的服务名称,如果名称一致,将会被eureka作为同一个服务来使用;
2 负载均衡调用组件:ribbon, 前端的客户端的组件
3 熔断器:Hystrix, 当服务调用出现任何异常或者问题时,可以利用熔断的逻辑完成错误的解决;类似代码中的try catch
4 接口客户端组件: feign 底层依赖ribbon+template实现的调用。看不到实际调用的方法,利用接口,注解
5 分布式配置:config,分布式配置组件;
6 网关组件:zuul,实现网关路由,监听,对当前的需要的服务进行网关治理;