微服务
自动化部署,端点智能化,语言和数据的去中心化控制。
微服务将一个单一应用程序开发为一组小型服务,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制。可以去中心化的数据库,去中心化的基础设施。
Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC(Romote Procedure Call,远程过程调用) 分布式服务框架,现已成为 Apache 基金会孵化项目。
使用 Dubbo 可以将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,可用于提高业务复用灵活扩展,使前端应用能更快速的响应多变的市场需求。
RPC是不同机器上的方法可以互相调用;soa又叫服务治理,它拆分了不同的功能单元,并通过定义良好的接口和协议联系起来;SOA实现微服务架构
应用架构的发展路线:
应用架构的发展路线:
单一应用架构(ORM框架)——》垂直应用架构(MVC)——》分布式服务架构(RPC)——》流动计算架构(SOA)
为了把:
1、界面+业务逻辑的实现分离
2、应用不可能完成脱离,应用之间需要交互
采用分布式的服务架构;(RPC)
引入调度中心,实施管理服务集群,SOA
Dubbo原理
【provider:服务提供者;consumer:调用远程服务的服务消费方;registry:服务注册中心】
- 服务容器负责启动,加载,运行服务提供者。
- 服务提供者在启动时,向注册中心注册自己提供的服务。
- 服务消费者在启动时,向注册中心订阅自己所需的服务。
- 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
- 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
- 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
在我们的项目中,注册中心用的zookeeper
实习中没有monitor模块(监控中心)
灰度发布: 一个服务原本在100个服务器上跑,升级业务后怕不稳定,xianxuan
Dubbo 的服务治理图
Dubbo内置了Spring Container,Jetty Container,Log4j Container
默认使用Zookeeper作为注册中心
Dubbo与Spring Cloud的区别
Dubbo 是阿里开源的一个 SOA 服务治理解决方案,文档丰富,在国内的使用度非常高。
- Spring Cloud 来源于 Spring,质量、稳定性、持续性都可以得到保证。
- Spirng Cloud 天然支持 Spring Boot,更加便于业务落地。
- Spring Cloud 发展得非常快,从开始接触时的相关组件版本为 1.x,到现在将要发布 2.x 系列。
- Spring Cloud 是 Java 领域最适合做微服务的框架。
spring cloud的架构:
Dubbo Demo
Zookeeper安装
cd D:\yuan\zookeeper-3.4.14.tar\zookeeper-3.4.14\bin zkServer.cmd
启动客户端连接:
zkCli.cmd 127.0.0.1:2181