微服务的学习实际上就是学习Dubbo,因为实际上是通过Dubbo这个框架来实现的微服务。微服务本身只是一种架构风格,所以重点在于Dubbo框架的学习。
也实现了负载均衡。
很早:没有微服务也没有集群的概念,jar包往tomcat一放就可以,一个进程运行一个程序,实现一个网站的方式就是单体应用。比如项目二。

图:微服务的理解
单体应用的这种集群结点的方式不好。因为可能存在资源的浪费。所以我们需要对整个应用拆分一下。 分布式系统:依然不够好,需要针对其进行改进 微服务:把不同子系统抽取出来的公共的单一功能的模块,这就是微服务。
微服务实现单一的功能。 每一个微服务都可以独立部署,独立对外提供服务。(更细粒度的扩容)



图:网关
网关:接收前端的请求;将接收到的请求分发给不同的微服务(路由);网关实现的请求的接入,后端的唯一入口。接收前端的http请求,
网关隔离开了前端和后端。 网关属于后端,可以通过写配置文件的方式让网关知道:有哪些服务,哪些服务部署在哪些服务器上。每一个微服务对应的服务器地址都可以告诉网关。 前端服务器请求哪个功能的时候,只需要把请求交给网关就可以。网关知道哪些功能由哪些服务实现,哪些服务部署在哪些服务器上。网关知道那些服务器的IP地址和端口号。
浏览器把请求交给网关,网关分发请求给微服务。 是否登录(网关这里做身份验证)

服务治理框架:Dubbo
不同服务器上多个进程之间的事务:分布式事务

微服务的理论到此为止,接着学习如何基于微服务的框架实现微服务。 微服务的核心问题:服务与服务之间的调用(通信)问题。
介绍
**RPC**(跨进程调用)框架,目前广泛使用的微服务架构框架。
协议和序列化框架都可以插拔,远程接口是基于**Java Interface**,并且依托于**spring**框架(管理Bean生命周期)方便开发。
官方文档 Dubbo2.7
服务消费者去调用服务提供者(代码)
Spring和Dubbo的整合
common-api

consumer


SpringBoot和Dubbo的整合
2个微服务治理框架:springcloud,dubbo
最主要区别:服务之间的调用,dubbo基于**dubbo**协议,springcloud基于**http**协议。
1,拦截器设置-HandlerInterceptor
3,对象属性值的复制和转化:MapStruct框架
4,SPI机制

怎么使用Mybatis,就怎么使用tk-Mybatis
tk-Mybatis的依赖:复制进来
包含selective的是:非null属性值修改
part-3
MapStruct框架(值的复制)
依赖(pom.xml)
