一、分布式开发
1. 目标
2. 结构图
3. 需要创建的工程 com.yixuexi
- 父工程,聚合工程:atcrowdfunding07_member_parent (唯一的pom工程)
- 注册中心:atcrowdfunding08_member_eureka
- 实体类模块:atcowdfunding09_member_entity
- MySQL数据服务:atcrowdfunding10_member_mysql_provider
- Redis数据服务:atcrowdfunding11_member_redis_provider
- 会员中心:atcrowdfunding12_member_authentication_consumer
- 项目维护:atcrowdfunding13_member_project_consumer
- 订单维护:atcrowdfunding14_member_order_consumer
- 支付功能:atcrowdfunding15_member_pay_consumer
- 网关:atcrowdfunding16-member-zuul
API模块:atcrowdfunding17-member-api
4. 父工程管理依赖版本 Pom
```xml
com.yixuexi atcrowdfunding07_member_parent 1.0-SNAPSHOT pom <!-- 导入 SpringCloud 需要使用的依赖信息 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR2</version>
<type>pom</type>
<!-- import 依赖范围表示将 spring-cloud-dependencies 包中的依赖信息导入 -->
<scope>import</scope>
</dependency>
<!-- 导入 SpringBoot 需要使用的依赖信息 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.6.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.5</version>
</dependency>
../atcrowdfunding08_member_eureka ../atcowdfunding09_member_entity ../atcrowdfunding10_member_mysql_provider ../atcrowdfunding11_member_redis_provider ../atcrowdfunding12_member_authentication_consumer ../atcrowdfunding13_member_project_consumer ../atcrowdfunding14_member_order_consumer ../atcrowdfunding15_member_pay_consumer
<a name="2ggUa"></a>
## **5. 搭建环境约定**
包名约定:<br />新建的包都是 com.yixuexi.crowd 的子包<br />主启动类类名:<br />CrowdMainClass<br />端口号:
- atcrowdfunding08-member-eureka 1000
- atcrowdfunding10-member-mysql-provider 2000
- atcrowdfunding11-member-redis-provider 3000
- atcrowdfunding12-member-authentication-consumer 4000
- atcrowdfunding13-member-project-consumer 5000
- atcrowdfunding14-member-order-consumer 7000
- atcrowdfunding15-member-pay-consumer 8000
- atcrowdfunding16-member-zuul 80
---
<a name="kxoZ6"></a>
# 二、搭建Eureka
<a name="ueMf1"></a>
## 1. 加入依赖
```xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
2. 添加主启动类
添加@EnableEurekaServer 注解
/**
* @date: 2021/3/12 15:18
* @author: 易学习
*/
@EnableEurekaServer
@SpringBootApplication
public class CrowdMainClass {
public static void main(String[] args) {
SpringApplication.run(CrowdMainClass.class);
}
}
3. 配置yaml
eureka:
instance:
hostname: localhost
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://${eureka.instance.hostname}/${server.port}/eureka
4. 如果Eureka启动报错,添加下面依赖
因为JDK版本问题,。。。
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>