1.先创建个空的maven项目
2.创建eureka服务
idea自动生成的pom配置文件需要更改一下
启动eureka注册中心的方式很简单,在springboot的启动类上加上注解
@EnableEurekaServer
将resource下面的 application.properties文件改为application.yml文件并添加如下配置:
server:
port: 8801
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
启动项目访问localhost:8801,看到这个界面,Eureka注册中心就已经启动成功,接下来我们可以编写一个提供者,一个消费者。
2.创建提供者ribbon
创建模块和上个一样,到这里变化一下,
同样的修改pom, 注意
加上 @ComponentScan 注解,然后添加 @EnableDiscoveryClient 注册服务,然后注入RestTemplate对象,
@LoadBalanced 表示开启负载均衡
@Bean
@Autowired
@LoadBalanced
RestTemplate restTemplate(){
return new RestTemplate();
}
编写controller
controller代码
@RestController
public class HelloController {
@Autowired
private HelloService helloService;
@GetMapping("/hello")
public String hello(){
String hello = helloService.sayHello();
return hello;
}
}
service代码
@Service
public class HelloService {
public String sayHello(){
return "helloWorld"; // 提供一个hello World
}
}
配置文件
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8801/eureka/
server:
port: 8802
spring:
application:
name: ribbon-provider
之后启动服务,启动后访问 localhost:8802/hello
看到这里,就启动成功了
你在访问localhost:8801,就可以看到我们服务已经注册好了一个
3.再创建一个ribbon2服务
可以看下之前怎么创建的,
只需更改一下service 的部分代码就行
还有配置文件
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8801/eureka/
server:
port: 8803
spring:
application:
name: ribbon-provider
启动服务,访问http://127.0.0.1:8803/hello 看到这就成功了
此时我们的eureka已经有2个相同的服务了,
4.创建消费者feign
feign消费是通过注解的方式进行的消费模式,它默认打开了负载均衡,还是在cloudDemo下创建一个module,名字叫feign:
修改一下依赖
可以复制之前controller和service,再创建一个rpc文件夹
@FeignClient("ribbon-provider")
public interface GetHello {
@GetMapping(value = "/hello")
public String sayHello();
}
同样的修改配置文件
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8801/eureka/
server:
port: 8804
spring:
application:
name: feign-consumer
启动类加上注解
@EnableDiscoveryClient //用于注册和发现服务
@EnableFeignClients
5.测试服务(负载均衡)
不停的访问http://127.0.0.1:8804/hello
我们的cloud服务就成功了