4.Eureka结合项目

0.项目结构

api和consumer模块没有变化(参考之前的项目)

7001-7003是注册的三个eureka服务,正常应该是在三台电脑上进行操作,这里只是进行一个模拟

4.Eureka结合项目

 

1.Eureka模块

由于模块相似,这里只写一个模块

4.Eureka结合项目

1.1 pom

    <dependencies>
<!--eureka包-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
    </dependencies>

1.2 配置文件

application.yml

server:
  port: 7001
 #eureka配置
eureka:
  instance:
    hostname: localhost
  client:
    register-with-eureka: false #表示是否注册自己
    fetch-registry: false #表示自己是注册中心
    service-url: #监控页面
     defualtZone: http://localhost:7002/eureka/,http://localhost:7003/eureka/
     #设置与其他两个eureka关联 如果是其他的电脑前面的localhost也要改变

1.3 启动类

@SpringBootApplication
@EnableEurekaServer//服务端启动类,可以接受别人注册进来
public class EurekaServer_7001 {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServer_7001.class,args);
    }
}

2.Provider模块

4.Eureka结合项目

2.1 主启动类添加注解

@SpringBootApplication
@EnableEurekaClient//在服务启动后自动注册到eureka中
@EnableDiscoveryClient//服务发现
public class DeptProvider_8001 {
    public static void main(String[] args) {
        SpringApplication.run(DeptProvider_8001.class,args);
    }
}

2.2 controller类可以获得一些微服务的信息

//提供restful服务
@RestController
public class DeptController {
    @Autowired
    private DeptService deptService;
    @Autowired
    private DiscoveryClient discoveryClient;//获取一些具体微服务

    @PostMapping("/dept/add")
    public boolean addDept(Dept dept) {
        return deptService.addDept(dept);
    }

    @GetMapping("/dept/get/{id}")
    public Dept get(@PathVariable("id") Long id) {
        return deptService.queryById(id);
    }

    @GetMapping("/dept/list")
    public List<Dept> queryAll(Dept dept) {
        return deptService.queryAll();
    }

    //注册进来的微服务 获取一些信息
    @GetMapping("/dept/discovery")
    public Object discovery() {
        //获得微服务列表的清单
        List<String> strings = discoveryClient.getServices();
        System.out.println(strings);

        //得到具体的微服务的信息
        List<ServiceInstance> instances = discoveryClient.getInstances("SPRINGCLOUD-PROVIDER-DEPT");//通过eureka里显示的名字来取
        for (ServiceInstance instance : instances) {
            System.out.println(instance.getHost() + " " + instance.getPort() + " " + instance.getUri() + " " + instance.getInstanceId());
        }
        return this.discoveryClient;
    }

}

3.3 配置文件application.yml 注册eureka,集群设置,以及更改一些信息

server:
  port: 8001
  #mybatis的配置
mybatis:
  type-aliases-package: com.wu.springcloud.pojo
  mapper-locations: classpath:mybatis/mapper/*.xml
  config-location: classpath:mybatis/mybatis-config.xml
#spring的配置
spring:
  application:
    name: springcloud-provider-dept
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: org.gjt.mm.mysql.Driver
    url: jdbc:mysql://localhost:3306/db01?useSSL=true&useUnicode=true&characterEncoding=utf-8
    username: root
    password: root
#注册eureka,服务注册到哪里
eureka:
  client:
    service-url:
      #集群发布
      defaultZone: http://localhost:7001/eureka/,http://localhost:7002/eureka/,http://localhost:7003/eureka/
  instance:
    instance-id: provider-dept-8001 #修改描述信息

info:
  app.name: xiaowu-springcloud
  company.name: yuzhibo.com

 

上一篇:Oracle SQL 性能优化利器


下一篇:springCloud系列一(使用restTemplate进行服务调用)