springcloud外卖订餐系统 --- day1
1、确定项目需求
客户端:针对普通用户--->用户登录,注册,登出,我的订单,订购菜品
后台管理系统: 针对管理员----> 管理员登陆,登出,菜单的crud操作,订单的处理,用户的crud操作
根据业务拆分微服务:(服务提供者)
account:提供账号服务,用户和管理员的登陆登出
menu: 提供菜单服务,菜单的crud操作
order: 提供订单服务,订单的crud
user: 提供用户服务,用户的crud
分离出一个服务消费者,调用以上4个服务提供者,服务消费者包含了客户端的前端页面和后台接口,后台管理系统的前端页面及后台接口,用户/管理员要访问的资源 都保存在服务消费者中,通过feign实现负载均衡
4个服务提供者及一个服务消费者都要在注册中心进行注册。配置中心也可以在其中进行统一配置管理。
2、创建父工程
pom.xml文件
org.springframework.boot
starter-parent
org.springframework.boot
spring-boot-starter-web
2.1.6.RELEASE
org.projectlombok
lombok
1.18.8
org.springframework.cloud
spring-cloud-dependencies
Finchley.SR2
import
3、注册中心
eureka-server pom.xml
1.8
Greenwich.SR2
org.springframework.cloud
spring-cloud-starter-netflix-eureka-server
org.springframework.boot
spring-boot-starter-test
test
org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import
主程序类:application.java
package top.juntech.eurekaserver;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
//使用@EnableDiscoveryclient开启注册中心
@EnableDiscoveryClient
public class EurekaserverApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaserverApplication.class, args);
}
}
配置文件:application.yml
server:
port: 8761
eureka:
client:
fetch-registry: false
register-with-eureka: false
service-url:
defaultZone: http://locahost:8761/eureka/
到此,就搭建好了一个注册中心了!
打开localhost:8761就可以看到eureka 注册中心!
4、配置中心
1.pom.xml
1.8
Greenwich.SR2
org.springframework.cloud
spring-cloud-config-server
org.springframework.boot
spring-boot-starter-test
test
org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import
org.springframework.boot
spring-boot-maven-plugin
application.yml
server:
port: 8762
spring:
application:
name: eurekaserverconfig
profiles:
active: native
cloud:
config:
server:
native:
search-locations: classpath:/shared
在shared文件夹创建服务提供者的配置文件:order-dev.yml
port:
server: 8100
启动类
package top.juntech.eurekaserverconfig;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
@SpringBootApplication
@EnableConfigServer
public class EurekaserverconfigApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaserverconfigApplication.class, args);
}
}
5、服务提供者order
pom.xml
1.8
Greenwich.SR2
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
org.springframework.boot
spring-boot-starter-test
test
org.springframework.cloud
spring-cloud-starter-config
2.0.2.RELEASE
org.springframework.boot
spring-boot-starter-web
org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import
bootstrap.yml
spring:
application:
name: order
profiles:
active: dev
#可找到shared/order-dev.yml文件
cloud:
config:
uri: http://localhost:8762
fail-fast: true
ordercontroller.java
package top.juntech.order.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/order")
public class OrderController {
@Value("${server.port}")
private String port;
@GetMapping("/index")
public String index(){
return "order服务的端口:"+this.port;
}
}
启动类
package top.juntech.order;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class, args);
}
}
第一天项目结构如下:
[图片上传失败...(image-a341bc-1588607461090)]
依次开启Eurekaserver、eurekaserverconfig、order,会发现http://localhost:8761/
[图片上传失败...(image-8127dd-1588607461091)]
[图片上传失败...(image-bf67e7-1588607461091)]