1.创建聚合项目(idea)
a)如果是想让子项目在父项目下,则需要指定父项目(父项目下有子moudle标签,子项目只有)
b)如果想让父子项目并行则不需指定父项目(父项目下没有子moudle标签)
c)packing标签作用决定项目打包后是jar/war
d)springboot项目打包后为jar,直接在cmd窗口用java -jar 项目全称
e)集群部署则同一项目多次打包修改其端口号部署不同服务器
2.eureka
a)目前理解是用户通过客户端–>服务消费者–>(@Feign负载均衡)注册中心–>服务提供者
问题?
那么谁来负载均衡从客户端–>服务消费者这一连接,ZUUL网关?
答:所有微服务都需要经过网关,网关本身也有负载均衡的能力,这一流程是通过nginx进行负载均衡
经过分析得到此图:
3.调用情况
a)内部服务之间调用不经过网关,ZUUL作路由器,访问ZUUL才走网关
b)通过网关调用订单模块集群,其负载均衡调用了订单服务
c)通过网关–>消费者–>提供者,这两步都进行了负载均衡的能力
4.pom文件
a)maven不能多重继承,只能单继承,所以可以通过以下方式进行多pom导入,这样做的好处既可以解决多继承问题,还可以对pom进行分类管理,type改为pom,也避免了导入大量的jar
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.htyd</groupId>
<artifactId>htyd-dependencies</artifactId>
<version>${project.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
b)通过以下方式导入可以避免版本号冲突,让其自己管理版本号并导入依赖时可以不写版本号
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
c) 可以配置maven 的一些插件,pluginManagement和plugin类似于dependency和dependencyManagement
5.mybatisPlus
a)对于聚合项目经过测试即使是依赖过来的实体类模块,在mybatisPlus中也能扫描到
mybatis-plus:
type-aliases-package: com.htyd.service.*.mapper
b)不加@param也可以通过如此,且可以利用${}动态查询表名