十个问题总结

1.总结eureka微服务创建的流程

在这里插入图片描述
在这里插入图片描述
引入pom依赖

  <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.jiahui</groupId>
            <artifactId>jiahui-api-commons</artifactId>
            <version>${project.version}</version>
        </dependency>
    </dependencies>

(3)编写application.yml配置文件
在这里插入图片描述
编写启动类
在这里插入图片描述
exclude = DataSourceAutoConfiguration.class
这个东西的意思就是自动配置数据源 要不然你自己在application.yml中加入数据源也可
在这里插入图片描述
@EnableEurekaServer
这个注解的意思就是开启服务
启动测试
启动测试,访问 7001 端口
在这里插入图片描述

2.如何搭建eureka集群

Eureka 集群的原理,就是 相互注册.两个都能狗使用互相利用执行
(1) 进入C:\Windows\System32\drivers\etc\hosts 添加如下:
在这里插入图片描述
集群一个项目肯定集群不了 再创建一个7002跟上面的pom文件一样
在这里插入图片描述
pom文件也一样

 <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.jiahui</groupId>
            <artifactId>jiahui-api-commons</artifactId>
            <version>${project.version}</version>
        </dependency>
    </dependencies>

这个时候 两个项目要相互利用 修改7001配置文件yml文件如下
在这里插入图片描述
这个时候 两个项目要相互利用 修改7002配置文件yml文件如下

在这里插入图片描述
分别启动两台eureka,开始看启动效果
在这里插入图片描述
在这里插入图片描述
eureka集群总结
对于eureka集群的总结如下
eureka集群采用的是更换ip地址来实现的 两个项目相互调用实现相互注册 他的url路径采用的是 key: value来实现的 利用server 端口指向其他server
就可以 实现eureka 之间的相互注册 从而实现eureak集群的搭建成功
在这里插入图片描述

3.服务提供方集群如何搭建

刚才搭建了eureka集群 其实服务方跟刚才那个集群表示一致
原理也差不多 先建服务方项目
在这里插入图片描述
这个项目的分层如下
在这里插入图片描述
业务代码直接拿以前写的8001即可
pom文件如下

 <dependencies>
        <!--eureka-client-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</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>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>
        <!--mysql-connector-java-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--jdbc-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.jiahui</groupId>
            <artifactId>jiahui-api-commons</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

还有appplication.yml配置文件 端口为81在这里插入图片描述
实现服务交互还有最重要的一步

在这里插入图片描述
在这里插入图片描述
服务集群搭建成功

4.RestTemplate如何使用?

指定restTemplate通过负载均衡调用

在这里插入图片描述

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

自我保护就是说 eurekaserver在一定时间内没有接收到某个微服务的跳
然后他就会消失 默认是90秒 当网络延时 或不好用的时候 他不会立即消失
会开启保护机制 给你保留 不会注销其微服务
在这里插入图片描述

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

cpa分为三个东西
一致性 可用性 和 分区容忍性
一致性就是 对客户端 每次读到的 就是最新的 要么就读取失败
要么返回给咱们一个绝对一致的数据 要么索性就不返回
一致性 强调的就是数据正确一致
可用性 就是比较中和的 任何请求都会得到数据,不会出现响应错误
可用性说到底就是可用 一定会返回数据 但不保证数据最新 强调的是
数据最新 不出错

容忍性:通过网络来实现 就是我可以容忍你 哪怕你信息丢失和延迟了
我都可以原谅 并返回数据 我会一直运行 不会挂掉 无论发生任何数据的同步,反正我不会挂

cp 和ap

只有当网络发生分区或失败时,才会在C和A之间做出选择。
ap:
这种方式其实是放弃了数据一致性。因为如果出现网络延迟,数据没有及时同步到从Mysql,那就导致了主Mysql值为李四,而从Mysql值为张三,导致数据不一致。但主从mysql照样可以提供服务,也就是保证了可用性A。
cp:
这种方式保证了数据一致性,因为主从mysql更新数据都成功才算成功,但网络出现问题时,主mysql无法访问从节点,导致写操作一直不成功。其实就是放弃了可用性,只满足CP原则,系统只能提供读服务。 只读

7.eureka 和zookeeper consul的区别?

Eureka:AP原则,无主从节点,一个节点挂了,自动切换其他节点可以使用,去中心化

Zookeeper和Consul :CP设计,保证了一致性,集群搭建的时候,某个节点失效,则会进行选举行的leader,或者半数以上节点不可用,则无法提供服务,因此可用性没法满足

如果要求一致性,则选择zookeeper、Consul,如金融行业
如果要去可用性,则Eureka,如电商系统

8.如何自定义负载均衡

在这里插入图片描述
在这里插入图片描述

x通过@LoadBalanced 注解实现随机访问

9…使用ribbon进行负载均衡的步骤

引入依赖
在这里插入图片描述

在服务消费方开启负载均衡

在这里插入图片描述
测试负债均衡
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
每次请求不一样 负债均衡就实现了

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

在这里插入图片描述
大概就这几种

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
现在我们重新启动这个消费者,查看是否是随机访问的策略模式。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值