单环境,多分支并行开发方案(流量染色/istio)
需求 同一套环境, 两个微服务serviceA和serviceB, 且分别有2个版本original, v1 调用链路: serviceA -> serviceB 具体分为以下几种情况 如果serviceA和serviceB都有v1版本 serviceA(v1) -> serviceB(v1) 如果serviceA有v1版本, serviceB没有 serviceA(v1) -> serviceB(original) 如果serviceA没有v1版本, 而serviceB有 serviceA(original) -> serviceB(v1) 技术方案流量染色 什么是流量染色 在元数据中心(这里可以代指我们的k8s集群),维护每个环境对应的服务列表;在流量的入口处,对请求添加标识;在基础框架层,对流量标识进行解析、透传 和 服务路由。 实际操作一般是在我们的 HTTP 请求中,加入对应环境,用户等变量标识,使请求可以根据这些标识做分类,转发等操作 为什么需要流量染色 使不同的服务,共享环境 可以本地调试特定的服务,而不阻碍服务的正常运行 ...
SpringBoot集成JPA详细教程
SpringBoot集成SpringData JPA依赖引入SpringBoot项目工程,在pom.xml中引入相关依赖包即可: 12345678910<!-- 数据库相关操作 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope></dependency> 入口注解SpringData JPA提供了部分注解,可以添加在Application入口程序类上方,来满足相关诉...
Gradle
介绍Gradle 是google开发的基于groovy语言 ,用于代替 ant 构建的一种配置型语言 Gradle 是基于groovy语言实现(基于JVM的语法和java类似的脚本语言)的一个Android编译系统, google针对Android编译用groovy语言开发了一套 DSL 语言 有额外需要直接使用groovy,或者java代码解决 下载 / 安装地址: http://services.gradle.org/distributions/ 环境配置123456GRADLE_HOME={installed path}PATH=%GRADLE_HOME%\bin# 缓存依赖项/元数据/插件数据# 该属性的默认值根据平台不同而不同,Windows平台默认为C:\Users\用户名\.gradle,Linux和Mac平台默认为~/ .gradle。可以通过设置该属性来指定Gradle用户目录的位置# GRADLE_USER_HOME= 验证gradle -v 问题&解决办法记录Idea中gradle下载太慢解决办法项目名称\gradle...
Gradle插件篇
开发自定义Gradle插件Gradle插件是封装可重用的构建逻辑的一种方式,可以在许多不同的项目和构建中使用。Gradle允许您实现自己的插件,以便重用您的构建逻辑,并与他人共享。 您可以使用任何语言来实现Gradle插件,只要最终实现编译为JVM字节码即可。在我们的示例中,我们将在独立的插件项目中使用Java作为实现语言,在构建脚本插件示例中使用Groovy或Kotlin。通常情况下,使用静态类型的Java或Kotlin实现的插件将比使用Groovy实现的相同插件性能更好。 打包插件有几个地方可以放置插件的源代码。 构建脚本您可以直接在构建脚本中包含插件的源代码。这样做的好处是,插件会自动编译并包含在构建脚本的类路径中,无需进行任何操作。但是,插件在构建脚本之外不可见,因此您无法在定义插件的构建脚本之外重用该插件。 buildSrc项目您可以将插件的源代码放在rootProjectDir/buildSrc/src/main/java目录中(或rootProjectDir/buildSrc/src/main...
maven&gradle多环境
Gradle多环境配置目录结构 指定环境打包 application.yml/yaml/properties 执行 bootJar 打包命令前要先执行 clean【其它和 processResources 相关的命令也要先执行 clean】,否则 active 值不会变! 123spring: profiles: active: @activeProfile@ build.gradle 修改 processResources 任务123456789101112131415161718192021222324252627282930313233def activeProfile = project.properties['activeProfile'] ?: "dev"processResources { exclude { FileTreeElement details -> { (//排除不是当前环境的 yml 配置文件 details.fil...
maven常用插件(长期整理)
maven-compiler-plugin 这个插件是用来编译源代码的 例如报错static import declarations are not supported in -source 1.3 ,这是因为编译的时候默认是1.3版本.可以设定编译器的版本为1.6 target版本一定大于等于source版本 用法: 12345678910111213<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>...
Yapi接口文档系统
安装(Docker)源镜像:https://github.com/fjc0k/docker-YApi 修改后的版本:https://github.com/xwj-vic/yapi 文档介绍:https://blog.opendeveloper.cn/yapi/docker 参数配置可看:fjc0k/docker-YApi 12345678910111213141516171819202122232425262728293031323334353637version: '3'services: yapi-web: image: xuweijie1015/yapi:latest container_name: yapi-web ports: - 40001:3000 environment: # 此处必须配置为邮箱,详见:https://github.com/YMFE/yapi/issues/687 - YAPI_ADMIN_ACCOUNT=admin@eryajf.net - YAPI_...
Bigquery数仓调研
参考文档 使用变更数据捕获来流式插入表更新 :介绍利用流式API进行CDC操作 BigQuery流式API 简介 :该链接介绍了旧式insert和使用流式API的区别 BigQuery Storage API Client Libraries:流式API客户端library Data definition language (DDL) statements in GoogleSQL 通过 BigQuery API 集成加强数据集成!解释注意事项以及如何提高业务效率 数仓分层设计架构 BigQuery 变更数据捕获 (CDC) 使用 BigQuery 变更数据捕获 (CDC) 优化数据迁移 BigQuery Merge Api : 这个merge需要注意不是针对当次操作数据进行的merge BigQuery物化视图文档 bigquery springboot starter 使用BigQuery的CHANGES功能高效追踪数据变更历史 BigQuery Change Data Capture (CDC) using Pub/Sub 补(额外记录下使用BQ sto...
blackbox_exporter的安装及配置使用
简介blackbox_exporter 是 Prometheus 官方提供的一个 exporter,可以监控 HTTP、 HTTPS,、DNS、 TCP 、ICMP 等目标实例,从而实现对被监控节点进行监控 和数据采集。promethes调用blackbox_exporter去访问目标监控服务器,实现指标的采集 HTTP/HTPPS:URL/API 可用性检测TCP:端口监听检测 ICMP:主机存活检测 DNS:域名解析 地址:https://github.com/prometheus/blackbox_exporter 安装 / 使用使用kubernetes - deployment部署1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980apiVersion: v1kind: ConfigMapme...
jmx_exporter的安装及配置使用
参考: https://www.cnblogs.com/JIKes/p/18183537 https://prometheus.github.io/jmx_exporter 简介为了使用Prometheus监控JVM,你需要一个能够采集JVM指标的工具,比如jmx_exporter。 地址:https://github.com/prometheus/jmx_exporter kube-prom operator监听grafana dashboard id【7727】
