Eureka服务端与客户端搭建

前言

这段时间在构建自己的开发工具集,避不开的就是各种中间件访问层的搭建。而 spring cloud 唯二绕不开的就是 eureka 了,所以就重复造轮子,以后忘记了也有所参考。

正文

前期准备

maven/gradle

eureka 服务器搭建

  1. 新建 spring boot 空项目

    这一步其实是非必要的,你也可以新建 maven/gradle 空项目或者普通的 web项目, 只是 spring boot 的自动配置比较方便。

  1. 修改 pom.xml 或者 build.gradle 文件(此处示例为 pom.xml 文件)

    
    
        4.0.0
        
            org.springframework.boot
            spring-boot-starter-parent
            2.3.4.RELEASE
             
        
        com
        eureka
        1.0.0
        eureka
        Demo project for Spring Boot
    
        
            1.8
            Hoxton.SR8
        
    
        
            
                org.springframework.cloud
                spring-cloud-starter-netflix-eureka-server
            
    
            
                org.springframework.boot
                spring-boot-starter-test
                test
                
                    
                        org.junit.vintage
                        junit-vintage-engine
                    
                
            
        
    
        
            
                
                    org.springframework.cloud
                    spring-cloud-dependencies
                    ${spring-cloud.version}
                    pom
                    import
                
            
        
    
        
            
                
                    org.apache.maven.plugins
                    maven-compiler-plugin
                    3.8.1
                    
                        1.8
                        1.8
                        UTF-8
                    
                
                
                    org.springframework.boot
                    spring-boot-maven-plugin
                
            
        
    
    
  1. 修改项目配置文件 application.yml

    server:
      port: 8761
    eureka:
      instance:
        hostname: eureka-server
      client:
        register-with-eureka: false
        fetch-registry: false
        service-url:
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
    
  1. 启动类增加 @EnableEurekaServer 注解

    @EnableEurekaServer
    @SpringBootApplication
    public class EurekaApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(EurekaApplication.class, args);
        }
    
    }
    

经过上述步骤启动项目,eureka服务器就启动完成了。

服务提供者与消费者构建

服务提供者构建
  1. 新建 spring boot 空项目
  2. 修改 pom.xml 或者 build.gradle 文件(此处示例为 pom.xml 文件)


    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.3.4.RELEASE
         
    
    com
    eurekaclient
    1.0.0
    EurekaClient
    Demo project for Spring Boot

    
        1.8
        Hoxton.SR8
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
            
                
                    org.junit.vintage
                    junit-vintage-engine
                
            
        
    

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
        
    

    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.8.1
                
                    1.8
                    1.8
                    UTF-8
                
            
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    


  1. 修改项目配置文件 application.yml
eureka:
  client:
    service-url:
      defaultZone: http://cartoon-ali.com:6001/eureka/   # 取决于你的eureka地址
spring:
  application:
    name: DemoProducer
  1. 新建模拟接口
@RestController
public class TextController {

    @GetMapping("text")
    public String text(){
        return "eureka producer";
    }
}
服务消费者构建
  1. 新建 spring boot 空项目
  2. 修改 pom.xml 或者 build.gradle 文件(此处示例为 pom.xml 文件)


    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.3.4.RELEASE
         
    
    org
    eurekaclient2
    0.0.1-SNAPSHOT
    eurekaclient2
    Demo project for Spring Boot

    
        1.8
        Hoxton.SR8
    

    
        
            org.springframework.boot
            spring-boot-starter
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
            
                
                    org.junit.vintage
                    junit-vintage-engine
                
            
        

        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        

        
            org.springframework.boot
            spring-boot-starter-web
        

    

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
        
    

    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.8.1
                
                    1.8
                    1.8
                    UTF-8
                
            
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    


  1. 修改项目配置文件 application.yml
eureka:
  client:
    service-url:
      defaultZone: http://cartoon-ali.com:6001/eureka/    # 取决于你的eureka地址
spring:
  application:
    name: DemoConsumer
server:
  port: 8081
  1. 模拟消费接口构建
@RestController
public class TextController {

    @Autowired
    private RestTemplate restTemplate;

    @RequestMapping("/text")
    public String text(){
        return restTemplate.getForObject("http://DEMOPRODUCER/text", String.class);
    }
}


启动

同时启动服务提供者与消费者,调用消费者模拟消费接口,即能看到调用的结果。

后记

项目代码已收录在我的个人工具集。因为我在工具集全面应用了 easyopen 做接口的收拢,所以关于 eureka 相关的内容可能有点不一样,但是总体步骤是一样的,欢迎 star

    本文首发于 cartoon的博客
    转载请注明出处:https://cartoonyu.github.io/cartoon-blog/post/spring-cloud/Eureka服务端与客户端搭建/

你可能感兴趣的:(Eureka服务端与客户端搭建)