一直想写 springcloud 的搭建教程,今天就来整理一下吧。
搭建项目
1. 创建一个空项目
2. 填写相关的信息
3. 新建项目后
4. 搭建服务中心
4.1 添加模块
4.2 选择 Spring Initializr 方式创建
4.3 填写相关的组和工件
4.4 选择相关依赖
4.5 确认好相关内容点击完成
4.6 修改 application.yml 配置文件
#eureka 注册中心
server:
port: 8761 #端口号
eureka:
instance:
hostname: localhost
client:
#表示十分将自己注册到 Eureka Server, 默认为 true。由于当前应用就是 Eureka Server,故而设为 false。register-with-eureka: false
#表示是否从 Eureka Server 获取注册信息,默认为 true。因为这是一个单点的 Eureka Server,不需要同步其他 的 Eureka Server 节点的数据,故而设为 false
fetch-registry: false
#置与 Eureka Server 交互的地址,查询服务和注册服务都需要依赖这个地址,默认是 http://localhost:8761/eureka;多个地址可用,分隔
service-url:
default-zone: http://${eureka.instance.hostname}:${server.port}/eureka/
4.7 启动类添加注解
@EnableEurekaServer 是声明这是一个 Eureka 注册中心
@EnableEurekaServer
@SpringBootApplication
public class ServerCenterApplication {public static void main(String[] args) {SpringApplication.run(ServerCenterApplication.class, args);
}
}
4.8 访问 127.0.0.1:8761
如上图所示,看到没有任何的服务提供者。
5. 搭建服务提供者
5.1 新建模块 server-order
构建方式和上面一样,就不再赘述了。
5.2 修改配置文件 application.yml
#eureka-client
#端口号
server:
port: 8082
eureka:
instance:
hostname: localhost
#置与 Eureka Server 交互的地址,查询服务和注册服务都需要依赖这个地址,默认是 http://localhost:8761/eureka;多个地址可用,分隔
client:
service-url:
default-zone: http://localhost:8761/eureka/
spring:
application:
name: service-order
5.3 启动类添加注解
@EnableEurekaClient
@SpringBootApplication
public class ServerOrderApplication {public static void main(String[] args) {SpringApplication.run(ServerOrderApplication.class, args);
}
}
注册中心和服务提供者的主要区别就在于注解的不同。
5.4 新建 Controller
/**
* 服务提供者方法
* @author zhouzhaodong
*/
@RestController
@RequestMapping("/order")
public class OrderController {
/**
* 测试方法
* @return
*/
@RequestMapping("/getMessage")
public String getMessage(){return "order-one";}
}
5.5 启动服务提供者(注册中心也要启动)
这里我们发现注册中心上面多了一个服务。
5.6 在浏览器中直接输入 127.0.0.1:8082/order/getMessage
显示内容如下:
至此服务提供者创建完毕!
6. 搭建服务消费
6.1 新建模块 server-user
构建方式和上面一样,就不再赘述了。
6.2 修改配置文件 application.yml
#eureka-client
#端口号
server:
port: 8083
eureka:
instance:
hostname: localhost
#置与 Eureka Server 交互的地址,查询服务和注册服务都需要依赖这个地址,默认是 http://localhost:8761/eureka;多个地址可用,分隔
client:
service-url:
default-zone: http://localhost:8761/eureka/
spring:
application:
name: service-user
6.3 在启动类上添加注解
/**
* 服务消费者
* @author zhouzhaodong
*/
@EnableEurekaClient
@SpringBootApplication
public class ServerUserApplication {
/**
* @Bean 注解用来注入 restTemplate
* @LoadBalanced 注解用来在注册中心里进行查找微服务,Ribbon 负载均衡
* 生成一个 RestTemplate 实例对象
* 使用 user 服务调用 order 服务就是通过这个 restTemplate 对象实现的
* @return
*/
@Bean
@LoadBalanced
public RestTemplate restTemplate(){return new RestTemplate();
}
public static void main(String[] args) {SpringApplication.run(ServerUserApplication.class, args);
}
}
6.4 新建 controller
/**
* 消费者
*
* @author zhouzhaodong
*/
@RestController
public class UserController {
@Resource
private RestTemplate restTemplate;
/**
* 返回值类型需要和我们的业务返回值一致
* @return
*/
@RequestMapping("getUserOrder")
public String getUserOrder() {
String url = "http://service-order/order/getMessage";
return restTemplate.getForObject(url, String.class);
}
}
6.5 启动消费者
发现注册中心页面多了一个服务
6.6 在浏览器中输入 127.0.0.1:8083/getUserOrder
可以发现成功调用了 order 服务并返回了结果,实现了 server-user 服务调用 server-order 服务的操作。服务消费者本身又是服务提供者。
至此消费者搭建完毕!
源代码地址
https://github.com/zhouzhaodo…
个人博客
http://www.zhouzhaodong.xyz