java B2B2C Springboot多租户电子商城系统-spring-cloud-eureka-consumer

yayay · · 24 次点击 · · 开始浏览    
介绍 电子商务平台源码请加企鹅求求:一零三八七七四六二六。spring-cloud-eureka,更加具体的内容,这里将会介绍远程服务调用和及其负载均衡。 我们将我们的服务注册在我们的服务中心里,那么如何去调用这些服务呢?我们可以用使用远程服务调用来解决,顺带还有方便的负载均衡功能。 如何使用 创建服务中心 注册几个被调用服务 注册一个consumer 测试consumer与负载均衡 1. 创建服务中心 上一篇文章,我们已经学会了使用单机或者集群的方式来创建服务中心,这里我们使用简单的单机方式来创建! 在 spring-cloud-eureka-server 里启动采用这个profile文件: ``` server: port: 8761 spring: application: name: eureka-server eureka: instance: lease-expiration-duration-in-seconds: 6 lease-renewal-interval-in-seconds: 2 client: service-url: defaultZone: http://localhost:8761/eureka/ ``` 这个是单机版的。并将自己注册到了服务里。 2. 注册几个被调用服务 我们启动了这三个profile文件。 配置文件中,server.port 分别是 8083,8084,8085,其他参数完全一致!同时,我们在controller中设置了这样一个rest服务。 ``` @Value("${server.port}") String port; @RequestMapping("/hi") public String hi() { return port+" 端口为您服务!"; } ``` 这样方便知道我们具体调用了哪个服务。 3. 注册一个consumer 需要额外的依赖,使用了feign来进行远程调用。 pom.xml : ``` <!--远程调用--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</artifactId> </dependency> ``` 创建一个接口: ``` @Component @FeignClient(name = "eureka-client-1") public interface HelloRemoteInterface { @RequestMapping(value = "/hi") public String hi(); } ``` 这里的name就是你的那个服务的application.name。根据名字来调用,才能实现负载均衡嘛。 使用接口,创建一个测试的controller: ``` @RestController public class ConsumerController { @Autowired HelloRemoteInterface helloRemoteInterface; @RequestMapping("/hello") public String hello() { return helloRemoteInterface.hi(); } } ``` 同时,将我们的这个服务也注册到服务中心。 配置文件: ``` server: port: 8086 spring: application: name: eureka-consumer eureka: client: service-url: defaultZone: http://localhost:8761/eureka/ ``` 启动方法: ``` @SpringBootApplication @EnableEurekaClient @EnableFeignClients public class SpringCloudEurekaConsumerApplication { public static void main(String[] args) { SpringApplication.run(SpringCloudEurekaConsumerApplication.class, args); } } ``` 到这里,我们已经启动了好多个服务,如上图所示,在IDEA中,采用不同的profile来启动的方式,有一个单机的server,三个普通的服务(端口号不一样),还有我们的消费服务,下一节,你可以从截图中看的更明白。 4. 测试consumer与负载均衡 到上一步为止,我们已经可以看到在Eureka的dashboard中已经有了好多个服务,如下图,主要包括: 一个服务注册server 一个消费者,用来进行远程调用 三个普通的client(其端口不一样,来模拟分布式) 这时候,我们调用我们的consumer服务,浏览器里输入 http://localhost:8086/hello 得到的结果是不一样的,一共有三个: 8083 端口为您服务! 8084 端口为您服务! 8085 端口为您服务! 正好就是我们想要的结果。 不断的进行测试下去会发现3种结果交替出现,说明服务中心自动提供了服务均衡负载的功能。如果我们将服务提供者的数量在提高为N个,测试结果一样,请求会自动轮询到每个服务端来处理。[java B2B2C Springboot多租户电子商城系统 ](https://2147775633.iteye.com/blog/2434341)
24 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet