spring cloud微服務快速教程之(二)服務註冊與發現 eureka

0、爲何須要eureka

  當咱們從當體系統拆分爲多個獨立服務項目以後,若是aaa.com/uer、aaa.com/order;;相互之間調用,若是隻是一個服務一個實例,那還能夠直接經過固定地址(如http://111.111.11.1:7119/user/getuser/1)直接訪問;spring

  可是,咱們一個服務有不少個實例,這樣你就不能寫死地址了吧,多個之間你得挑出一個來調用吧(負載均衡),還有多個實例有的中止了,有的新加入了,這你得心跳檢測健康監測吧等等;這些,都是從單體系統拆分後面臨的實際問題,你能夠本身一個一個去克服和實現;當遇到了spring cloud,哈哈,你有福了,spring cloud eureka正是爲你解決以上問題而來;app

  eureka服務發現組件包含eureka server(服務註冊中心)和eureka client(服務註冊與發現);自己經過心跳檢測(默認30S)進行服務的註冊與發現與健康檢查負載均衡

1、eureka集成

一、eureka server

1.一、添加依賴:測試

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

1.二、配置文件增長配置fetch

eureka:
  instance:
    hostname: localhost
    prefer-ip-address: true
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
  server:
    enable-self-preservation: false


spring:
  application:
    name: eurka-server

1.三、啓動類增長 @EnableEurekaServer 註解spa

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

一個eureka server就完成了,啓動運行3d

 

 

尚未服務實例,由於咱們還沒添加,好,下面咱們來添加eureka clientcode

二、eureka client

2.一、添加依賴server

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

2.二、修改配置文件blog

server:
  port: 8763

spring:
  application:
    name: user

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
  instance:
    prefer-ip-address: true

2.三、啓動類中增長 @EnableEurekaClient 註解

@SpringBootApplication
@EnableEurekaClient
@EnableHystrixDashboard
public class application
{
    public  static void main(String[] args)
    {
        SpringApplication.run(application.class);
    }
}

完成

咱們在controller裏面添加一個方法進行測試

@RestController
@RequestMapping("/user")
public class UserController
{
    @Autowired
    private ServiceUtil serviceUtil;

    @RequestMapping("/hello")
    public  String Hello()
    {
        return  ("hello world" +serviceUtil.getPort());
    }
}

三、測試

先啓動eureka server 項目,再啓動client項目,咱們能夠看到,client的服務實例已經註冊進來了

 

 再切換端口增長一個實例,能夠看到,也註冊進來了,這樣就能夠經過eureka管理多個服務的多個實例以及相互之間調用的問題了

 

 

GIT源碼後面再放出

相關文章
相關標籤/搜索