笔记:IDEA实现一个简单的springcloud微服务

一、新建一个项目作为注册中心:

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")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值