01.微服务

1.微服务

大的应用拆分成小的模块 http restful api

2.微服务的自动化部署

1.单体项目 修改配置文件 打包上传 运行
2. 30个模块 生产环境 测试环境
12点发行版本 停服更新 不停服更新
ci/cd 持续集成持续交付环境 一点(运维)
jenkins

3.微服务的缺点

1.项目复杂
2.分布式事务问题
3.怎么拆
4.部署 不用自动化搭建麻烦

4.微服务(概念)与springcloud(实现)的关系

spring官方 Netflix alibaba 三个公司提供支持

  1. 常见的版本 HGI 有版本对应关系git查看版本关系

或者spring官方查看 springboot
alibaba提供了很多组件

6.要学习的对象 spring netflix alibaba

服务注册与发现 consul eureka nacos (可以混用)
负载均衡 ribbon dubbo
互相调用 openfeign dubbo
容错 hystrix sentinel
网关 gateway zuul
服务配置统一管理(管理配置文件,不用本地改了) config-server nacos apollo(美团技术点评,看看技术)
消息总线 bus
服务安全组件 security oauth2.0
服务监控 admin jvm
链路追踪 sleuth+zipkin

7.eureka是注册和发现中心
1.eureka和zookeeper的区别 cap原则
一致性consistency 多个机器的数据一样
可用性 当一个挂掉,服务能否使用
分区容错性 网络或机房不在同一地区(分区)
导致数据短暂的不一致
只能得2者 zookeeper: cp数据一致 一个服务挂了,几分钟需要恢复
eureka: ap数据不一致
8.eureka可以别人注册和自己注册主机(boot2.3.12.RELEASE cloud使用Hoxton.SR12)

   eureka-server
   eureka-client
   在项目文件键springboot项目找 eureka依赖 方便管理
  //什么叫dependencyManagement
  //什么properties可以管理依赖版本,没有用就不加依赖,可以管理版本号
  //写配置端口erueka默认的端口
  server:
      port :8761
 spring: 
      application:
            name: eureka-server #应用名称,不要特殊符号,会变大写
  //左边的笔可以改名称
  //启动类
    @EnableEurekaServer
    // 面板 DS Replicas 集群信息
   //instance currentlu 当前eureka注册的实例(真正的服务 信息)
   //up代表上线  down下线  后面跟着实例的id 
   //机器的主机名称:实例名字:端口
  //搞个客户端
   //选择依赖 web 和 eureka
  server:
      port :8080 #客户端对端口没有要求
   spring: 
      application:
            name: eureka-client-a
   #发注册信息,往哪里注册
   eureka:
         client:
               service-url:
                        defaultZone: http://localhost:8761/eureka
   #开启客户端功能,打印出来204说明成功了
      @EnableEruekaClient
   #一个注册2个端口 run configuration里面加
   #copy configuration 改名字 改端口
    program arguments --server.port=8083 
   

9.手写注册中心

 1.需要服务列表保存应用列表
 2.应用下线就列表需要把列表清理
       1.主动下线 向注册中心发信息下线
          
       2.被动下线 注册中心t下线
 3.应用和注册中心需要建立联系(心跳机制,发请求得响应)
      通过心跳缓存client其他节点访问块
   4.脏读问题(client b服务下线了,a会暂时不知道)
   5.同时间上大量服务不联系注册中心,则宁可放过一万不错杀一个

10.服务端配置文件

   eureka:
        server:
             eviction-internal-timer-in-ms :10000 #毫秒 10秒检查没有剔除client
             renewal-percent-threshold: 0.85 #续约百分比,85%不发心跳 他不剔除服务
        instance: #实例的配置
             instance-id:   ${eureka.instance.hostname}:${spring.application.name}:${server.port}   
             hostname:  localhost
             prefer-ip-address: true #以ip显示
             lease-renewal-interval-in-seconds: 5 #5秒续约自己server

11.客户端配置文件

   eureka:
        client:
             service-url:
                    defaultZone: http://localhost:8761/eureka
             register-with-eureka: true #不去注册中心注册
             fetch-registery: true #拉取服务列表到本地
             registry-fetch-interval-seconds: 10 #拉取列表时间
        instance:
             hostname: localhost #应用的主机名称
             prefer-ip-address: true #以ip显示
             instance-id:   ${eureka.instance.hostname}:${spring.application.name}:${server.port}   
             lease-renewal-interval-in-seconds: 10 #续约注册中心的时间
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值