Spring Cloud

nacos配置管理与服务发现

守給你的承諾、 提交于 2020-05-06 12:48:44
maven配置 父pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.ivan</groupId> <artifactId>pinellia</artifactId> <packaging>pom</packaging> <version>1.0.0-SNAPSHOT</version> <modules> <module>pinellia-common</module> <module>pinellia-service</module> <module>pinellia-service-api</module> <module>pinellia-auth</module> <module>pinellia-gateway</module> <

Spring:Spring-Cloud家族的相关学习笔记

巧了我就是萌 提交于 2020-05-06 12:46:09
前言、Spring-Cloud家族相关 注册中心:Eureka(停止更新,不建议使用)、Zookeeper、Consul、Nacos(阿里巴巴提供的技术),个人觉得可以优先考虑Nacos,其次是Zookeeper 服务调用:Ribbon、LoadBalancer、Feign(停止更新,不建议使用)、OpenFeign 服务降级:Hystrix(不建议)、Resilience4j(国内不流行)、Spring Cloud Sentienl(阿里巴巴提供的技术,推荐使用) 服务网关:Zuul(不建议使用)、GateWay(Spring自己的) 服务配置:Config、Nacos(推荐) 服务总线:Bus、Nacos(推荐) 建议参考网站(还是比较完整的,而且时中文文档,方便阅读): https://www.springcloud.cc/spring-cloud-dalston.html#_features 笔者写一大堆应该也没有人有耐心看吧,直接上源码 ,希望可以帮到各位 https://gitee.com/suyujie/spring-cloud-test Alibaba相关的技术很多都在工具配置里了,不得不说,确实牛逼,解决了不少配置文件上的麻烦,各位可以到Nacos、Sentinel官网上下载工具试试吧 一、CAP原则 CAP原则又称CAP定理,分别指的是Consistency

spring cloud系列教程第一篇-介绍

北慕城南 提交于 2020-05-06 11:09:26
spring cloud系列教程第一篇-介绍 前言: 现在Java招聘中最常见的是会微服务开发,微服务已经在国内火了几年了,而且也成了趋势了。那么,微服务只是指spring boot吗?当然不是了,微服务需要治理,需要监控等等一系列的组件。这就诞生了spring cloud。从本篇开始,凯哥(凯哥Java:kaigejava)将和大家分享spring cloud系列教程。凯哥将和大家分享2020年之前的spring cloud热门技术。还要会和大家分享2020年比较火的spring cloude Alibaba相关的组件。好了,我们言归正传. 本文主要内容:1:微服务介绍;2:分布式体系常用的几个维度;3:spring cloud以及2020年开始升级的替代技术。 本文是由凯哥(凯哥Java:kagejava)发布的《spring cloud系列教程》教程的第一篇:《spring cloud系列教程第一篇-介绍》。 一:微服务介绍: Martin Fowler在2014年3月份对微服务的定义: 翻译: 微服务架构是一种架构模式,它提倡将单一的应用程序划分成一组小的服务,服务之间相互协调、相互配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务之间采用轻量级的通信机制相互协作(通常是基于HTTP协议的restful API).每个服务都围绕着具体业务进行构建

SpringCloud系列六:Feign接口转换调用服务(Feign 基本使用、Feign 相关配置)

筅森魡賤 提交于 2020-05-06 10:43:28
声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅。 1、概念:Feign 接口服务 2、具体内容 现在为止所进行的所有的 Rest 服务调用实际上都会出现一个非常尴尬的局面,例如:以如下代码为例: Dept dept = this .restTemplate .exchange(DEPT_GET_URL + id, HttpMethod.GET, new HttpEntity<Object>( this .headers), Dept. class ) .getBody(); 所有的数据的调用和转换都必须由用户自己来完成,而我们本身不擅长这些,我们习惯的编程模式是: 通过接口来实现业务的操作,而不是通过具体的 Rest 数据。 2.1、Feign 基本使用 为了方便起见现在将“microcloud-consumer-80”模块复制为了“microcloud-consumer-feign”模块。 1、 【microcloud-consumer-feign】为了可以使用到 feign 支持,需要修改 pom.xml 配置文件,引入相关依赖包: < dependency > < groupId > org.springframework.cloud </ groupId > < artifactId > spring-cloud-starter-feign </

Spring Cloud Feign 使用方法与性能优化

限于喜欢 提交于 2020-05-06 10:43:10
1. feign自定义Configuration和root 容器有效隔离。 用@Configuration注解 不能在主@ComponentScan (or @SpringBootApplication)范围内,从其包名上分离 注意避免包扫描重叠,最好的方法是明确的指定包名 2. Spring Cloud Netflix 提供了默认的Bean类型: Decoder feignDecoder: ResponseEntityDecoder (which wraps a SpringDecoder) Encoder feignEncoder: SpringEncoder Logger feignLogger: Slf4jLogger Contract feignContract: SpringMvcContract Feign.Builder feignBuilder: HystrixFeign.Builder 3. Spring Cloud Netflix没有提供默认值,但仍然可以在feign上下文配置中创建: Logger.Level Retryer ErrorDecoder Request.Options Collection 4. 自定义feign的消息编码解码器: 不要在如下代码中getObject方法内new 对象,外部会频繁调用getObject方法。 1 2 3 4 5

实现java多线程的3种方式,99%人没用过第3种

核能气质少年 提交于 2020-05-06 10:26:20
实现多线程的3种方式 1、继承Thread类 看jdk源码可以发现,Thread类其实是实现了Runnable接口的一个实例,继承Thread类后需要重写run方法并通过start方法启动线程。 继承Thread类耦合性太强了,因为java只能单继承,所以不利于扩展。 2、实现Runnable接口 通过实现Runnable接口并重写run方法,并把Runnable实例传给Thread对象,Thread的start方法调用run方法再通过调用Runnable实例的run方法启动线程。 所以如果一个类继承了另外一个父类,此时要实现多线程就不能通过继承Thread的类实现。 3、实现Callable接口 通过实现Callable接口并重写call方法,并把Callable实例传给FutureTask对象,再把FutureTask对象传给Thread对象。它与Thread、Runnable最大的不同是Callable能返回一个异步处理的结果Future对象并能抛出异常,而其他两种不能。 示例代码 结果输出: Thread1 running... Thread2 running... Thread3 running... name:java,age:22 推荐去我的博客阅读更多: 1. Java JVM、集合、多线程、新特性系列教程 2. Spring MVC、Spring Boot

swagger2 接口文档,整个微服务接口文档

给你一囗甜甜゛ 提交于 2020-05-06 08:45:43
1,因为整个微服务会有好多服务,比如会员服务,支付服务,订单服务,每个服务都集成了swagger 我们在访问的时候,不可能每个服务输入一个url 去访问,看起来很麻烦,所以我们需要在一个页面上集成整个微服务项目中所有的 swagger 效果图:可以选择不同的应用,出来的是不同的swagger 接口文档 2,实现思路: zuul 网关 + swagger 客户端访问一个应用,zuul 网关转发到相应的界面,看起来是在一个服务上的效果 3,eureka :注册中心 springcloud-config:注册中心:路由转发用配置中心做的,没有写在本地。可以参考 springcloud-config 动态网关路由 springcloud-api-member-impl-service:在eureka 注册的服务是:app-aiyuesheng-member springcloud-api-order-impl-service:在eureka 注册的服务是:app-aiyuesheng-order springcloud-swagger2:swagger 服务 springcloud-zuul :zuul 网关服务 4, 第一步: member 服务 和 order ,zuul 需要添加maven 依赖: <dependency> <groupId>com.spring4all<

8-25 Hystrix两种应用场景介绍

孤人 提交于 2020-05-06 07:56:06
Hytrix在我们的表现层之外,再包装一层Command,也就是表现层在调其它层业务逻辑的时候,他就会把HystrixCommand再封装一层,根据你的隔离级别,再访问其他的业务情况,然后紧接着处理,处理后再返回,这是我们第一种场景。也就是HystrixCommand是写在表现层中的 另外一种场景,区别在于,下面的红框把整个表现层都包起来了。也就是当我们的请求从影厅服务出来就已经被HystrixCommand封装了。也就是说给你发出这个命令就是HystrixCommand里面的run方法,然后去调用了一次http请求,去访问你的表现层,。下面这种是在微服务在服务调用层去实现HystrixCommand,然后run方法是http请求去访问我们的表现层。但是往往我们都不会这么去写,比较常见的场景是将来我们会整合feign,feign本身就整合了HystrixCommand、 我们先来学的是下面这个。显示的创建HystrixCommand,这个在我们实际的应用场景中,主要在于在我们的框架中,没有集成整个Spring Cloud的生态环境,或者说我们没有其他的访问入口,那么这种情况下我们需要自己去创建HystrixCommand,也就是我们要单独使用Hystrix的时候才会这样去做。 结束 来源: oschina 链接: https://my.oschina.net/u/4305979

【原创】大话微服务中的边车模式

时光总嘲笑我的痴心妄想 提交于 2020-05-05 16:33:41
(以下故事纯属虚构,如有雷同纯属巧合) 概念 自从微服务的浪潮席卷了烟哥的公司之后,烟哥的领导内心蠢蠢欲动,指派烟哥去将公司的传统服务架构改成微服务架构!于是烟哥就喊上了小刘到了一个僻静的角落探讨如何实施! 烟哥:"小刘啊,去把公司那套 天霸动霸Tua 系统整整,接入注册中心,熔断器什么的,整成微服务架构!领导发话了,就用 java 里的 spring cloud 那些组件来做,有没有问题?" 只见小刘眼角闪过一丝泪花,说道:"有一个大大的问题! 天霸动霸Tua 系统中的 动霸Tua 应用是08年开发的,是用 php 写的!你让我怎么接入那些java的注册中心、熔断器啊..." 接下来自然就是: <img src="https://img2018.cnblogs.com/blog/725429/201902/725429-20190217132600336-448040374.jpg" style="width:500px"> 烟哥瞪了瞪眼,说道:"小刘啊,你知道什么是 边车(SideCar) 嘛?" 小刘说:"知道啊,就是如果只是单独一辆自行车只能坐一个人,可以给自行车加一个 边车(SideCar) ,扩展一下现有的功能,像下面这样" "嗯嗯,其实这个模式在微服务中也可以用的!你想啊,我们给 动霸Tua 应用做一个代理,然后呢,服务注册、鉴权、限流啊...这些功能都做在代理里

SpringBoot与SpringCloud的版本对应详细版

回眸只為那壹抹淺笑 提交于 2020-05-05 11:59:26
大版本对应: Spring Boot Spring Cloud 1.2.x Angel版本 1.3.x Brixton版本 1.4.x stripes Camden版本 1.5.x Dalston版本、Edgware版本 2.0.x Finchley版本 2.1.x Greenwich.SR2 在实际开发过程中,我们需要更 详细的版本对应:Spring 官方对应版本地址: ( https://start.spring.io/actuator/info ), 建议用firefox浏览器打开,你会看见格式化好了json信息: spring-cloud-dependencies 版本列表可查看: https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies spring-boot-starter-parent 版本列表可查看: https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent 在SpringCloud中,1.X和2.X版本在pom.xml中引入的jar包名字都不一样,比如有的叫spirng-cloud-starter-hystrix 有的叫spring