SpringCloud 创建微服务

虽然说每个微服务并没有限制其技术栈,不过一般来说都是使用java进行开发。
既然使用java,那么就少不了IDEA这个IDE了。
使用IDEA去创建微服务比较简单:
1、新建一个模块

2、选择spring cloud(每个版本的IDEA可能会有不同)
在这里插入图片描述
3、按照自己实际需求填写好下面的信息(实际开发中,这些信息都比较重要)
在这里插入图片描述
4、按需选择合适的组件(图示选择创建eureka服务治理中心)
在这里插入图片描述
5、填写好模块名后创建微服务,完成

在创建好微服务后,pom文件可能要做一些修改,比方说我使用的idea自行创建完之后,spring-boot-starter-tomcat下带着一个scope,会影响最后启动,这里就要删掉这个scope。

我创建的一个Eureka微服务如下:
在这里插入图片描述
还有一个朴实无华的微服务
在这里插入图片描述
接下来稍微介绍product微服务的其他配置

1、ProductApplication,其中注解是关键,需要添加@SpringBootApplication注解

package com.example.product;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ProductApplication {

	public static void main(String[] args) {
		SpringApplication.run(ProductApplication.class, args);
	}

}

2、application.yml/application-{spring.profiles.active}.yml的配置
在启动一个微服务的时候,SpringBoot会去读取资源文件的application.properties或者是application.yml的配置,现在都比较流行使用yaml,所以我也使用yaml。
application-{spring.profiles.active}.yml又是什么?
实际情况中,可能会根据不同情况执行不同的参数。比如说在公司开发的时候,会有开发环境、测试环境、类生产环境、生产环境,这些环境通常都是封闭互不影响的,所以对接的某些资源可能就发生变更,比如对接其他服务对应环境的url。
但是如果都写在application.yml中,那么每次切换环境就得去修改一次application.yml,实践告诉我们,这样多次人工修改就容易出问题。
在application.yml中,我们可以通过指定spring.profiles.active参数,去再读取一个application-{spring.profiles.active}.yml的参数,这样就能做到不修改application.yml同时区分环境了。
当然还有其他用途,这个在这里不深究。

以下是我的application.yml

spring:
  # 定义spring应用名称,它是一个微服务名称,一个微服务可拥有多个实例
  application:
    name: product
  profiles:
    active: alpha

eureka:
  client:
    # 确定一个region
    region: china
    # 服务注册域地址
    service-url:
      #      defaultZone: http://localhost:5001/eureka,http://localhost:5002/eureka
      eastchina: http://localhost:5001/eureka
      southchina: http://localhost:5002/eureka
    # 是否检索服务实例清单,默认值true
    fetch-registry: true
    # 检索服务实例清单的时间间隔,默认30s
    registry-fetch-interval-seconds: 30
    # 当服务获取超时后,最大尝试次数,默认值为10
    cache-refresh-executor-exponential-back-off-bound: 10
    # 首次服务注册延迟时间,默认40s
    initial-instance-info-replication-interval-seconds: 40

  instance:
    # 服务治理中心服务器ip
    hostname: localhost
    # 微服务实例超时失效秒数,默认90s,如果超时,eureka会将实例剔除
    lease-expiration-duration-in-seconds: 90
    # 间隔对应的秒数执行一次续约服务,默认30s
    lease-renewal-interval-in-seconds: 30

还有我的application-alpha.yml

server:
  port: 8001

eureka:
  client:
    # 确定一个zone
    availability-zones:
      china: southchina

当然也能够通过启动springboot时传参数,比如:
在这里插入图片描述
那么我在启动ProductApplication-beta的时候,就会传入参数beta覆盖我在application.yml中的alpha

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值