初识springcloud (一)
2020-12-13 02:47
标签:文件 机制 框架 provider strong 没有 服务框架 业务 报错 微服务是一种架构风格,将单体应用划分为小型的服务单元,微服务之间使用HTTP的API进行访问操作。 Eureka提供基于REST的服务,在集群中主要用于服务器管理。Eureka提供了基于Java语言的客户端组件,并且客户端组件实现了负载均衡的功能。使用该框架,可以将业务组件注册到Eureka容器中,这些组件可进行集群部署,Eureka主要维护这些服务的列表并自动检测他们的状态。 一个简单的Eureka 集群,需要一个Eureka服务器,若干个服务提供者。可以将业务组件注册到Eureka服务器中,其他客户端组件可以向服务器获取服务并进行远程调用。 该程序包括 : 我使用的是IDEA 建项目步骤 建好项目之后,在项目启动类中增加@EnableEurekaServer注解,表示该应用是Eureka服务器 启动项目,会发现出现如下错误 解决这个问题很简单,只需将在application.properties中做如下配置 再次启动,不在报错。 然后在浏览器中访问服务器 重新建一个项目名为first-service-provider-eureka,方法和上面的一样,启动类添加注解 配置application.properties文件 编写一个实体类 编写一个controller类 新建一个项目名为first-service-invoker-eureka,方法同上 @EnableDiscoveryClient 使其具有发现Eureka服务的能力,@EnableEurekaClient 包含了@EnableDiscoveryClient 编写application.properties 编写controller类 最后将三个应用都启动,访问服务调用者 成功。。。。。。。 再看Eureka容器里 服务已经存在Eureka中了 。。。。end 初识springcloud (一) 标签:文件 机制 框架 provider strong 没有 服务框架 业务 报错 原文地址:https://www.cnblogs.com/qinda/p/11055073.html一、springcloud 概述
1.微服务与springcloud
2.springcloud 的主要模块
二、微服务的发布与调用
1、Eureka介绍
2.写一个简单的Eureka应用
构建服务器
@SpringBootApplication
@EnableEurekaServer
public class SpringcouldStudyApplication {
public static void main(String[] args) {
SpringApplication.run(SpringcouldStudyApplication.class, args);
}
}
server.port = 8761
# 聲明是否將自己的服務器信息注冊到Eureka服務器上。默認為true
eureka.client.register-with-eureka=false
# 是否到Eureka服務器上抓取信息
eureka.client.fetch-registry=false
服务提供者
@SpringBootApplication
@EnableEurekaClient
public class FirstServiceProviderEurekaApplication {
public static void main(String[] args) {
SpringApplication.run(FirstServiceProviderEurekaApplication.class, args);
}
}
#配置實例主機名
eureka.instance.hostname = localhost
# 默認地址
eureka.client.service-url.defaultZone = http://localhost:8761/eureka/
@Data
public class Person {
private int id;
private String personName;
private String personSex;
}
@RestController
public class FirstController {
@RequestMapping(value = "/person/{id}",method = RequestMethod.GET)
public Person getPerson(@PathVariable("id") Integer id){
Person person = new Person();
person.setId(id);
person.setPersonName("curry");
person.setPersonSex("男");
return person;
}
服务调用者
@SpringBootApplication
@EnableDiscoveryClient
public class FirstServiceInvokerEuerkaApplication {
public static void main(String[] args) {
SpringApplication.run(FirstServiceInvokerEuerkaApplication.class, args);
}
}
server.port=9000
spring.application.name= first-service-invoker
eureka.instance.hostname = localhost
eureka.client.service-url.defaultZone = http://localhost:8761/eureka/
@RestController
public class Controller {
@Bean
@LoadBalanced
/**
* @Method getRestTemplate
* @Author qinda
* @Version 1.0
* @Description RestTemplate主要是用來調REST服務的,是spring-web模塊下的類
* 本身本身不具有調用分佈式的能力。所以用@ LoadBalanced注解 使其具有該能力。
* @param
* @Return org.springframework.web.client.RestTemplate
* @Exception
* @Date 2019/6/19 18:12
*/
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
@RequestMapping(value = "/router")
public String router(){
RestTemplate restTemplate = getRestTemplate();
//根據應用名稱調用服務
String s = restTemplate.getForObject("http://localhost:8080/person/2",String.class);
//String json = restTemplate.getForObject("http://first-service-provider/person/2",String.class);
return s;
}
}
下一篇:分享一个免费的聊天api