loyung

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

Eureka在Server端的搭建已经有很多介绍的文章,同时也是学习Eureka的第一步。

搭建好注册中心后怎么进行服务注册和服务调用,是我们要讲的主要内容。

开发环境:IDEA2018.3+SpringBoot2.1.7Release+Eureka2.1.3+SpringCloud Greenwich.SR3

第一步:

Pom引入Eureka包

    <!--eureka-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

同时需要引入 spring-cloud-dependencies,来管理SpringCloud全家桶组件

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

关键点在于spring-cloud引用的版本,需要查一下自己springboot版本选择对应的spring-cloud.version

SpringCloud SpringBoot
Angel版本 兼容Spring Boot 1.2.x
Brixton版本 兼容Spring Boot 1.3.x,也兼容Spring Boot 1.4.x
Camden版本 兼容Spring Boot 1.4.x,也兼容Spring Boot 1.5.x
Dalston版本、Edgware版本 兼容Spring Boot 1.5.x,不兼容Spring Boot 2.0.x
Finchley版本 兼容Spring Boot 2.0.x,不兼容Spring Boot 1.5.x
Greenwich版本 兼容Spring Boot 2.1.x

当然对于不熟悉的同学来说,看完这个依旧不知道自己该如何正确选择小版本。

这一交给大家一个最容易的方法

打开 Spring Initializr选择自己的Spring版本

在Dependencies部分输入Eureka,找到Eureka Discovery Client,这里会根据我们选择的组件生成项目模板。

 

 

 然后下载为我们创建的项目模板,找到POM.XML查看这里的引用版本,是不是又快捷,又准确。

我这里当然用到的版本是:

 <spring-cloud.version>Greenwich.SR3</spring-cloud.version>

 

第二步:
添加yml配置Eureka


spring:
application:
name: crmapi

#eureka配置 eureka: client: fetch
-registry: true register-with-eureka: true serviceUrl: defaultZone: http://127.0.0.11:8020/eureka/,http://127.0.0.1:8021/eureka/,http://127.0.0.1:8022/eureka/ instance: instance-id: ${spring.application.name} prefer-ip-address: true ip-address: 127.0.01
eureka.client.serviceUrl.defaultZone配置注册中心地址

ureka.client.fetch-registry,是否启用获取服务注册信息,默认true

ureka.client.fetch-registry.register-with-eureka,是否注册eureka,默认true
instance.prefer-ip-address=true 
默认false服务的Status将会采用“主机名:程序名(application.name属性):端口号”

  修改为true后,可以通过配置instance-id,来限定服务Status为制定instance-id,则实际访问时会访问对应的接口“服务器IP:端口号”
以上两种方法可以按实际需求去配置。

第三步
注册服务

找到程序入口添加@EnableEurekaClient注解

@EnableEurekaClient
@EnableSwagger2
@SpringBootApplication
@MapperScan
public class xxxapiApplication {

    public static void main(String[] args) {
        SpringApplication.run(xxxapiApplication.class, args);
    }

在程序运行时便会按照之前的配置将当前服务注册到注册中心

 

 

到这里,就可以完成服务中心注册,后面两步是调用时用使用,当然调用前也是同样要引用Eureka包,按第一步操作即可。

如果当前服务既是服务提供者又是服务调用者,就可以直接配置第四、第五步进行远程调用别的服务。

第四步
配置调用

我们可以建一个Bean配置EurekaConfig.class

@Configuration
public class EurekaConfig {
    @LoadBalanced
    @Bean
    RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

第五步

Controller调用

 @Autowired
    private RestTemplate restTemplate;

public  List<MemberLevelVO> GetMemberLevel(String im) {

 String im =  restTemplate.getForObject("http://servername/getmemberlevel?im="+im,String.class)
}

 

后传: 

调用时注意的问题,如果直接 new RestTemplate()去调用,服务端执行是不会调用我们前面调用的额IP形式,依然会调用主机名:端口号,是因为再资源注入是一定要有@LoadBalanced注解出现才行

 

如果需要手动删除Eureka服务,可以使用PostMan执行DELETE操作既可删除已有服务

删除链接:http://127.0.0.1:8020/eureka/apps/crmapi(服务名Application)/bi:crmapi:8028(注册名)

 

删除操作

 

 

posted on 2019-10-24 10:50  loyung  阅读(1199)  评论(0编辑  收藏  举报