创建邮件服务右键父级项目名称-New-Module,如图:勾选注册中心客户端木块,SpringCloudDiscovery-EurekaDiscoveryClient,如图:不要急着next,还需要勾选(用来写接口的,否则没法写接口)Web-SpringWeb,如图:不要急着next,还需要勾选feign客户端模块SpringCloudRouting-OpenFeign,如图:点击next下一步,如图:点击finish,至此邮件子模块搭建成功,接下载就是一些配置文件和实现邮件发送功能了给邮件服务配置环境启动类添加注册中心客户端注解EnableEurekaClient,如图:1、配置文件修改配置文件修改,如图:配置完后启动eureka项目和email项目,访问:localhost:/,会发现了一个email服务,如图:接下来我们写一个测试接口看一下,能不能访问,如图:重启service-email服务,访问:localhost:/test/semdEmail,如图:出现邮件发送成功说明成功了,这里可能有人会问,这和普通的springboot没什么区别呀,也没有用到注册中心,不要急,请往下看我再按上面的方法新建一个测试服务service-test并启动,用来调用邮件服务的接口发送邮件,这时注册中心就有作用了,如图:测试服务已经注册到注册中心了接下来我在测试服务中新建一个接口,如图:应用名是在注册中心里面可以访问:localhost:/,在这里面找到,如图:然后在测试服务中写一个测试的Controller,如图:这里发现接口引用报错,不要急,(忘记给方法写RequestMapping(/sendEmail)请自行添加)首先我们在启动类新加一个注解EnableFeignClients,如图:其次File-Settings-Editor-Inspections-Spring设置成warning即可,如图:重启测试服务,访问:localhost:/test/sendEmail,如图:这样就说明服务之间的调用没问题内容扩展我们在邮件服务器发送邮件的方法写一个睡眠,让他延迟2秒在返回,如图:重启邮件服务,再次访问测试服务:localhost:/test/sendEmail,结果如下:会发现访问出错了,根据最后一行提示,说是访问邮件服务超时原因就是feign的默认请求超时时间是1秒,而我们延时2秒后返回了数据所以这个请求失败了,那么我们要如何解决这个问题呢?很简单,我们在测试服务的配置文件中配置feign的超时时间即可,如图:重启测试服务,再次访问,结果如下:内容知识配置文件新加的ribbon配置是SpringCloudRibbon的客户端负载均衡工具,他通过springcloud的封装,可以让我们轻松的实现负载均衡,大家可以自行测试,在本地启动两个相同的邮件服务并且打印出他们的端口,然后通过测试服务去访问,会发现,访问同一个地址,时,他们的端口号会来回切换,就说明成功的负载均衡了springboot的邮件发送,喜欢的朋友可以
转载请注明原文网址:http://www.13801256026.com/pgyy/pgyy/6611.html |