博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java B2B2C Springcloud电子商城系统-搭建一个简单的Eureka程序
阅读量:6806 次
发布时间:2019-06-26

本文共 5094 字,大约阅读时间需要 16 分钟。

Eureka集群主要有三个部分Eureka服务器,服务提供者,服务调用者

简单的来说就是服务提供者将服务注册到Eureka服务器,服务调用者对其服务进行查找调用。 需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码 一零三八七七四六二六 一.搭建服务器

1.引入maven依赖,使用官方文档中的依赖的结果还是启动不起来,缺少日志相关的依赖,另外自己添加了几个依赖后就OK了

org.springframework.cloud
spring-cloud-dependencies
Dalston.SR5
pom
import
junit
junit
4.11
test
javax.persistence
persistence-api
1.0
slf4j-api
org.slf4j
1.7.10
ch.qos.logback
logback-classic
1.2.3
slf4j-api
org.slf4j
ch.qos.logback
logback-core
1.2.3
org.springframework.cloud
spring-cloud-starter-config
org.springframework.cloud
spring-cloud-starter-eureka-server
复制代码

因为Spring cloud集成了很多项目。所以引入spring-cloud-starter-eureka-server就相当于引入了spring-boot-starter-web等,就具有了web容器的功能了。

2.配置yml文件:设置服务器端口以及相关信息

server:  port: 8761 #更改端口为8761eureka:  client:    register-with-eureka: false #服务器不用注册到其他服务器    fetch-registry: false #服务器不用去服务器抓取注册信息复制代码

3.编写服务启动类,也就是main方法启动spring boot,注意使用@EnableEurekaServer注解

package com.nijunyang;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.builder.SpringApplicationBuilder;import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@SpringBootApplication@EnableEurekaServerpublic class ServerApp {  public static void main(String[] args){      new SpringApplicationBuilder(ServerApp.class).web(true).run(args);  }}  复制代码

启动之后访问http://localhost:8761/就可以看到Eureka服务器控制台。 二.服务提供者(警察局)

1.maven依赖将服务器的spring-cloud-starter-eureka-server依赖改为spring-cloud-starter-eureka即可

2.yml配置文件:需要将服务提供者注册到Eureka服务器上,服务器的端口设置的8761

server:  port: 8080spring:  application:    name: first-police  #服务提供者名字eureka:  client:    serviceUrl:      defaultZone: http://localhost:8761/eureka/  #注册到服务器复制代码

3.编写一个实体类police和PoliceController,有人报警则派出一个警察

package com.nijunyang;import org.springframework.http.MediaType;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class PoliceController {    @RequestMapping(value = "/call/{id}",method = RequestMethod.GET,    produces = MediaType.APPLICATION_JSON_VALUE)    public Police call(@PathVariable Integer id){        Police police = new Police();        police.setId(id);        police.setName("zhangsan");        return police;    }}复制代码

4.该模块的启动类,main方法启动和服务器的一样 new SpringApplicationBuilder(XXX(启动类类名).class).web(true).run(args);

三.服务调用者(报警)

1.maveny依赖:在服务提供者的基础上再加入负载均衡(后续了解)相关的依赖

org.springframework.cloud
spring-cloud-starter-ribbon
复制代码

2.yml配置:同样需要注册到服务器,上面的服务提供者由于没有设置端口所以默认是8080,现在将调用者端口设置8081,否则启动会出错

server:  port: 8081 #更改端口为8081spring:  application:    name: first-personeureka:  client:    serviceUrl:      defaultZone: http://localhost:8761/eureka/  #注册到服务器复制代码

3.编写PersonController,需要新加@Configuration注解,以及配置RestTemplate,RestTemplate本来是spring-web下面的类用来调用REST服务。本身不具备调用分布式服务的能力,但是被@LoadBalanced修饰后就具有访问分布式服务的能力了(具体涉及负载均衡,后续深入了解)。因为是注册到Eureka服务器的,所以我在内部请求的时候只需要转到相应的服务提供者就可以了:

package com.nijunyang;import org.springframework.cloud.client.loadbalancer.LoadBalanced;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.client.RestTemplate;@Controller@Configurationpublic class PersonController {    @Bean    @LoadBalanced    public RestTemplate getRestTemplate(){        return new RestTemplate();    }    @GetMapping(value = "/call/{id}")    @ResponseBody    public String call(@PathVariable Integer id){        RestTemplate restTemplate = getRestTemplate();        return restTemplate.getForObject("http://first-police/call/" + id ,String.class);    }}复制代码

4.不多说,启动类编写

依次启动服务,服务提提供者和服务调用者。访问Eureka控制台就可以看到注册进去的first-police和first-person。访问http://localhost:8081/call/id,页面就会返回某个police的josn信息。

转载地址:http://lrtwl.baihongyu.com/

你可能感兴趣的文章
利用Python了解微信通信机制,实现查询有多少好友删除你!!
查看>>
UVa 10082 WERTYU
查看>>
【mybatis深度历险系列】mybatis中的动态sql
查看>>
UWP-磁贴初识
查看>>
keepalived and heartbeat
查看>>
Git--分支管理
查看>>
解决cef加载flash时弹出黑框的问题
查看>>
光伏项目用地政策解析
查看>>
高德发布十一出行预测:全国高速流量增长7%
查看>>
侧滑面板(对viewGroup的自定义)
查看>>
月入5000,你有什么资格谈生活
查看>>
iOS和js交互三部曲,很不错的文章和demo
查看>>
《maven实战》学习笔记2——maven安装(windows和eclipse插件)
查看>>
Web前端开发工程师基本要求
查看>>
以太坊上海协议之——达成Cosmos网络实现以太坊扩容协议
查看>>
高科技前端页面一览
查看>>
黑色魔方玩转云计算
查看>>
北京协和医院付海鸿:医学精准要影像先行,影像精准就要技术先行
查看>>
本周存储头条:数据保护、超融合、闪存等等
查看>>
我们不知道我们不知道:用同化项目做网络安全
查看>>