Spring Cloud 与 K8s 的微服务设计(一)

Spring Boot 1.x 与 2.x 的区别

其实 Spring Boot 在一开始时,运用到的基本就是 Eureka、Config、Zuul、Ribbon、Feign、Hystrix 等。到了 Spring Boot 2.x 的时候,大量的组件开始风云崛起。下面简单列下这两个版本之间的区别如下。

Spring Boot 1.x 中,session 的超时时间是这样的:

server.session.timeout=3600

复制代码

而在 2.x 中:

server.servlet.session.timeout=PT120M

复制代码

截然不同的写法,cookie 也是一样的:

server:  servlet:    session:      timeout: PT120M      cookie:        name: ORDER-SERVICE-SESSIONID

复制代码

  • 应用的 ContextPath 配置属性改动,跟上面的 session 一样,加上了一个 servlet。

  • Spring Boot 2.x 基于 Spring 5,而 Spring Boot 1.x 基于 Spring 4 或较低。

  • 统一错误处理的基类 AbstarctErrorController 的改动。

  • 配置文件的中文可以直接读取,不需要转码。

  • Acutator 变化很大,默认情况不再启用所有监控,需要定制化编写监控信息,完全需要重写,HealthIndicator,EndPoint 同理。

  • 从 Spring Boot 2.x 开始,可以与 K8s 结合来实现服务的配置管理、负载均衡等,这是与 1.x 所不同的。

K8s 的一些资源的介绍

上面说到 Spring Boot 2.x 可以结合 K8s 来作为微服务的架构设计,那么就先来说下 K8s 的一些组件吧。

ConfigMap,看到这个名字可以理解:它是用于保存配置信息的键值对,可以用来保存单个属性,也可以保存配置文件。对于一些非敏感的信息,比如应用的配置信息,则可以使用 ConfigMap。

创建一个 ConfigMap 有多种方式如下。

1. key-value 字符串创建

kubectl create configmap test-config --from-literal=baseDir=/usr

复制代码

上面的命令创建了一个名为 test-config,拥有一条 key 为 baseDir,value 为 "/usr" 的键值对数据。

2. 根据 yml 描述文件创建

apiVersion: v1kind: ConfigMapmetadata:  name: test-configdata:  baseDir: /usr

复制代码

也可以这样,创建一个 yml 文件,选择不同的环境配置不同的信息:

kind: ConfigMapapiVersion: v1metadata:  name: cas-serverdata:  application.yaml: |-    greeting:      message: Say Hello to the World    ---    spring:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值