JavaEE:SpringCloud-使用Eureka发布微服务

说明:

Eureka分为Server端和Client端,Server端与Client端为一对多关系(Server端可配成集群),Server端(类似Zookeeper)提供注册中心功能,Client端用于向Server端注册/调用服务,Client端配置在各微服务Module工程中。Client端本身无法发布为Web微服务,需要和SpringMVC一起使用。

一、导入SpringCloud与SpringBoot依赖包(必须版本对应,此处为2.2.x <-> Hoxton):

1.导入SpringBoot依赖包:


    
    
        org.springframework.boot
        spring-boot-starter-parent
        2.2.8.RELEASE
    
    ...

2.定死SpringCloud依赖包:


    ...
    
    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                Hoxton.RELEASE
                pom
                import
            
        
    

二、Eureka的Server端服务器搭建(类似Zookeeper服务器):

1.导入Eureka的Server端依赖包:



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

2.application.yml配置Eureka的Server端信息:

server: #配置此Web微服务端口号
  port: 10000
eureka:
  client:
    register-with-eureka: false #是否将自已注册到Eureka服务中(默认,不用注册)
    fetch-registry: false #配置是否从Eureka中获取注册信息
    service-url: #配置Eureka Server端的URL,此处端口与server.port中一样
      defaultZone: http://127.0.0.1:10000/eureka/

3.编写Eureka的Server端启动类:

@SpringBootApplication  //配置启动类
@EnableEurekaServer  //配置Eureka服务端启动类
public class EurekaServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class); //加载启动类
    }
}

三、Eureka的Client端搭建(每个微服务Module均配置为Client端):

1.导入Eureka的Client端依赖包和Web功能依赖包:


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

2.application.yml配置Eureka的Client端信息和Web微服务端口号:

spring:
  application:
    name: mall-usercenter #配置此Web微服务名称
server: #配置此Web微服务端口号
  port: 10001
eureka:
  client:
    service-url: #导入Eureka Server配置的地址
      defaultZone: http://127.0.0.1:10000/eureka/
  instance: #配置支持跨域访问
    prefer-ip-adress: true

3.编写Eureka的Client端启动类:

@SpringBootApplication  //配置启动类
@EnableEurekaClient //配置Eureka客户端
public class EurekaClientApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaClientApplication.class); //加载启动类
    }
}

4.提供Web功能的请求处理类:

//提供Web功能的请求拦截类
@Controller
public class UserController {
    //请求路径为:http://127.0.0.1:10001/getUserDetail/1001 ,userNo是参数值
    @RequestMapping(value = "getUserDetail/{userNo}", method = RequestMethod.GET)
    @ResponseBody // @ResponseBody将返回对象转换为json字符串
    public User getUserDetail(@PathVariable("userNo") String userNo) {// @PathVariable用于将{userNo}的值取出,赋值给userNo
        System.out.println("mall-usercenter微服务内部getUserDetail方法触发   userNo: " + userNo);
        User user = new User();
        user.setUserNo(userNo);
        user.setName("先生");
        return user;
    }
}

 

 

你可能感兴趣的:(JavaEE)