《istio-in-action 系列》 6. 使用 DestinationRule Subset 进行路由分组(版本控制)

使用 DestinationRule Subset 进行路由分组(版本控制) 当一个程序并行发布多个版本的时候, 如 prod-v1 / prod-v2 1 2 3 4 5 kgd NAME READY UP-TO-DATE AVAILABLE AGE toolbox 1/1 1 1 3d22h prod-v1 1/1 1 1 16m prod-v2 1/1 1 1 16m // 两个版本的测试结果, 仅定义为 version 不一致 { "data": { "Name": "istio in action", "Price": 300, "Reviews": null }, "version": "v2.0.0" // "version": "v1.0.0" } k8s Service 依旧实现最根本的 服务级别的 Selector。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16……

阅读全文

《istio-in-action 系列》 8. VirtualService 使用 header 重写路由

VirtualService 使用 header 重写路由 在 istio 中, 除了 path 之外还可以使用 Header 进行路由规则管理。 为了更好的展示 header 路由效果, 这里配合使用了 uri 的精确匹配模式。 实现之后, 只能访问地址 http://istio.tangx.in/ , 其他均为 404。 具体哪个服务应答, 完全根据 header 匹配选择。 效果如下: 使用 Header 匹配有几个必要条件 Header 的 key 只能包含 小写字母 和 连字符 -。 从实际测试……

阅读全文

gorm 数据库表模型声明 - 基础

gorm 数据库表模型声明 - 基础 链接数据库 1 2 3 4 5 6 7 8 9 10 import ( "gorm.io/driver/mysql" "gorm.io/gorm" ) func main() { // refer https://github.com/go-sql-driver/mysql#dsn-data-source-name for details dsn := "user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local" db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) } 常用字段类型与 gorm 默认字段类型 varchar, int, datetime, timestamp 表定义如下 1 2 3 4 5 type Author struct { gorm.Model Name string Password string } auto migrate 后, 可以看到 name, password 默认使用的是 longtext 类型。 1 2 3 4 5 6 7 8 9 10 11 12 show create table authors; CREATE TABLE `authors` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `created_at` datetime(3) DEFAULT NULL, `updated_at` datetime(3) DEFAULT……

阅读全文

golang deepcopy 的两种实现方式

Golang 实现深拷贝(DeepCopy)的两种方式 如果在 公众号 文章发现状态为 已更新, 建议点击 查看原文 查看最新内容。 状态: 未更新 原文链接: https://typonotes.com/posts/2021/12/14/golang-struct-interface-deepcopy/ golang deepcopy 的两种实现方式 最近在基于 gin 封装 rum-gonic - github web 框架的过程中,遇到了一个问题。 在注册路由的时候传递是 指针对象, 因此造成所有的 request 请求使用相同的 CreateUser 对象, 出现并发……

阅读全文

Mysql 外键

Mysql 外键 如果说 mysql 中的 left/right/out join 查询 软链接 关系, 只是通过看似有关系的字段把两张表聚合在一起。 那么 foreign key 就是 硬连接 , 实实在在把两张表聚合在一起。 如果数据的字段的值 不符合 所连接表, 将不允许输入 插入或修改 数据。 创建外键 准备环境 1 2 3 4 5 6 7 create database day123 default charset utf8 collate utf8_general_ci; use day123; create table depart( id int not null primary key auto_increment, name varchar(32) not null ) default charset=utf8; 创建……

阅读全文

mysql 查询操作

mysql 查询操作 初始化环境 创建数据库, 1 2 3 4 -- create database create database day111 default charset utf8 collate utf8_general_ci; use day111; 创建用户表 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 -- create table user create table user ( id int not null primary key auto_increment, name varchar(6) not null, password varchar(32) not null, age int, salary int null default 0, depart_id int not null ) default charset=utf8; -- insert into `user` (name, `password`, age, salary,depart_id) values ("诸葛亮","zhuge123",3……

阅读全文

mysql table 操作

Mysql - table 操作 创建数据库 1 create database 数据库名 default charset utf8 collate utf8_general_ci; 查看所有表 1 show tables; 创建数据表 1 2 3 4 5 6 7 8 9 10 11 12 13 create table 表名( 列名 类型, 列名 类型 ) default charset=utf8; --- create table user ( id int not null auto_increment primary key, -- 不允许为空,主键, 自增 name varchar(16) not null, -- 不允许为空 email varchar(32) null, -- 允许为空, 长度为 32 age int default 3 -- 默认值 ) default charset=urf8; 注意 : 一张表只能 有且只有一个 自增列……

阅读全文

Mysql 常见数据类型 int char timestamp

Mysql 数据类型 https://dev.mysql.com/doc/refman/5.7/en/data-types.html 整数类型 1 2 3 4 5 6 7 8 mysql root@localhost:db1> create table table_int( int_no int unsigned, biging_no bigint, tinyint_no tinyint ) default charset=utf8; Query OK, 0 rows affected Time: 0.028s int 取值范围 -2^31 ~ 2^31-1 unsigned : 取之范围 0 ~ 2^32-1 bigint 取值范围 -2^63 ~ 2^63-1 tinyint 取值范围 -128 ~ 127 小数类型 Float 使用 32位浮点数保存。 不精确。 Double 使用 64 位浮点数保存。 不精确。 Decimal decimal 精确的小数值, m 数字的总个数(负号部分不算, 含 小数部分); d……

阅读全文

Mysql 基础练习 01

Mysql 基础练习 01 根据表格创建数据库表,注意编码。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 create database db01 default charset utf8 collate utf8_general_ci; use db01; create table userinfo ( id int not null auto_increment primary key, name varchar(32) not null, password varchar(64) not null, gender enum('male','female') not null, email varchar(64) not null, amount decimal(10,2) not null default 0, ctime datetime ) default charset=utf8; show tables; +----------------+ | Tables_in_db01 | +----------------+ | userinfo | +----------------+ 1 row in set 插入任意五条数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26……

阅读全文

K8S 中被挂载的 Configmap 发生了变化容器内部会发生什么

K8S 中被挂载的 Configmap 发生了变化容器内部会发生什么 1. 使用 env 挂载 被挂载的值不会变 1 2 3 4 5 6 7 env: # 定义环境变量 - name: PLAYER_INITIAL_LIVES # 请注意这里和 ConfigMap 中的键名是不一样的 valueFrom: configMapKeyRef: name: game-demo # 这个值来自 ConfigMap key: player_initial_lives # 需要取值的键 使用 volumeMounts 挂载目录 在使用 volumeMounts 挂载的时候, 根据是否有 subpath 参数, 情况也不一样。 2.1 没有 subpath 挂载目录 1 2 3 volumeMounts: - name: config mountPath: "/config/normal-dir/some-path/"……

阅读全文

福利派送

  • (免费星球)「运维成长路线」

  • 又拍云免费 CDN

最近文章

分类

标签

其它