美文网首页
spring cloud 1-4

spring cloud 1-4

作者: 我是啵啵 | 来源:发表于2019-11-02 15:23 被阅读0次

api

里面就写了一个实体类 引入了之后大家都能用

provider

里面写了三层业务
配置类的标识
@EnableEurekaClient @MapperScan("com.mengxuegu.springcloud.mapper")

用了mybatice 还有它的配置文件
引入

  <!-- 导入Eureka客户端的依赖,将 微服务提供者 注册进 Eureka -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>


yml配置:


eureka:
  client:
    registerWithEureka: true # 服务注册开关
    fetchRegistry: true # 服务发现开关
    serviceUrl: # 注册到哪一个Eureka Server服务注册中心,多个中间用逗号分隔
      #defaultZone: http://localhost:6001/eureka
      defaultZone: http://eureka6001.com:6001/eureka,http://eureka6002.com:6002/eureka
  instance:
    instanceId: ${spring.application.name}:${server.port} # 等价于microservice-product:8001
    prefer-ip-address: true #访问路径就会显示成IP地址

配了两个注册中心

注册中心

@EnableEurekaServer //标识一个Eureka Server 服务注册中心

启动类上标识

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

yml

server:
  port: 6001 # 服务端口

eureka:
  instance:
    hostname: eureka6001.com # eureka服务端的实例名称
  client:
    registerWithEureka: false # 服务注册,false表示不将自已注册到Eureka服务中
    fetchRegistry: false # 服务发现,false表示自己不从Eureka服务中获取注册信息
    serviceUrl:    # Eureka客户端与Eureka服务端的交互地址,集群版配置对方的地址,单机版配置自己(如果不配置则默认本机8761端口)
      #defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
      #集群版
      defaultZone: http://eureka6002.com:6002/eureka/
  server:
    enable-self-preservation: false # 禁用自我保护机制

另外一个注册中心

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

yml

  port: 6002 # 服务端口

eureka:
  instance:
    hostname: eureka6002.com # eureka服务端的实例名称
  client:
    registerWithEureka: false # 服务注册,false表示不将自已注册到Eureka服务中
    fetchRegistry: false # 服务发现,false表示自己不从Eureka服务中获取注册信息
    serviceUrl:    # Eureka客户端与Eureka服务端的交互地址,集群版配置对方的地址,单机版配置自己(如果不配置则默认本机8761端口)
      #defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
      #集群版
      defaultZone: http://eureka6001.com:6001/eureka/
  server:
    enable-self-preservation: false # 禁用自我保护机制


consumer

调用者@SpringBootApplication 没有特别的配置
不用注册

 <dependency>
            <groupId>com.nmid.springcloud</groupId>
            <artifactId>api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

配置 reset

@Configuration //标识配置类
public class ConfigBean {


    @Bean
    public RestTemplate getRestTemplate() {
        return new RestTemplate();
    }
    
}

通过reset调用

@RestController
public class ProductController_Consumer {

    private static final String REST_URL_PREFIX = "http://localhost:8001";

    @Autowired
    private RestTemplate restTemplate;

    @RequestMapping(value = "/consumer/product/add")
    public boolean add(Product product) {
        return restTemplate.postForObject(REST_URL_PREFIX + "/product/add", product, Boolean.class);
    }

    @RequestMapping(value = "/consumer/product/get/{id}")
    public Product get(@PathVariable("id") Long id) {
        return restTemplate.getForObject(REST_URL_PREFIX + "/product/get/" + id, Product.class);
    }

    @RequestMapping(value = "/consumer/product/list")
    public List<Product> list() {
        return restTemplate.getForObject(REST_URL_PREFIX + "/product/list", List.class);
    }



开启两个 euraka
和两个微服务 cosumer 和provider
然后测试
http://localhost/consumer/product/list

image.png

相关文章

网友评论

      本文标题:spring cloud 1-4

      本文链接:https://www.haomeiwen.com/subject/cgxomctx.html