Eureka总结

eureka微服务创建的流程

	1、创建项目
	2、引入pom依赖
	3、编写application.yml配置文件
	4、创建启动类

如何搭建eureka集群

1、添加域名
		进入C:\Windows\System32\drivers\etc\hosts
			添加172.0.0.1 eureka 7001.com  , 172.0.0.1 eureka 7002.com
2、创建第二个eureka项目
3、修改 7001eureka配置文件
4、修改 7002eureka配置文件

服务提供方集群如何搭建

1、创建第二个项目提供方 (内容一致,项目名称不一致)
2、引入pom文件  (一致)
3、创建application.yml配置文件(一致)
4、创建启动类
	(业务逻辑一致)

RestTemplate如何使用

1、注入RestTemplate
	@Bean
	public RestTemplate restTemplate(){
		// return new RestTemplate();
		return new RestTemplate(new OkHttp3ClientHttpRequestFactory());
	}
2、测试restTemplate的api方法
	@Autowired
    RestTemplate restTemplate;
    public static final String URL = "http://cloud-payment-service";
    //调用服务提供方   查询订单信息的方法
    @GetMapping("/consumer/payment/{id}")
    public CommonResult<Payment> findOrderById(@PathVariable("id") Long id){
        CommonResult commonResult = restTemplate.getForObject(URL + "/payment/" + id, CommonResult.class);
        return commonResult;
    }	

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

1、如果某一个为服务不再使用 不会立刻 踢出 而会等待默认时间结束(30)才会踢出
	server:
	    #关闭自我保护机制
	    enable-self-preservation: false
	    eviction-interval-timer-in-ms: 2000
	instance:
    instance-id: payment8001
    prefer-ip-address: true
    #Eureka分客户端向服务端发送心跳的时间间隔 单位为秒30秒
    lease-renewal-interval-in-seconds: 1
    #Eureka服务短向服务端发送心眺最后一次等待时间上线 默认90秒
    lease-expiration-duration-in-seconds: 2    

什么是CAP理论

CAP即:
	Consistency(一致性)	
		对于客户端每次操作,要么是读到是最新的数据 要么 读取失败
	Availability(可用性)
		任何客户端的请求都能得到响应数据 不会出现影响错我 一定会返回数据 但是不保证是最新数据
	Partition tolerance(分区容忍性)
		当任意数量的消息丢失或者延迟到达时 系统仍然鸡西提供服务 不会 挂掉 换句话说
		就是 我会一直运行 不管我的内部出现任何数据同步问题 强调的是不会挂掉

eureka 和zookeeper consul的区别

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

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

1、引入依赖
	spring-cloud-starter-netflix-eureka-client
2、在服务消费方开启负载均衡
	@Bean
	@LoadBalanced
	public RestTemplate getRestTemplate(){
		return new RestTemplate();
	}
3、8001和8002服务分别添加	

ribbon负载均衡的策略有哪些

Load Balance负载均衡是用于解决一台机器(一个进程)无法解决所有请求而产生的一种算法。像nginx可以使用负载均衡分配流量,ribbon为客户端提供负载均衡,dubbo服务调用里的负载均衡等等,很多地方都使用到了负载均衡

负载均衡有好几种实现策略,常见的有:
随机 (Random)
轮询 (RoundRobin)
一致性哈希 (ConsistentHash)
哈希 (Hash)
加权(Weighted)

如何自定义负载均衡

1、现在我们不使用Ribbon默认的负载均衡策略,自定义一个负载均衡策略。
	修改microcloudservice-consumer-dept-80的主程序类,加入注解
	@RibbonClient。
2、
	现在我们自定义一个Ribbon负载均衡的策略MyRule。这个自定义的配置类不能放在@ComponentScan所扫描的包下一级子包下,否则我们自定		义		的这个配置类就会被所有的Ribbon客户端所共享,也就是说我们达不到特殊化定制的目的。
	package com.gwolf.config;
	import com.netflix.loadbalancer.IRule;
	import com.netflix.loadbalancer.RandomRule;
	import org.springframework.context.annotation.Bean;
	import org.springframework.context.annotation.Configuration;
	@Configuration
	public class MyRule {
	    @Bean
	    public IRule myRule() {
	        return new RandomRule();
	    }
	}
3、
	在启动该微服务的时候就能去加载我们的自定义的Ribbon配置类,从而使配置生效。
	在启动类上自定义Ribbon负载均衡。
	@RibbonClient(name= "MICROCLOUDSERVICE-PROVIDER-DEPT",    configuration = MyRule.class)

4、@RibbonClient(name = "MICROCLOUDSERVICE-PROVIDER-DEPT",    configuration = MyRule.class)这个注解中的name代表的是自定义负	载均衡的是哪个提供者,configuration 代表使用的是哪个自定义的负载均衡类。

5、
现在我们程序有一个报错:Invalid bean definition with name 'myRule' defined in com.gwolf.config.MyRule: Bean name derived from @Bean method 'myRule' clashes with bean name for containing configuration class; please make those names unique!
这个是因为我们在ConfigBean中定义了一个相同的Bean名字。

6、
更改我们自定义MyRule返回的Bean的名字

7、
现在我们重新启动这个部门消费者,查看是否是随机访问的策略模式。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值