####微服务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. WPF让人哭笑不得的BUG

    前几天遇到了一个让我哭笑不得的bug,我写的Wpf程序在Win7里可以运行,到XP.WindowsServer里运行点击某个控件之后闪退,不报任何错,在后台代码里trycatch也捕捉不到任何异常.很 ...

  2. <转>Android APP字体大小,不随系统的字体大小变化而变化的方法

    从android4.0起系统设置的”显示“提供设置字体大小的选项.这个设置直接会影响到所有sp为单位的字体适配,所以很多app在设置了系统字体后瞬间变得面目全非.下面是解决方案 Resources r ...

  3. shell脚本安装部署反向代理 监控进程 计划任务

    1.编写脚本自动部署反向代理.web.nfs: 要求: I.部署nginx反向代理三个web服务,调度算法使用加权轮询: 反向代理服务器脚本配置脚本 #!/bin/bash #安装eple和nginx ...

  4. java 连接Kafka报错java.nio.channels.ClosedChannelExcep

    Java 客户端连接Kafka报如下错误 java.nio.channels.ClosedChannelExcep 是由于Kafka server.properties中的advertised.hos ...

  5. pf

    here Pro 排列n个不同的数成为长度为p的序列 每两个相同的数之间至少要隔着m个数 求排列总方案数 Input 三个整数 n,m,p output 输出一个数字表示序列组成方法,由于结果可能很大 ...

  6. 差分约束系统+输出路径(I - Advertisement POJ - 1752 )

    题目链接:https://cn.vjudge.net/contest/276233#problem/I 题目大意:输入k和n,然后输入n行,每一次输入两个数,代表开端和结尾,如果这个区间内点的个数大于 ...

  7. Git的安装和使用(Linux)【转】

    转自:http://my.oschina.net/fhd/blog/354685 Git诞生于Linux平台并作为版本控制系统率先服务于Linux内核,因此在Linux上安装Git是非常方便的.可以通 ...

  8. 金蝶K3WISE常用数据表

    K3Wise 14.2 清空密码update t_User set FSID=') F ", ,P T #8 *P!D &D 80!N &@ <0 C '+''''+' ...

  9. Oracle基础结构认知—初识oracle【转】

    Oracle服务器(oracle server)由实例和数据库组成.其中,实例就是所谓的关系型数据库管理系统(Relational Database Management System,RDBMS), ...

  10. 四、Springboot Debug调试

    描述: 在使用maven插件执行spring-boot:run进行启动的时候,如果设置的断点进不去,要进行以下的设置. 1.添加jvm参数配置 在spring-boot的maven插件加上jvmArg ...