zoukankan      html  css  js  c++  java
  • Spring Cloud微服务的服务治理组件eureka(二)

    目录

    1. 背景

    2. eureka服务提供者搭建

    3. 高可用集群

     

    一、背景

      最初实现微服务的系统可能服务并不多,可以通过静态配置完成服务的调用,需要手工维护服务的清单。但是随着系统的发展,系统功能越来越复杂,相应的微服务应用也不断增加,静态配置越来越难以维护,随着不断的发展,我们的集群规模,服务位置,服务命名也会发生变化,如果还是通过手工维护,及易发生错误,和命名冲突,同时维护将大量消耗人力。为了解决微服务架构中服务实例维护问题。出现了大量的围绕服务注册,服务发现的自动化管理的微服务框架。

    • 服务注册:在服务治理框架中,通常会构建一个服务注册中心,每个服务单元向注册中心登记自己的服务,将主机、端口、版本号、和通信协议和一些附加信息告知注册中心。注册中心按服务名分类组织服务清单
    • 服务发现:服务治理框架下,通过服务名,发起请求调用实现,因此,服务消费方在调用服务提供方的接口时,并不知道具体的实例位置地址,服务调用方需要向注册中心咨询服务,湖区服务清单。

    二、eureka服务提供者搭建

      开发工具:idea

      1、File---> New ---> Project---->spring Initialzr  

     

    2、填写项目包名、项目名,继续NEXT

     

     3、选中Discovery Client和web模块、Next-->(选择项目目录)Finish

    4、项目生成后目录结构如下,其中controller为新建的包,其他文件及目录是默认生成的

     5、我们来看看pom.xml

    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>

    6、启动类加上EnableDiscoveryClient注解,自动化配置为服务治理的客户端

    @EnableDiscoveryClient
    @SpringBootApplication
    public class EurekaClientApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(EurekaClientApplication.class, args);
        }
    
    }

    7、application.properities配置

    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

     

    8、Controller提供服务请求入口。

     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 }

    9、点击以下图标启动服务

     出现以下日志代码启动成功

    10、访问注册中心localhost:1111,出现一个实例就是我们刚才注册的

    三、高可用集群

      另建一个项目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;
        }
    
    }

      至此,高可用服务提供方就搭建成功了。

      如果我看的更远,那是因为站在巨人的肩膀上!

    << 返回页首 >>

  • 相关阅读:
    VTK初学一,b_PolyVertex多个图形点的绘制
    VTK初学一,a_Vertex图形点的绘制
    Python基础学习之集合
    Apache
    NTP时间同步服务和DNS服务
    NFS服务及DHCPD服务
    samba服务及vsftpd服务
    Linux rpm和yum软件管理
    Linux网络技术管理及进程管理
    Linux RAID磁盘阵列
  • 原文地址:https://www.cnblogs.com/flyPenguinblog/p/13272192.html
Copyright © 2011-2022 走看看