SpringCloud之注册中心Demo(服务注册治理SpringCloud Eureka) from 饭团霸霸叫杨少君

  1. 什么是服务治理
    在传统rpc远程调用中,服务与服务依赖关系,管理比较复杂,所以需要使用服务治理,管理服务与服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。

  2. 服务注册与发现
    在服务注册与发现中,有一个注册中心,当服务器启动的时候,会把当前自己服务器的信息 比如 服务地址通讯地址等以别名方式注册到注册中心上。
    另一方(消费者|服务提供者),以该别名的方式去注册中心上获取到实际的服务通讯地址,让后在实现本地rpc调用远程。


    rpc核心.png

    服务注册与发现原理.png

    负载均衡.png

    注册中心原理.png
  3. 注册中心环境搭建
    3.1 注册中心环境搭建
    3.1.1 Maven依赖信息 pom.xml

    org.springframework.boot
    spring-boot-starter-parent
    2.0.1.RELEASE





    org.springframework.cloud
    spring-cloud-dependencies
    Finchley.M7
    pom
    import






    org.springframework.cloud
    spring-cloud-starter-netflix-eureka-server





    spring-milestones
    Spring Milestones
    https://repo.spring.io/libs-milestone

    false



    3.1.2 application.yml
    ###服务端口号
    server:
    port: 8100
    ###eureka 基本信息配置
    eureka:
    instance:
    ###注册到eurekaip地址
    hostname: 127.0.0.1
    client:
    serviceUrl:
    defaultZone: http://{server.port}/eureka/
    ###因为自己是为注册中心,不需要自己注册自己
    register-with-eureka: false
    ###因为自己是为注册中心,不需要检索服务
    fetch-registry: false
    3.1.3 启动Eureka服务
    @EnableEurekaServer
    @SpringBootApplication
    public class AppEureka {
    public static void main(String[] args) {
    SpringApplication.run(AppEureka.class, args);
    }
    }
    3.2 注册服务提供者
    项目案例:实现会员服务(提供者)springcloud-2.0-member调用订单服务(消费者)springcloud-2.0-order
    3.2.1 服务提供者 会员服务
    application.yml

    服务启动端口号

server:
port: 8000

服务名称(服务注册到eureka名称)

spring:
application:
name: yangshaojun-member-app

服务注册到eureka地址

eureka:
client:
service-url:
defaultZone: http://localhost:8100/eureka

因为该应用为注册中心,不会注册自己

register-with-eureka: true

是否需要从eureka上获取注册信息

fetch-registry: true

@RestController
public class MemberController {
@RequestMapping("/getMember")
public String getMember() {
return "this is getMember";
}
}

@SpringBootApplication
@EnableEurekaClient
public class AppMember {
public static void main(String[] args) {
SpringApplication.run(AppMember.class, args);
}
}
3.2.2 服务消费者订单服务

服务启动端口号

server:
port: 8001

服务名称(服务注册到eureka名称)

spring:
application:
name: yangshaojun-order-app

服务注册到eureka地址

eureka:
client:
service-url:
defaultZone: http://localhost:8100/eureka

因为该应用为注册中心,不会注册自己

register-with-eureka: true

是否需要从eureka上获取注册信息

fetch-registry: true

@RestController
public class OrderController {
@Autowired
private RestTemplate restTemplate;

@RequestMapping("/getorder")
public String getOrder() {
    // order 使用rpc 远程调用技术 调用 会员服务
    String memberUrl = "http://yangshaojun-member-app/getMember";
    String result = restTemplate.getForObject(memberUrl, String.class);
    System.out.println("会员服务调用订单服务,result:" + result);
    return result;
}

}

@SpringBootApplication
@EnableEurekaClient
public class AppOrder {

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

@Bean
@LoadBalanced
RestTemplate restTemplate() {
    return new RestTemplate();
}

}

服务注册信息.png
  1. 注册中心集群搭建
    4.1 Eureka注册中心2个应用,在配置中互相注册自己。
    4.2 服务提供者和消费者分别将自己注册到2个注册中心。
WeChat Image_20190801004110.png

WeChat Image_20190801004303.png

WeChat Image_20190801004255.png

WeChat Image_20190801004308.png

WeChat Image_20190801004628.png

你可能感兴趣的:(SpringCloud之注册中心Demo(服务注册治理SpringCloud Eureka) from 饭团霸霸叫杨少君)