####微服务CAP
Consistency(数据强一致性),Availability(服务可用性),Partition-tolerance(分区容错)
####微服务功能
#####服务的注册与发现
Eureka集中化管理来注册和发现服务,服务注册中心通过心跳检测,检查被注册的服务是否可用
#####容错
熔断器Hystrix(Circuit Breaker),当请求失败次数超过阈值后,开启熔断不执行业务操作,执行快速失败,直接返回请求失败的消息;自我修复机制,一段时间后,会半打开熔断器检查一部分请求是否正常。
+ 将资源剥离,当出现故障时,只会隔离该接口;被隔离的接口执行快速失败,不会阻塞超时
+ 服务降级,当超过服务处理能力时,
+ 自我修复能力

负载均衡组件

Ribbon讲请求根据负载均衡策略分配到不同实例中

服务网关

Zuul把所有服务的API接口资源整合,对外透明;可以做身份权限的合法性验证;流量监控

服务链路追踪

Sleuth定位复杂复杂系统中出错的位置,实时观察链路的调用情况

安全控制

Security


####Boot
引导,快速启动spring应用
####@SpringBootApplication
SpringBootApplication启动类注解包括了多个注解,是一个符合注解的简写,主要包括@Configuration,@EnableAutoConfiguration,@ComponentScan
####@EnableAutoConfiguration
自动获取所有配置
####配置方式优先级
高优先级会覆盖低优先级的配置项
+ 命令行参数
+ 系统环境变量
+ 位于文件系统中的配置
+ 位于classpath中的配置
+ 代码中的配置

spring-boot-starter-web

讲spring-boot-starter-web加入到依赖中,就可以用内置的tomcat启动web应用

SOA和微服务

SOA喜欢重用,微服务喜欢重写

微服务的注册与发现

同一个微服务启动多个实例形成集群,让服务器集群作为一个逻辑服务主体对外提供服务,这个过程就是注册(Service Registry)。

服务访问者(Service Accessors)如何访问到这个逻辑服务主体的过程,就是发现

集群日志

ELK(ElasticSearch,Logstash,Kibana),es对对于高频写入没有很高的承受力,可以用kafka当做数据采集的缓冲区,减轻写入es的负担

ribbon的LoadBalanced

restTemplate.getForObject的请求url是生产者的yml里的spring.application.name


####server配置
```
server:
port: 8761

eureka:

instance:

hostname: localhost

client:

register-with-eureka: false

fetch-registry: false

service-url:

defaultZone: http://\({eureka.instance.hostname}:\){server.port}/eureka/

####启动eureka-server,访问server端
<img style="width:800px;height:400px" src="https://img2018.cnblogs.com/blog/841731/201903/841731-20190316201254974-746091965.png" align=center />
<img style="width:800px;height:400px" src="https://img2018.cnblogs.com/blog/841731/201903/841731-20190316195540326-237600615.png" align=center />
####eureka多client配置,2个生产者的配置文件
application-client1.yml,application-client2.yml

server:

port: 8762

spring:

application:

name: eureka-client

eureka:

client:

service-url:

defaultZone: http://localhost:8761/eureka


server:

port: 8763

spring:

application:

name: eureka-client

eureka:

client:

service-url:

defaultZone: http://localhost:8761/eureka

####读取不同的配置,启动2个客户端
java -jar target/eureka-client.jar --spring.profiles.active=client1
java -jar target/eureka-client.jar --spring.profiles.active=client2 ####访问2个client端地址,输出测试数据和启动端口

http://localhost:8762/hi?name=test

http://localhost:8763/hi?name=fore

Hi,test!I am from port 8762

Hi,test!I am from port 8763

####查看eureka-server的注册中心
<img style="width:800px;height:400px" src="https://img2018.cnblogs.com/blog/841731/201903/841731-20190316201809542-381591445.png" align=center />
####consumer的配置,启动LoadBalanced实现访问生产者的负载均衡

server:

port: 8764

spring:

application:

name: eureka-ribbon-client

eureka:

client:

service-url:

defaultZone: http://localhost:8761/eureka


####请求consumer的接口,发现输出的端口号在2个生产者之间切换

http://127.0.0.1:8764/getHi

Hi,test!I am from port 8762

Hi,test!I am from port 8763

####查看eureka-server的注册中心
<img style="width:800px;height:400px" src="https://img2018.cnblogs.com/blog/841731/201903/841731-20190316202614202-1346654588.png" align=center />

SpringBoot和微服务的更多相关文章

  1. 3 SpringBoot与微服务

    SpringBoot的使用? 化繁为简: Spring MVC 需要定义各种配置,配置文件多. SpringBoot的核心功能? 独立运行: java -jar XXX.jar (以前启动SPring ...

  2. SpringBoot之微服务日志链路追踪

    SpringBoot之微服务日志链路追踪 简介 在微服务里,业务出现问题或者程序出的任何问题,都少不了查看日志,一般我们使用 ELK 相关的日志收集工具,服务多的情况下,业务问题也是有些难以排查,只能 ...

  3. 02【熟悉】springboot和微服务的介绍

    1,springboot简介 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程. 该框架使用了特定的方式来进行配置,从 ...

  4. 看了 Spring 官网脚手架真香,也撸一个 SpringBoot DDD 微服务的脚手架!

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 为什么我们要去造轮子? 造轮子的核心目的,是为了解决通用共性问题的凝练和复用. 虽然 ...

  5. 什么是SpringBoot,微服务

    Spring是如何简化Java开发的 为了降低Java开发的复杂性,Spring采用了以下4种关键策略: 1.基于pojo的轻量级和最小侵入性编程:   2.通过IOC,依赖注入(DI)和面向接口实现 ...

  6. springboot+springcloud微服务项目全套资料(笔记+源码+代码)

    最近好几天没有写博客了,由于时间的太忙了,项目要做.各种资格证要考试,实在没有时间写了,今天正好赶上有闲暇的一刻,应许多的爱好者的要求发一份微服务项目的资料,此资料十分完整,且是最新的.希望各位读者能 ...

  7. springboot启动微服务项目时,启动后没有端口号信息,也访问不了

    2018-06-05 13:43:42.282 [localhost-startStop-1] DEBUG org.apache.catalina.core.ContainerBase - Add c ...

  8. SpringBoot 快速构建微服务体系 知识点总结

    可以通过http://start.spring.io/构建一个SpringBoot的脚手架项目 一.微服务 1.SpringBoot是一个可使用Java构建微服务的微框架. 2.微服务就是要倡导大家尽 ...

  9. 面试刷题37:微服务是什么?springcloud,springboot是什么?

    面试中被问到为什么要使用微服务架构?springcloud的核心组件有哪些? 拿我们国家的兵种来说,如何把战争这个单体架构微服务化,就是根据适用的场景,拆分出不同的兵种(微服务) 然后每个兵种之间通过 ...

随机推荐

  1. nginx client ip配置

    server { listen 80; server_name localhost; location /{ root html; index index.html index.htm; proxy_ ...

  2. java8 write file 写文件

    1.用BufferedWriter写入文件 //Get the file reference Path path = Paths.get("c:/output.txt"); //U ...

  3. input输出类型

    http://www.w3school.com.cn/html5/html_5_form_input_types.asp

  4. SMTP——MIME

    MIME 基础知识 MIME 表示多用途 Internet 邮件扩允协议.MIME 扩允了基本的面向文本的 Internet 邮件系统,以便可以在消息中包含二进制附件. MIME 信息由正常的 Int ...

  5. Ubuntu 14.04 Nvidia显卡驱动安装及设置

    更换主板修复grub 引导后,无法从Nvidia进入系统(光标闪烁), 可能是显卡驱动出了问题. 1. 进入BIOS设置, 从集成显卡进入系统 将显示器连接到集显的VGI口, 并在BIOS中设置用集显 ...

  6. 读后感+资源-----java8函数式编程pdf

    花了两周时间工作之余抽空读完了这本书,对lamdba以及java的理解又有了一个新的认识(装个逼,哈哈) 以前看视频学习的还是太基本了,感觉读书更容易理解背后的设计思想和编程思路 这本书还是挺不错,就 ...

  7. Linux下编译安装qemu和libvirt【转】

    转自:http://www.cnblogs.com/findumars/p/5679742.html 目录 [hide] 1 安装qemu 1.1 qemu介绍 1.2 下载源文件 1.3 编译安装 ...

  8. shell 数组基础->

    数组其实也算是变量, 传统的变量只能存储一个值, 但数组可以存储多个值. 普通数组:只能使用整数 作为数组索引 [有序 0 1 2 3 4 ]关联数组:可以使用字符串 作为数组索引 [无序 name ...

  9. 转载:Github项目解析(七)-->防止按钮重复点击

    不错的东西,记录下... http://46aae4d1e2371e4aa769798941cef698.devproxy.yunshipei.com/qq_23547831/article/deta ...

  10. Flask:abort()函数

    Windows 10家庭中文版,Python 3.6.4,Flask 1.0.2 abort()函数用于提前退出(Google翻译abort)一个请求,并用指定的错误码返回. 函数原型如下: flas ...