天天看點

筆記:IDEA實作一個簡單的springcloud微服務一、建立一個項目作為注冊中心:二、建立一個Module作為服務生産者(提供接口的項目): 三、建立一個Module作為服務消費者(使用生産者接口的項目): python flask架構 eureka

一、建立一個項目作為注冊中心:

1.File->new->project->Spring Initializr->SDK選1.8->Next->java版本選8,定義好名稱->Next->左邊一列選擇Spring Cloud Discovery,右邊一列選擇Eureka Server,完成項目建立

2.然後啟動入口DemoApplication.java類上面加一個@EnableEurekaServer代表它是服務中心,之後的服務都會注冊到它這裡

3.在application.properties裡加入

server.port=8761

eureka.instance.hostname=localhost

eureka.client.register-with-eureka=false #禁止自己當做服務注冊

eureka.client.fetch-registry=false #屏蔽注冊資訊

eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/

代表注冊中心端口号是8761

4.啟動這個項目

5.這時打開localhost:8761就能看到服務中心了,但此時還沒有服務注冊到這裡。

二、建立一個Module作為服務生産者(提供接口的項目):

1.File->new->project->Spring Initializr->SDK選1.8->Next->java版本選8,定義好名稱->Next->左邊一列選擇Spring Cloud Discovery,右邊一列選擇Eureka Server,完成項目建立

2.然後啟動入口DemoApplication.java類上面加一個@EnableEurekaClient代表它是服務生産者,它提供接口給之後的服務使用

3.在application.properties裡加入

spring.application.name=client1

server.port=8762

#指向注冊中心,http://${eureka.instance.hostname}:${server.port}/eureka/

eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/

代表服務生産者端口号是8762,名字是client1,并指向注冊中心

4.建立一個Controller接口作為提供:

@RestController

public class HelloController {

    @RequestMapping("/hello2")

    public String home2(@RequestParam String name) {

        return "hello2 "+name+",client1 am from port:" +port;

    }

}

5.啟動這個項目,此時注冊中心會出現服務生産者的名稱

三、建立一個Module作為服務消費者(使用生産者接口的項目):

1.File->new->project->Spring Initializr->SDK選1.8->Next->java版本選8,定義好名稱->Next->左邊一列選擇Spring Cloud Discovery,右邊一列選擇Eureka Server,完成項目建立

2.然後啟動入口DemoApplication.java類上面加一個@EnableDiscoveryClient代表它是服務消費者,它使用生産者提供的接口,然後裡面寫這個

@Bean

public RestTemplate restTemplate() {

    return new RestTemplate();

}

3.在application.properties裡加入

spring.application.name=clientxiaofei

server.port=8763

#指向注冊中心,http://${eureka.instance.hostname}:${server.port}/eureka/

eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/

代表服務消費者端口号是8763,名字是clientxiaofei,并指向注冊中心

4.建立一個使用服務生産者接口的Controller:

@RestController

public class Hellocilent1Controller {

    @Autowired

    private RestTemplate restTemplate;

    @RequestMapping(value = "/hello")

    public String hello(@RequestParam String name){

        String s = restTemplate.getForObject("http://localhost:8762/hello?name=" + name, String.class);

        return s;

    }

}

restTemplate.getForObject裡面的url就是服務生産者的接口位址,就能拿到這個接口傳回的Object,我這裡是字元串

5.啟動這個項目,此時注冊中心會出現服務消費者的名稱

6.此時在浏覽器輸入localhost:8763打開消費者,就能看到消費者調用生産者的接口傳回的hello字元串

python flask架構 eureka

安裝庫

pip install py_eureka_client

使用

from flask import Flask

import py_eureka_client.eureka_client as eureka_client

app = Flask(__name__)

def setEureka():

    server_host = "localhost" #服務提供者的位址

    server_port = 5000 #服務提供者的端口号

    eureka_client.init(eureka_server="http://localhost:1111/eureka", #注冊中心的位址

                       app_name="flask_server",

                       # 目前元件的主機名,可選參數,如果不填寫會自動計算一個,如果服務和 eureka 伺服器部署在同一台機器,請必須填寫,否則會計算出 127.0.0.1

                       instance_host=server_host,

                       instance_port=server_port,

                       # 調用其他服務時的高可用政策,可選,預設為随機

                       ha_strategy=eureka_client.HA_STRATEGY_RANDOM)

setEureka()

@app.route('/')

def hello_world():

    return 'Hello World!'

if __name__ == '__main__':

    app.run(debug=True, threaded=True, port=5000, host="0.0.0.0")