微服务架构与springcloud

项目修改计划
1.创建parent父项目,方便其他pom继承 (y)
2.集群2个注册中心(注意host修改) (y)
3.集群2个service(p1多复制几个再注册就好) (y)
4.用openFeign做负载均衡 (n)

在这里插入图片描述这一项项服务就是微服务,springcloud的作用就是调度与监控这些服务。
springcloud的版本按照A-Z命名
springcloud与springboot有对应的版本限制
(springcloud推荐的springboot版本与springboot对应的springcloud版本不一样,取交集)
在这里插入图片描述controller调service调dao
浏览器对post支持不好
不同微服务之间互相调用可以通过resttemplate绑定url来访问(或者用@Feign)
公共的部分应该抽取出来做一个模块,然后用mavenclean与install来引入调用
约定大于配置,在正式编码之前应当先确定好规范。
在这里插入图片描述在这里插入图片描述在这里插入图片描述

eureka注册
服务注册
@EnableEurekaClient
修改yml

server:
  port: 8001

spring:
  application:
    name: cloud-provider-hystrix-payment

eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      #defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka
      defaultZone: http://eureka7001.com:7001/eureka

在这里插入图片描述成功注册
集群注册
在这里插入图片描述集群原理:互相注册,相互守望
在这里插入图片描述
最大的cloud下面的pom.xml会写入所有的微服务,相当于父工程

集群搭建
在这里插入图片描述C:\Windows\System32\drivers\etc
目的是为了让多个端口映射同一个地址
集群除了端口别的都一样
集群配置很简单,只需要在yml里对eureka进行对应的注册即可
@EnableDiscoveryClient
允许通过restful的方式自定义服务简介并返回,相当于了解服务
eureka自我保护
在这里插入图片描述
在这里插入图片描述
C是指多个微服务之间的数据同步
P是必须满足的
在这里插入图片描述
在这里插入图片描述
eureka自带ribbon
ribbon改变调度策略
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

不加ribbonclient默认轮询

在这里插入图片描述
feign用在消费端
在这里插入图片描述
在这里插入图片描述
openfeign默认最长等待时间1s

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

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

在这里插入图片描述

在这里插入图片描述客户端和服务端都可以使用,调用别人的服务同时自己做判断兜底。
在这里插入图片描述
在这里插入图片描述核心是三个状态,开启,关闭,半开。其中半开是不断尝试能否正常运行与恢复。
多次错误(自定义什么是错误)后熔断,在慢慢恢复(意味着恢复过程中正常的也不能使用)。
需要注意的是熔断期间调用的是fallback也就是服务降级的处理逻辑。
在这里插入图片描述
在这里插入图片描述加一个@globaltransaction改一些配置就可以了(分组,数据库ip端口号,密码)
配置文件的持久化很多解决方式是内嵌了一个数据库

UUID是JDK自带的可以保证唯一性,缺点是无序,不利于索引且过长不利于存储。

eureka搭建心得
1.版本第一,确保springcloud与springboot版本对应
2.eureka核心是service与client两者都可以进行集群,service负责管理,不需要注册自己,client需要注册自己
3.注意在sbmain上@eurekaClient与@eurekaService
4.编写对应的yml映射端口ip即可。

集群配置心得
service
单一配置可以用localhost,多个集群映射一个ip复杂的方法是建立虚拟机,简单的方法是改host映射,使得127.0.0.1同时映射多个ip
配置多个service会互相注册,最后再将client注册进多个service即可
defaultZone的名字映射:应当与修改配置文件的映射相对应,defaultZone全都一样
client
idea项目添加,在idea中cv然后修改artifactId并添加到父pom的中即可
在idea中rename com.**.**选择in current即可全部重命名
hystrix
在service中添加依赖于注解编写异常调用函数即可
@HystrixCommand(fallbackMethod = “paymentInfoTimeOutHandler”, commandProperties = {
@HystrixProperty(name = “execution.isolation.thread.timeoutInMilliseconds”, value = “5000”)
})
public String paymentInfoTimeOut(Integer id) {

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值