简单的一个SpringCloud项目。主要核心组件服务注册中心和负载均衡。Eureka+Ribbon
1.FIle->new->Project
2.选择maven项目,然后next
3.输入GroupId 和 AtrifactId,然后next
4.选择保存路劲,和设置项目名称,然后finish
5.创建完后项目目录:
把src目录删除掉:删除完目录结构:
6.右键项目,选择new Module
7.如图选择,选择创建一个SpringBoot项目,然后点击next
8.输入Group和Artificat,然后next
9.选择SpringCloud Discovery-》Eureka,然后next
10.点击finish
11.项目目录如图所示:
12.把application.properties改成yml文件:
13.在yml文件中,配置注册中心相关信息:
#设置端口号
server:
port: 8090
eureka:
instance:
#设置项目名称是localhost,也可以是其它的。
hostname: localhost
client:
#标注改服务不去注册服务(当只有一个Eureka的时候,设置成false,否则项目项目启动报错)
register-with-eureka: false
#标注改服务不去获取服务(当只有一个Eureka的时候,设置成false,否则项目项目启动报错)
fetch-registry: false
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka
server:
#关闭注册中心的保护机制,Eureka 会统计15分钟之内心跳失败的比例低于85%将会触发保护机制,
#不剔除服务提供者,如果关闭服务注册中心将不可用的实例正确剔除
enable-self-preservation: false
14.在启动类上加上注解:@EnableEurekaServer
16.启动项目:浏览器中输入loalhost:8090
17,这个时候我们创建一个服务生产者spring-cloud-provider
如6-8步一样,new Module,到这一步记得修改相关信息,然后next
20.这时候模块要有web+Eureka Discovery Client,然后next
21.这里finish
22.这个时候的项目目录:
23.我们修改spring-cloud-provider的application.yml文件内容:
#声明端口
server:
port: 8091
spring:
application:
#声明项目名称
name: springcloud-provider
#声明向服务器注册地址
eureka:
client:
service-url:
#向下面这个路劲注册服务
defaultZone: http://localhost:8090/eureka
24.启动类上加上@EnableEurekaClient和@RestController.写生如下代码。主要测试是否能web访问。
package com.havey.springcloudprovider;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@EnableEurekaClient
@RestController
public class SpringCloudProviderApplication {
public static void main(String[] args) {
SpringApplication.run(SpringCloudProviderApplication.class, args);
}
@Value("${server.port}")
private String port;
@GetMapping("/helloWorld")
public String helloWorld(){
return "你好!世界,我的端口是:"+port;
}
}
25.启动spring-cloud-provider项目:访问locahost:8090。我们发现多一个服务
26.我们在浏览器中输入:http://localhost:8091/helloWorld
27.创一个消费者spring-cloud-ribbon 如创建生产者一样(20步-22步),就是名字不同,我们这里不做重复。创建后项目目录:
28.修改spring-cloud-ribbonapplicaton.yml内容:
server:
port: 8092
spring:
application:
name: springcloud-ribbon
eureka:
client:
service-url:
defaultZone: http://localhost:8090/eureka
29.在启动类上加上注解: @EnableEurekaClient;@RestController,并且把RestTemplate放入到bean容器中。写一个方法接口,看是否能web访问。
这个是核心访问方法。地址中,不能再是locahos:port而是直接项目名称。是yml配置好的。
return restTemplate().getForObject("http://springcloud-provider/helloWorld",String.class);
30.我们启动消费者spring-cloud-ribbon:浏览器中输入:localhost:8090
31.我们再访问:localhost:8092/test
发现返回的是生产者返回的值,说明我们调用服务成功了。
恭喜自己一个简单的springcloud项目创建成功了。
如果可以请给予一分钱的支持。也可以点个赞。前进的脚步。