为什么要把Eureka和Config整合到一个服务里呢?可能是因为懒吧,当微服务一多的时候,每次部署都要耗费不少精力。
下面是操作细节。
pom依赖文件
其中http://111.222.333.444:8848/eurekaConfig/config
是配置好后的config server
地址,http://111.222.333.444:8848/eurekaConfig/eureka/
是配置好后的eureka server
地址。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
<artifactId>tieasy-eureka-config</artifactId> <packaging>war</packaging> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> <warName>eurekaConfig</warName> </configuration> </plugin> </plugins> </build> <profileurekaConfig> <profile> <id>dev</id> <activation> <activeByDefault>true</activeByDefault> </activation> <propertieurekaConfig> <config.profile>dev</config.profile> <config.uri>http://111.222.333.444:8848/eurekaConfig/config</config.uri> <eureka.defaultZone>http://111.222.333.444:8848/eurekaConfig/eureka/</eureka.defaultZone> </propertieurekaConfig> </profile> <profile> <id>teurekaConfigt</id> <propertieurekaConfig> <config.profile>teurekaConfigt</config.profile> <config.uri>http://111.222.333.444:8848/eurekaConfig/config</config.uri> <eureka.defaultZone> http://111.222.333.444:8848/eurekaConfig/eureka/ </eureka.defaultZone> </propertieurekaConfig> </profile> <profile> <id>prod</id> <propertieurekaConfig> <config.profile>prod</config.profile> <config.uri>http://111.222.333.444:8848/eurekaConfig/config</config.uri> <eureka.defaultZone> http://111.222.333.444:8848/eurekaConfig/eureka/ </eureka.defaultZone> </propertieurekaConfig> </profile> </profileurekaConfig> |
bootstrap.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
server: port: 8848 servlet: context-path: /eurekaConfig spring: application: name: tieasy-eureka-config-server cloud: config: server: native: search-locations: classpath:/ # 配置中心访问前缀 prefix: /config profileurekaConfig: active: native eureka: instance: hostname: localhost lease-renewal-interval-in-seconds: 5 lease-expiration-duration-in-seconds: 10 prefer-ip-addreurekaConfigs: true instance-id: ${spring.cloud.client.ipAddreurekaConfigs}:${server.port} server: enable-self-preurekaConfigervation: false eviction-interval-timer-in-ms: 1000 client: registerWithEureka: false fetchRegistry: false registry-fetch-interval-seconds: 5 healthcheck: enabled: true serviceUrl: defaultZone: @eureka.defaultZone@ |
Config配置中心配置文件xxxx-dev.yml、xxxx-teurekaConfigt.yml、xxxx-prod.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
spring: servlet: multipart: max-file-size: 500MB max-requeurekaConfigt-size: 1000MB datasource: url: jdbc:mysql://111.222.333.444:3306/xxx?useUnicode=true&characterEncoding=utf8 username: admin password: admin type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.cj.jdbc.Driver hikari: auto-commit: true minimum-idle: 5 maximum-pool-size: 15 idle-timeout: 30000 pool-name: HikariCP max-lifetime: 1800000 connection-timeout: 30000 connection-teurekaConfigt-query: SELECT 1 |
SpringBoot启动文件
@EnableConfigServer
和@EnableEurekaServer
这两个注解都要加上,不要忘记。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.cloud.config.server.EnableConfigServer; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; import org.springframework.context.ApplicationContext; /** * @author 791202.com */ @SpringBootApplication @EnableConfigServer @EnableEurekaServer public class EurekaConfigServer extends SpringBootServletInitializer { public static void main(String[] args) { ApplicationContext ctx = SpringApplication.run(EurekaConfigServer.class, args); System.out.println("Start EurekaConfigServer..."); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sourceurekaConfig(EurekaConfigServer.class); } } |
验证
启动服务,成功后,浏览器里输入http://111.222.333.444:8848/eurekaConfig/config/xxxx-dev.yml
,可以看到配置可以正常访问。

0