总结

1.总结eureka微服务创建的流程
导入相关依赖:

<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- 引入自己定义的api通用包,可以使用Payment支付Entity -->
        <dependency>
            <groupId>com.yousian</groupId>
            <artifactId>cloud-api-commons</artifactId>
            <version>${project.version}</version>
        </dependency>
    </dependencies>

设置application.yml文件

server:
  port: 7002
eureka:
  instance:
    hostname: eureka7002.com  # eureka 服务器的实例名称
  client:
    # false 代表不向服务注册中心注册自己,因为它本身就是服务中心
    register-with-eureka: false
    # false 代表自己就是服务注册中心,自己的作用就是维护服务实例,并不需要去检索服务
    fetch-registry: false
    service-url:
      #一定要注意这里的地址,这是搭建集群的关键
      defaultZone: http://eureka7001.com:7001/eureka/

最后在启动类上加上@EnableEurekaServer注解,开启eureka服务端

2.如何搭建eureka集群

先导入eureka相关依赖,创建两个eureka的application的启动类,在创建两个application.yml,
设置好之后两个application.yml的地址相互注册

3.服务提供方集群如何搭建
创建两个提供服务方,只需修改下resources下的application.yml文件。
第一个application.yml

在这里插入图片描述
第二个application.yml
在这里插入图片描述

4.RestTemplate如何使用?

@Configuration
public class MyConfig {

    //注入RestTemplate
    @Bean
    @LoadBalanced //指定restTemplate通过负载均衡的方式进行调用
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

@RestController
@Slf4j
public class OrderController {
    @Autowired
    RestTemplate restTemplate;
    //提供方的访问路径
    private static final String URL="http://cloud-payment-service";
    @GetMapping("consumer/payment/{id}")
    public CommonResult<Payment> findPaymentById(@PathVariable("id") Long id){
        CommonResult commonResult = restTemplate.getForObject(URL + "/payment/" + id, CommonResult.class);
        return commonResult;

5.简述eureka的自我保护模式? 如何配置其自我保护模式

Eureka Server在一定时间内没有接收到某个微服务实例的心跳,Eureka Server将会注销该实例(默认90秒)。但是当网络分区故障发生时,微服务与Eureka Server之间无法正常通信,因为此时微服务本身没有问题,Eureka不应注销此服务。当Eureka Server节点在短时间内丢失过多客户端时,可能发生了网络分区故障,那么这个节点就会进入自我保护模式。一旦进入该模式,Eureka Server就会保护服务注册表中的信息,不再删除服务注册表中的数据(也就是不会注销任何微服务)。当网络故障恢复后,该Eureka Server节点会自动退出自我保护模式。自我保护模式是一种对网络异常的安全保护措施。

6.什么是CAP理论? cp ap原则的含义

什么是CAP理论:分布式系统的最大难点,就是各个节点的状态如何保持一致。CAP理论是在设计分布式系统的过程中,处理数据一致性问题时必须考虑的理论。
CAP即:
Consistency(一致性)
Availability(可用性)
Partition tolerance(分区容忍性)

7.eureka 和zookeeper consul的区别?

	C:Consistency (强一致性)
	A:Available (可用性)
	P:Partition tolerance (分区容错性)
eureka
	CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强
zookeeper
	CP - 满足一致性,分区容错性的系统,通常性能不是特别高
consul	
	AP - 满足可用性,分区容错性的系统,通常可能对一致性要求低一些


8.使用ribbon进行负载均衡的步骤

第一、引入ribbon的依赖
第二、RestTemplate本身并没有负载均衡的功能,但是如果加上@LoadBalance注解就是可以实现负载均衡

9.ribbon负载均衡的策略有哪些?

1.随机 (Random)
2.轮询 (RoundRobin)
3.一致性哈希 (ConsistentHash)
4.哈希 (Hash)
5.加权(Weighted)
6.ILoadBalance 负载均衡器

10.如何自定义负载均衡
1.引入关键类 RibbonClientConfiguration
2.现在我们自定义一个Ribbon负载均衡的策略MyRule。在@ComponentScan所扫描的包下一级子包下。

	@Configuration
	public class MyRule {
	    @Bean
	    public IRule myRule() {
	        return new RandomRule();
	    }
	}`
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值