Springcloud
1. 怎么实现负载均衡 nginx,lvs,F5
Springcloud 中用ribbon负载均衡
2. 什么是springcloud 一套完美微服务解决框架 rpc远程调用
3. Springcloud注册中心eureka rest作用:调用接口
4. Ribbon\feign负载均衡
5. Fegin客户端调用------接口方式调用
6. 接口网关nginx zuul 跨域, 路由,拦截参数
7. 断路器(hystrix)—服务雪崩效应,服务降级,熔断机制,限流
8. 分布式配置中心
2018-05-17
1. springcloud 常用的五种组件:1)eureka服务注册与发现,2)ribbon负载均衡,feign负载均衡,3)Hystrix断路器 4)zuul路由网关 5)springcloud config分布式配置中心
2. 什么是微服务:按martin fowler(马丁福勒)本人的说法:’就目前而言,对于微服务业界没有一个统一的,标准的定义’; 但通常而言,微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一的应用程序划分为一组小的服务,每个服务运行在其独立的自己的进程中,服务之间相互协调,互相配合,为用户提供最终价值.
3. Dubbo采用的通信机制 RPC springcloud采用http的restfulapl
4. 微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底的去耦合,每一个微服务提供单个业务功能的服务,一个服务做一件事,能够自行单独启动或销毁,拥有自己独立的数据库
5. 微服务和微服务架构 springcloud不同概念,微服务是其中的一个点,如56个民族,中的一个民族;微服务架构就如56个民族,是一个整体
6. 微服务优缺点: 优点:1)每个服务足够内聚,足够小,代码容易理解这样能聚集一个指定业务功能或业务需求;2)开发简单,开发效率提高,一个服务可能就是专一的只干一件事,3)微服务能够被小团队单独开发,4)微服务是松耦合的,部署阶段都是独立的;5)可以使用不同的语言开发;6)易于和第三方集成;7)微服务只是业务逻辑的代码,不会和html,css或其他界面组件混合. 缺点:1)开发人员要处理分布式系统的复杂性;2)多服务运维难度,随着服务的增加,运维的压力也在增大;3)系统部署依赖;4)服务间通信成本;5)数据一致性;6)系统集成测试;7)性能监控
7. 微服务技术栈:多种技术的几何体;
微服务条目 (落地技术)
服务开发 (springbool,spring,springMVC)
服务配置与管理 (netfix公司的archaius ,阿里的diamond)
服务注册与发现 (eureka,consul,zookeeper)
服务调用 (rest,RPC,gRPC)
服务熔断器 (hystrix,envoy)
负载均衡 (ribbon,nginx)
服务接口调用 (feign)
消息队列 (kafka,)
服务配置中心管理 (springCloudConfig,chef)
服务路由 (zuul)
服务监控 (zabbix)
服务部署 (docker)
8. springcloud,基于springboot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,
9. springboot专注于快速方便的开发单个个体微服务,
10. springcloud是关注全局的微服务协调整理框架,它将springboot开发的一个个单体微服务整合并管理起来, 与springboot属于依赖关系
11. springcloud与dubbo最大的区别:springcloud抛弃了dubbo的PRC通信,采用基于HTTP的rest方式
2018-05-29
<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
dependency>
org.apache.ibatis.annotations.Mapper
server: port: 8001 mybatis: config-location: classpath:mybatis/mybatis.cfg.xml #mybatis配置文件所在路径 type-aliases-package: com.example.microservicecloudproviderdept8001.entities #所有entity别名类所在包 mapper-locations: - classpath:mybatis/mapper/**/*.xml #mapper映射文件 spring: application: name: microservicecloud-dept datasource: type: com.alibaba.druid.pool.DruidDataSource #当前数据源操作类型 url: jdbc:mysql://localhost:3306/mpts_test #mysql驱动包 username: mpts_test #数据库名 password: mpts_test dbcp2: min-idle: 5 inital-size: 5 max-total: 5 max-wait-millis: 200
2018-06-09
Eureka出现一段红色语句
1.自我保护机制:好死不如赖活
可以使用eureka.server.enable-self-preservation=false禁用自我保护模式
2. @EnableDiscoveryClient //服务发现
2018.06.02
1,传统的ACID分别是什么
A(atomicity)原子性
C(consistency)一致性
I(isolation)独立性
D(durability)持久性
2.CAP
C:consistency 强一致性
A:availability 可用性
P:partition tolerance 分区容错性
现在的分布式系统,最多只能同时较好的满足两个
3.作为服务注册中心,eureka比zookeeper好在哪里?
著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性),A(可用性),和P(分区容错性),由于分区容错性P是在分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡.
Zookeeper保证的是CP
Eureka则是AP\
Eureka可以很好的应对因网络故障导致部分节点失去联系的情况,而不会像zookeeper那样是整个注册服务瘫痪,
4.LB(负载均衡)集中式LB 进程式LB
集中式LB:即在服务的消费方和提供方之间使用独立的LB设施,(可以是硬件,如F5,也可以是软件,如nginx),由该设施负责把访问请求通过某种策略转发至服务的提供方.
进程式LB:将LB逻辑集成到消费方,消费方从服务注册中心获知有哪些地址可用,然后自己再从这些地址中选择一个合适的服务器,ribbon就属于进程式LB,它只是一个类库,集成与消费方进程,消费方通过它来获取到服务提供方的地址
5.spring cloud ribbon 负载均衡 @LoadBalanced 开启
6.feign 是一个声明式的web服务客户端,使得编写web服务客户端变得非常容易,只需要创建一个接口,然后在上面添加注解既可.
简化了使用spring cloud ribbon时,自动封装服务客户端的开发量.
Feign集成了ribbon
7.hystrix 是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时,异常等,hystrix能够保证在一个依赖出现问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性.
“断路器”本身是一种开关装置,当某个服务单元发生故障之后,通过断路器的故障监控,向调用方返回一个符合预期的,可处理的备用响应(fallBack),而不是长时间的等待或抛出调用方无法处理的异常,这样就保证了服务调用方的线程不会被长时间的占用,从而避免了故障在分布式系统中蔓延,乃至雪崩.
功能:服务降级,服务熔断,服务限流,监控
服务降级是在客户端,与服务端没关系
20180603
1.hystrix 还提供了准实时的调用监控(hystrix dashboard),
2.zuul服务还是会注册进eureka 提供=代理+路由+过滤三大功能
https://github.com/Netflix/zuul/wiki
3.springcloud config 为微服务架构中的微服务提供集中式的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置,
Springcloudconfig分为服务端和客户端两部分
https://github.com/yanpengg/microse-config.git
4.在本地 装git 1.建新文件夹2.将git上的项目路径 在git命令 1.git clone 路径
2.git status 查看状态
提交命令 1.git add . 2.git commit -m “提交说明” 3.git push origin master
5. Zipkin
以前的@EnableZipkinServer
已经被打上了@Deprecated