文档章节

spring-cloud Finchley.SR2版本 升级微服务到springboot 2.0

萌萌哒的小萝卜
 萌萌哒的小萝卜
发布于 01/03 15:10
字数 1116
阅读 90
收藏 0

读书笔记 spring-cloud Finchley.SR2版本 升级微服务到springboot 2.0

贴码云

https://gitee.com/imbobo_bo/angel-bo

欢迎fork star 本人开源项目

本文介绍的所有代码均再码云中,如果对你有帮助,欢迎点个star支持,谢谢

star fork

码云上的代码已经升级完成

1. 修改 SpringBoot 依赖 到 2.0.6

   <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

2. 修改 SpringCloud 依赖 到 Finchley.SR2

   <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.SR2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

3. SpringCloud 版本兼容 SpringBoot

https://spring.io/projects/spring-cloud看这里

4. Eureka依赖变更

	<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

5. hystrix依赖变更

	<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
        </dependency>

6. ribbon依赖变更

	<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
        </dependency>

7. zuul依赖变更

	<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
        </dependency>

8. feigen依赖变更

       <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

9. center 变更

由原来的

security:
	user:
	  name: angel
	  password: angel

变为了

spring:
    security:
      user:
        name: angel
        password: angel

10. ErrorController 依赖变更

再处理全局异常时依赖变更

org.springframework.boot.autoconfigure.web.ErrorController;
变为
import org.springframework.boot.web.servlet.error.ErrorController;

11. Eureka 认证

You can secure your Eureka server simply by adding Spring Security to your server’s classpath via spring-boot-starter-security. By default when Spring Security is on the classpath it will require that a valid CSRF token be sent with every request to the app. Eureka clients will not generally possess a valid cross site request forgery (CSRF) token you will need to disable this requirement for the /eureka/**

CSRF认证配置,不认证注册客户端

@EnableWebSecurity
class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().ignoringAntMatchers("/eureka/**");
        super.configure(http);
    }
}

12. spring-boot-admin 接入

看这个就可以了,但一定对应上版本 http://codecentric.github.io/spring-boot-admin/2.0.4/#_what_is_spring_boot_admin

. 看SpringCloud总结

.1 @RefreshScope

刷新bean属性

.2 @EnableDiscoveryClient

向注册中心注册服务,新版本可以自己实现 ServiceRegistry 向不同的注册中心注册,前提是要禁用自动注册autoRegister=false

.3 Retrying Failed Requests

将Spring-Retry 引入到classpath中

client.ribbon.MaxAutoRetries,

client.ribbon.MaxAutoRetriesNextServer,

client.ribbon.OkToRetryOnAllOperations

这些属性是关于retry的配置

*可以 spring.cloud.loadbalancer.retry.enabled=false 关闭这个功能*

.4 Ignore Network Interfaces

spring:
  cloud:
    inetutils:
      ignoredInterfaces:
        - docker0
        - veth.*
spring:
  cloud:
    inetutils:
      preferredNetworks:
        - 192.168
        - 10.0
You can also force the use of only site-local addresses, as shown in the following example: .application.yml		
spring:
  cloud:
    inetutils:
      useOnlySiteLocalInterfaces: true

.5 Why Is It so Slow to Register a Service

eureka.instance.leaseRenewalIntervalInSeconds

可以通过这个属性修改,小于30s 但坚持默认会更好,官网是这么说的

.6 在像Eureka注册时 可以设置Zone

eureka.instance.metadataMap.zone = zone1

eureka.client.preferSameZoneEureka = true

可以通过设置zone 可以让服务优先在同一个zone下查找

.7 ribbon 文档

https://github.com/Netflix/ribbon/wiki/Working-with-load-balancers#components-of-load-balancer

.8 Using Ribbon with Eureka 这个不是很明白

.9 配置zuul

9.1 看例子

https://github.com/spring-cloud-samples/sample-zuul-filters

9.2 可以为路由加上正则表达式

@Bean
public PatternServiceRouteMapper serviceRouteMapper() {
    return new PatternServiceRouteMapper(
        "(?<name>^.+)-(?<version>v.+$)",
        "${version}/${name}");
}

9.3 可以为路由配置指定服务器不加前缀

zuul:
  routes:
    users:
      path: /myusers/**
      stripPrefix: false

9.4 可以设置路由重试次数 retryable

If you set a default route (/), an application with @EnableZuulProxy could act as a standalone server. For example, zuul.route.home: / would route all traffic ("/**") to the "home" service.

9.5 如果设置default route (/) 则这个可以作为一个单独的服务,接受请求

9.6 在设置路由时,如果需要有顺序要求

zuul:
  routes:
    users:
      path: /myusers/**
    legacy:
      path: /**

9.7 要使用yaml配置,因为使用proterties时,顺序是无效的

9.8 敏感信息

zuul:
  routes:
    users:
      path: /myusers/**
      sensitiveHeaders: Cookie,Set-Cookie,Authorization
      url: https://downstream

sensitiveHeaders: Cookie,Set-Cookie,Authorization 是默认的,不会转发给下游服务 如果想向下游发送这些敏感信息,记得要清空这个 可以直接用zuul.sensitiveHeaders 设置全局的

9.9 zuul会增加一个默认的Endpoint

	GET /routes
	GET /routes/details.

可以通过endpoints.routes.enabled 来禁用

9.10 上传文件

有一个前缀 /zuul/*

hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 60000
ribbon:
  ConnectTimeout: 3000
  ReadTimeout: 60000

9.11 设置zuul servlet 默认是 /zuul 可以通过 zuul.servlet-path 来设置

9.12 zuul 启动时加载ribbon相关的上限文

zuul:
  ribbon:
    eager-load:
      enabled: true

.10 feign

@FeignClient(name = "stores", configuration = FooConfiguration.class)
public interface StoreClient {
    //..
}

这样可以让当前feign客户端使用配置,但是 这个FooConfiguration配置不能有@Configuration注解,否则会变成全局的配置,别切还不能呗@CompoentScan 或者其他注解扫描到

.11 fallbackFactory

@FeignClient(name = "hello", fallbackFactory = HystrixClientFallbackFactory.class)
protected interface HystrixClient {
	@RequestMapping(method = RequestMethod.GET, value = "/hello")
	Hello iFailSometimes();
}

@Component
static class HystrixClientFallbackFactory implements FallbackFactory<HystrixClient> {
	@Override
	public HystrixClient create(Throwable cause) {
		return new HystrixClient() {
			@Override
			public Hello iFailSometimes() {
				return new Hello("fallback; reason was: " + cause.getMessage());
			}
		};
	}
}

.12 feign logger

@Configuration
public class FooConfiguration {
    @Bean
    Logger.Level feignLoggerLevel() {
        return Logger.Level.FULL;
    }
}

© 著作权归作者所有

萌萌哒的小萝卜
粉丝 4
博文 56
码字总数 35757
作品 0
东城
私信 提问
学习 Spring Boot 知识看这一篇就够了

从2016年因为工作原因开始研究 Spring Boot ,先后写了很多关于 Spring Boot 的文章,发表在技术社区、我的博客和我的公号内。粗略的统计了一下总共的文章加起来大概有六十多篇了,其中一部分...

ityouknow
2018/05/28
0
0
Spring Blade 2.0 双版齐发,基于 AVue 的前端以及单工程版发布

SpringBlade 2.0 正式版发布后,大家对于 vue 版本的前端和 springboot 单工程版本呼声较高,所以榨干了自己的时间刚了两个版本出来!下面我们来看一下详细更新内容。 简介: SpringBlade 是...

smallchill
02/18
3.5K
13
Java B2B2C多用户商城 springboot架构-spring、springMvc、springBoot和springCloud的联系与区别

spring、springMvc、springBoot和springCloud的联系与区别 需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码请加企鹅求求 :二一四七七七五六三三 spring和springM...

it菲菲
2018/12/18
0
0
跟上时代学Springcloud之介绍(1)

1、概念 Springboot是一个快速开发框架,那Springcloud就是多个springboot框架的有序集合,基本和dubbo的功能差不多。 2、版本号 每一个Springcloud的版本号都对应一个Springboot的版本,至关...

木九天
2018/12/29
232
0
spring、springMvc、springBoot和springCloud的联系与区别

版权声明:本文为博主原创文章,如需转载,请标明出处。 https://blog.csdn.net/alan_liuyue/article/details/80656687 spring和springMvc: 1. spring是一个一站式的轻量级的java开发框架,...

尘光掠影
2018/06/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

作为一个(IT)程序员!聊天没有话题?试试这十二种技巧

首先呢?我是一名程序员,经常性和同事没话题。 因为每天都会有自己的任务要做,程序员对于其他行业来说;是相对来说比较忙的。你会经常看到程序员在发呆、调试密密麻麻代码、红色报错发呆;...

小英子wep
今天
12
0
【SpringBoot】产生背景及简介

一、SpringBoot介绍 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程,该框架使用了特定的方式来进行配置,从而使开发人员不再需要...

zw965
今天
4
0
简述并发编程分为三个核心问题:分工、同步、互斥。

总的来说,并发编程可以总结为三个核心问题:分工、同步、互斥。 所谓分工指的是如何高效地拆解任务并分配给线程,而同步指的是线程之间如何协作,互斥则是保证同一时刻只允许一个线程访问共...

dust8080
今天
6
0
OSChina 周四乱弹 —— 当你简历注水但还是找到了工作

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌 :#今日歌曲推荐# 分享成龙的单曲《男儿当自强》。 《男儿当自强》- 成龙 手机党少年们想听歌,请使劲儿戳(这里) @hxg2016 :刚在...

小小编辑
今天
3.3K
22
靠写代码赚钱的一些门路

作者 @mezod 译者 @josephchang10 如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。 今天给大家分享一个精彩的 GitHub 库,这个库整理...

高级农民工
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部