一 SOA架构
首先理解一个思想基础: SOA
SOA 面向服务的架构(SOA Service Oriented Architecture)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构件在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。
面向服务架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。
SOA架构演变的过程:
如下图:
- 单体应用
- 对业务层进行拆分 ,拆分成各自独立的单元(服务),这些服务可以独立部署,作集群
- 各个被拆分的服务,存在错综复杂的访问关系,怎么去管理这些复杂的服务单元?
- 通过“数据总线”来管理各个服务单元,这个数据总线其实就是“服务的注册中心”。
- 当前流行的两种微服务的构架: dubbo和springcloud
二 什么是微服务
(1)单一职责:微服务中每一个服务都对应唯一的业务能力,做到单一性。
(2)微:微服务的拆分粒度很小,而且每个服务虽小,但“五脏俱全”(ssm系统)
(3)面向服务:每个服务都要对外提供统一的服务接口标准(API)。
(4)自治:服务间互相独立,互不干扰
(5)团队独立:每个服务都是一个独立的开发团队,人数不多
(6)促进前后端分离
三 dubbo微服务框架
阿里开源技术。并没有提供治理分布式开发的解决方案。
准备:
(1)搭建注册中心zookeeper
解压zookeeper安装包,参考如下:
- 打开config目录,创建zoo.cfg的配置文件,编辑配置如下:
dataDir=D:\\Apache\\zookeeper\\data
dataLogDir=D:\\Apache\\zookeeper\\log
- 打开cmd,以管理员身份,进入bin目录中,输入指令zkServer ,启动zookeeper
(2) 搭建dubbo微服务的监控中心
- 把dubbo-admin-2.6.war部署到tomcat中
- 修改tomcat的端口(zookeeper的某些线程占用了8080端口)
- 把war复制到tomcat之下的webapp目录中,启动tomcat(部署完后,先关掉tomcat,再把war包删掉)。
- 启动tomct,访问监控中心
地址:http://localhost:8088/dubbo-admin-2.6
账号和密码:root
四 开发dubbo入门程序
技术:springboot+dubbo
1. dubbo微服务的组成
- 注册中心
- 提供者 业务实现方
- 消费者 业务调用方
2. 分模块的应用程序结构
五 使用dubbo重构拍卖系统