最初实现微服务的系统可能服务并不多,可以通过静态配置完成服务的调用,需要手工维护服务的清单。但是随着系统的发展,系统功能越来越复杂,相应的微服务应用也不断增加,静态配置越来越难以维护,随着不断的发展,我们的集群规模,服务位置,服务命名也会发生变化,如果还是通过手工维护,及易发生错误,和命名冲突,同时维护将大量消耗人力。为了解决微服务架构中服务实例维护问题。出现了大量的围绕服务注册,服务发现的自动化管理的微服务框架。
开发工具:idea
1 <dependency> 2 <groupId>org.springframework.cloud</groupId> 3 <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> 4 </dependency> 5 <dependency> 6 <groupId>org.springframework.boot</groupId> 7 <artifactId>spring-boot-starter-web</artifactId> 8 </dependency>
@EnableDiscoveryClient @SpringBootApplication public class EurekaClientApplication { public static void main(String[] args) { SpringApplication.run(EurekaClientApplication.class, args); } }
1 server.port=8082 2 spring.application.name=eureka-client
#注册的服务中心的路径,这里注册了多个代表注册了一个服务中心集群 3 eureka.client.service-url.defaultZone=http://admin:123456@localhost:1111/eureka/,http://admin:123456@localhost:1112/eureka/ 4 #IP进行注册 5 eureka.instance.instance-id=${spring.application.name}:${spring.cloud.client.ip-address}:${server.port} 6 eureka.instance.preferIpAddress=true
1 @RestController 2 public class DemoController { 3 4 private static final Logger logger = LoggerFactory.getLogger(DemoController.class); 5 6 7 @RequestMapping(value = "/demo") 8 public String index(@RequestParam("name") String demo_name){ 9 return "Hello world|| I‘m "+demo_name; 10 } 11 12 }
出现以下日志代码启动成功
另建一个项目eureka-client2
项目依赖相同
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
配置类似,application一样,提供集群服务,端口不一样
server.port=8083 spring.application.name=eureka-client eureka.client.service-url.defaultZone=http://admin:123456@localhost:1111/eureka/,http://admin:123456@localhost:1112/eureka/ #IP进行注册 eureka.instance.instance-id=${spring.application.name}:${spring.cloud.client.ip-address}:${server.port} eureka.instance.preferIpAddress=true
@EnableDiscoveryClient @SpringBootApplication public class EurekaClient2Application { public static void main(String[] args) { SpringApplication.run(EurekaClient2Application.class, args); } }
@RestController public class DemoController { private static final Logger logger = LoggerFactory.getLogger(DemoController.class); @RequestMapping(value = "/demo") public String index(@RequestParam("name") String demo_name){ return "Hello world cleint2|I‘m "+demo_name; } }
至此,高可用服务提供方就搭建成功了。
如果我看的更远,那是因为站在巨人的肩膀上!
Spring Cloud微服务的服务治理组件eureka(二)
原文:https://www.cnblogs.com/flyPenguinblog/p/13272192.html