概述
本文参考资料
prometheus监控: https://github.com/prometheus/client_java/releases/tag/parent-0.5.0 spring官方文档: https://cloud.spring.io/spring-cloud-static/Edgware.SR5/single/spring-cloud.html https://github.com/Netflix/eureka/wiki/eureka-REST-operations
|
关于spring boot/cloud 1.X系列
spring.io在spring boot和springcloud推出之前,开源了很多的框架(见下文附录),但是除了spring framework自身,影响力都不够。直到spring boot、spring cloud系列框架推出,才成了spring框架的扩展中最有影响力的两个(或者说集大成者)。
Spring Boot的设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
通俗点理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了很多的jar包,比如散落在各处的spring框架:spring amqp、spring data redis client、spring web service,进而集大成。
Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具,例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁定,领导选举,分布式会话,集群状态。
从技术实现上来说,也是集成开源届的各种方案比如 client、rabbitmq client、eureka client。
eureka server配置
pom配置
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> <skipCheck>true</skipCheck> <!--指定版本号,防止有些环境是jdk7--> <jetty.version>9.2.19.v20160908</jetty.version> </properties>
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-netflix-eureka-server</artifactId> <version>1.4.0.RELEASE</version> </dependency> <!-- The prometheus client --> <dependency> <groupId>io.prometheus</groupId> <artifactId>simpleclient</artifactId> <version>0.5.0</version> </dependency> <!-- Hotspot JVM metrics--> <dependency> <groupId>io.prometheus</groupId> <artifactId>simpleclient_hotspot</artifactId> <version>0.5.0</version> </dependency> <dependency> <groupId>io.prometheus</groupId> <artifactId>simpleclient_servlet</artifactId> <version>0.5.0</version> </dependency> <!-- Exposition HTTPServer--> <dependency> <groupId>io.prometheus</groupId> <artifactId>simpleclient_httpserver</artifactId> <version>0.5.0</version> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Edgware.RELEASE</version> </dependency> </dependencies> </dependencyManagement>
|
application.yml配置
server: port: 8084 eureka: instance: hostname: ip地址 client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://ip地址:8084/eureka/
|
启动eureka和相应restful api操作
metrics入口(可被监控)
获取所有实例
手工注册实例
手工下架实例