上篇对相应的业务做了功能实现,只差最后的配置部分就可以进行测试。SpringCloud有两种配置application.properties和application.yml,这里使用application.yml进行配置。
首先是eurekaserver部分的配置:
server:
port: 8000
eureka:
instance:
hostname: 127.0.0.1
client:
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
register-with-eureka: false
fetch-registry: false
注册中心服务端口号设置8000,另外在EurekaserverApplication增加@EnableEurekaServer的注解,声明这是一个Eureka的服务端。这样就可以启动Eureka注册中心服务端了。直接访问我们设置的8000端口可以看到服务已经正确启动。
接下来对pay-impl、user-impl和test进行Eureka作为客户端的设置,它们设置方式一样。唯一不同的是spring:application:name,这是它们各自注测到注册中心的名称。
Server: port: 8200 spring: application: name: app-user eureka: client: service-url: defaultZone: http://localhost:8000/eureka/
Defaultzone是注册中心的url。
如果要使用负载均衡,可以通过feign进行服务发现和访问。这里只需要在接口层加上注解@FeignClient(name=”app-user”)这个name就是配置文件里面的name。使用该服务时只需要创建一个集成该服务接口的接口。由于用户服务是被支付服务调用的,因此在pay-impl继承该接口:
@FeignClient(name="app-user") public interface Userfeigin extends IUser { }
同样该接口注解@FeignClient(name=”app-user”)。这时候就可以解释上一节的@Autowired,这个注解自动把Userfeign注入,当然还需要在PayImplApplication增加@EnableFeignClients(basePackages=”com.xxxxx”)这里basePackages对应的Userfeigin对应的包名,不然会提示无法注入。同理,test引用IPay的接口。启动时只需要把EurekaClient配置中的port号改掉就可以启动对应端口号的服务。下面启动三个user,同时启动两个pay,再启动test进行测试。下面是结果:
这里可以看到分别启动1个test,2个pay和3个user,接下来调用test接口:
F5刷新几次
至此,springcloud负载均衡就完成了。后续将对断路由、配置中心、消息总线等进行介绍。