实战

工作linux系统初始化

#### 前言 由于强迫症 在工作和学习的时候 必须要用linux 但是linux桌面真的令人为难 用了n多版本的linux 什么arch、manjaro、centos系列的、debian系列的等等 最后还是觉得manjaro用来做工作的系统最简单合适 而且少折腾 ###

k8s集群暴露集群服务的各种方案的优劣

参考文档: http://blog.csdn.net/liyingke112/article/details/76022267 https://www.kubernetes.org.cn/1885.html k8s集群暴露服务 常见的就四种 #### 1: clusterIp clusterIp就是service的ip k8s在创建service的时候 会给service一个ip 集群内部可以通过这

函数重试方案比较

#### 前言 日常开发中 不仅仅在rpc调用的时候 需要重试啥的 有时候 接第三方系统 也得做一些重试的处理 之前一直都是自己利用function写了一个工具类 现在把自己写的基本思路 和 guava retry 和spring retry 一起记录一下 方

log4j2通过socket发送日志到elk平台

#### 前言 尝试过很多 spring cloud中日志的方案 好多还是需要 集群的支持 但是现在公司还没有那么吊的基础设施 那么 这个时候 就需要 项目能够自己直接通过tcp或者udp直接投递日志到elk或者生成日志文件去采集了 但是 项目

基于githubActions、oss自动化部署静态站点

#### 前言 自己的博客、主站 之前老是手工或者利用本地的插件 同步到aliyun oss上 麻烦的很 而且每次换电脑还都要配置 最近有时间 通过github 的actions 来做一些简单的同步静态网站到oss上 #### 示例 阅读要求: * 熟悉

postgres16中文全文检索

#### 前言 postgres 小集群情况下 实在是比mysql要厉害太多了 不管是从功能性 还是从性能 mysql也有全文检索 不过mysql太耗费内存了 个人服务器承载不起 只能用pgsql 这里记录一下pgsql的全文检索安装到使用 > [debia

基于jenkins2.X和docker的持续集成的实例

#### 实例功能 * 自动编译、打包 * 自动分发、部署 * 钉钉消息通知 * 交互式部署 通过jenkins部署一个index.html首页 #### 实现所需技能 * jenkins * docker * groovy 写脚本 * 项目打包 * linux常用技术 * java #### 步骤 以这个

代码质量监控平台sonar使用笔记

#### 前言 最近写的代码 太多了 感觉质量有所下降 之前本地一直使用 alibaba的code插件 但是没有出团队版本的 干脆搞了一个 sonar 检测一波自己的代码质量 #### sonar docker 方式启动 ``` #安装中文插件的 sonar sudo docker run

基于disruptor实现简单topic分发消息功能

#### 前言 disruptor 性能的确很强 但是只是做了 队列的功能 如果有多种消息 就必须自己去扩展一下 或者用多个队列 自己手写了一套简易的 基于disruptor 点对点的 topic分发功能 #### 思路 通过一个分发处理器 将收到消息按

常用语言项目打包成docker镜像示例

####前言 经常需要打包各种语言的项目打包成docker镜像 最近有时间整理一下 各种语言打包docker镜像的实践方案 #### 示例 基础镜像选择要求: 1: 尽量选择合适的基础系统 如centos debian ubuntu alpine 一般来说选择debian这种

feign切换访问http接口的实现

#### 前言 由于feign底层默认使用 jdk的UrlConnection来发送http请求 没有连接池之类的 很麻烦 而且bug很多 性能也差 经过查看文档和网络上大佬们的博客 发现可以使用 常用的http工具包去替换 如apache的httpClient 、okHttp等

服务端推送技术及其实现(轮询、长链接、sse、webSocket)

## 前言 ## 服务端推送信息方案及其实现 * 轮询 :就是一直循环访问服务端 服务端压力比较大 利用js的一些定时功能 隔一段时间发起一次请求 * 长轮询:一次请求 服务端吧请求保留 等由数据返回的时候 再返回 管理麻烦 *

devops-流程梳理

#### 前言 devops(Development+Operations) 的基础概念:https://www.cnblogs.com/anliven/p/9136624.html 对于研发来说 就是掌控从代码编写 到实际产出的全流程,更多的是涉及到devops中的持续集成相关部分 从代码产出到测试到部署到监控维护

使用阿里云的oss+cdn搭建高速访问的静态博客

之前一直想搭建一个博客 但是一直没找到便宜 并且访问速度快的方案 前几种方案 1:git pages + cdn 国内访问速度简直吃屎 不知道 同行是如何忍受的 cdn从源站拉取资源的时候 慢到无法忍受 2:coding pages+cdn 不想用 codin

k8s-ingress配置websocket支持

#### 前言 本来接我运维工作的同事跑路了 又是我接锅 其中一个遗留问题就是 k8s集群中websocket无法正常使用 #### 问题分析 ##### 表现形式 websocket链接 报错 200 ```text WebSocket connection to 'ws://*********' faile Error during WebSocket h

springboot-mvc的messageConverter处理

#### 前言 最近项目中通过feign调用内部服务和其他系统服务猛然增多 在messageConverter这一环节出现n多问题 什么xml解析gg 什么json 时间格式解析gg 什么乱七八糟的骚格式的数据解析gg 导致最近一直在作在messageConverter这

docker镜像打包优化

#### 前言 很多时候 看到别人写的dockerfile 根本不考虑 打包的效率和分发的速度 反正只是打包完成了就算了 一个好的docker 镜像 应该是合理分层 减少变动次数 从而加快打包的速度 和分发的速度 如 打包java的项目 一般

根据文件头判断文件类型

#### 前言 很多地方要判断文件类型 大多数时候 用后缀判断了 后缀判断。。有点自欺欺人 干脆趁着有时间 写个根据文件前4个字节判断文件的实际格式 > 参考文章: > https://baike.baidu.com/item/%E6%96%87%E4%BB%B6%E5

devops-工具选型

#### 前言 上一篇写的 一般devops中 研发部分的流程 这一篇记录一下 我自己喜欢用的一些devops的工具 > https://www.cnblogs.com/zgq123456/articles/12015027.html 这个博客里面基本上算是包含了大多数工具的名字了 真正使用的没这么多

github-actionsCI尝鲜笔记

#### 前言 github 前段时间出了个 actions 官方嵌入的 CI工具 很幸运 在初期就给我开通了 actions 工具的 内测资格 今天实在心痒难耐 决定试试水 参考文档: https://help.github.com/en/articles/workflow-syntax-for-github-actions #### 实际操

windows 安装虚拟化工具蓝屏

win10 安装vbox的时候蓝屏 经过google 发现是 Hyper-V 和 vbox 冲突 坑爹的微软 关闭Hyper-V 搜索 windows功能 找到Hyper-v 关闭 重启 即可

minikube快速搭建k8s测试环境

有朋友问我 k8s测试环境如何快速搭建 官方推荐的是minikube 其实吧 阿里云上这种文档一抓一大把 参考文档:https://yq.aliyun.com/articles/221687 #### 运行环境 * ubuntu 16.04 至少这个版本 低了不行 没有snap * 可以访问互联网 ####

centos-docker环境搭建

### 环境: * centos 7.x * docker #### 1:安装docker ``` #安装 一些组件 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # 拉取阿里云中 docker-ce的repo sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #

k8s集群日志采集方案选择

### 日志采集方案 常规的日志采集总的来说 分为 收集--》处理--》存储--》查看 比较出名 并且用的比较多的 应该是elk模式 常用组合应该是如下 三种 至于还有其他采集工具 其实都差不多 * elk: es + kibana + logstash 最

docker-swarm集群搭建

swarm编排吧 首先肯定比不上k8s犀利 但是呢 胜在 使用简单 部署简单 docker直接集成 可以使用docker、docker-compose 原生api 我个人认为 没有十来台服务器 部署k8s集群 完全是浪费 毕竟k8s 是非常需要 master 高可用的 服务器少

rancher搭建k8s集群-国内加速

通过rancher部署k8s如果不考虑gfw 是非常简单的 但是在国内部署 不得不考虑gfw的问题 默认有个 组件镜像是从 google上下载的 所以需要修改一些参数配置提供国内加速 ### 环境: * centos 7.x * rancher:1.6.x * docker 支持rancher:1.6.x

es+kibana+filebeat采集docker日志实战

#### 前言 最近看了看 docker 标准输出和标准错误的日志采集 发现 filebeat 可以直接监听 docker的启动结束等动作 并且几乎不需要配置什么 就可以很轻松的采集到node上的docker运行的日志 而且也可以直接接入 k8s的标准输出和

awk中print和printf区别

#### 前言 在写jenkinsfile 的时候使用 shell中的awk来拆分一些字符 发现有些字符竟然变成好几行 平常在shell上用awk一般就输出出来看 没关注这个问题 参考文档: https://blog.csdn.net/qq_35696312/article/details/88169556 #### 问题重现

linux 解压windows文件乱码处理

1. 通过unzip行命令解压,指定字符集 unzip -O CP936 xxx.zip (用GBK, GB18030也可以) 有趣的是unzip的manual中并无这个选项的说明, unzip --help对这个参数有一行简单的说明。 2. 在环境变量中,指定unzip参数,总是以指定的字符集显示和解

spring接入guavaEvent

#### 前言 spring虽然也有事件 但是麻烦 大多数情况下 guava的event足够使用 需要高性能 可以采用disruptor 參考: {% post_link java/disruptor使用笔记 %} {% post_link 综合应用/基于disruptor实现简单topic分发消息功能 %} #### 实战

manjaro更新之后中文乱码

#### 前言 今天更新manjaro的时候 更新完之后 idea中中文竟然是"□"形状的乱码 #### 问题引起原因和解决方案 * 系统编码不是utf8 ```bash #查看系统编码 locale #编辑系统编码配置 vim /etc/sysconfig/i18n #修改为zh_CN.UTF-8。。。。

docker 运行秒退出解决办法

###在学习docker的时候 遇到一个坑 就是当docker容器中没有前台运行的程序的时候 docker会认为这个容器没有工作内容会自动关闭这个容器 解决方法: 在写dockerfile的时候 记得留一个在前台执行的任务 特别是在做那种一般在

docker配置daemon.json(加速、http访问私服仓库)

#### daemon.json daemon.json 在linux下呢一般在/etc/docker/daemon.json 目录 这个配置主要配置 docker守护进程的相关参数 例如代理、私服仓库、相关网络配置 避免直接配置docker.service 官方文档地址:https://docs.docker.com/engine/reference/commandl

linux进入单用户模式和救援模式

#### 前言 之前遇到过本地环境由于mount错磁盘重启之后无法启动 就使用单用户模式恢复了 就此记录一篇笔记 方便后续出现问题快速查询 #### 单用户模式 单用户模式,只有一个用户可以访问某个资源的状态。类Unix系统

rocketmq使用docker运行出现重复消费

##### 最近公司网docker切换 现在开发 测试环境切换 我们发现docker环境下 多节点的rocketmq存在一个重复消费的问题 一个消息 被多次消费了 ----------------------------------------------------------------------------------------- @author 欢总 ro

使用jdk工具打包裁减项目示例

#### 前言 jdk 一直在发展 中间比较有意思的功能 有 模块化、打包成对应平台的安装包 通过 jmod jlink jpackage 等工具 可以对java的项目和运行的环境进行裁减优化 和分发不同平台安装包 此处使用一个简单的例子 来演示

中文写java

###偶然间发现java底层是采用utf16做编码集的 突发奇想 既然是utf16做底层编码 拿起不是可以拿非英文开发 毕竟编译器可以识别中文那么肯定也可以编译中文 ###代码尝试: ``` class 垃圾{ public void 一个垃圾方法(){ Sys

常用json解析框架对比

#### 前言 最近使用基于http作为rpc调用协议的时候 由于选择使用json来传递数据 不得不做一波常用的json解析框架的性能、稳定性、可定制性、使用难度、对复杂对象的支持程度等等方面来对比一下 只针对常用的几种 json解析

spring bean 加载顺序解决办法

在使用SpringBeanManager工具类的时候 发现 spring boot 是根据目录取扫描装配bean 的 由于我把 这个工具类放在com.ming.core.utils下 导致 这个加载顺序在一些初始化服务之后 看了一下相关资料 有四种解决方法 * 在配置中调整顺序

aop和spel实现动态注解操作日志

#### 前言 懒的硬编码操作日志 然后大多数操作日志 也比较固定 看了看网上别人的实现方案 发现大多数用 aop + spel 来实现动态的注解记录操作日志 不过大多数没有讲到 aop如何增强private 或者当前class中的函数 和相关完

springMvc自动注册api

#### 前言 懒得自己手写api 干脆让他根据包名、类名 函数名自动生成算了 #### 思路 * 自定义注解 注册到spring ioc容器中 * 借助原本requestMapping及其衍生的注解来为接口除了地址以外的属性做处理 如method con

springCloudConfigServer的git、svn版本实现及相关实战案例

### 配置中心 在分布式 环境中 配置中心是必不可少的一个组件 不管是国内的 disconf 、Apollo之类 还是spring cloud的config server 都是一个套路 将配置统一管理 通过namespace、项目名称之类的 进行区分 加入一些操作审计、配置加密

spring boot + quartz实现 动态定时任务笔记及其想法

#### quartz 集成 到spring boot 中 有个偷懒的方法 直接引用 这个 但是这个不是spring组织搞 的 1:gradle 依赖配置 ``` buildscript { ext { springBootVersion = '1.5.8.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springfr

spring-data-jpa封装复杂查询Specification示例

#### 前言 从个人角度来说 我更加喜欢jpa 因为是正儿八经的orm框架 很多时候 只需要处理java代码即可 不需要去梭sql 虽然真正去梭sql 性能更好 也更加灵活 可以使用各种各样的操作 如果项目是做一些复杂的查询 我觉得mybati

spring-boot2启动加载的几种方式示例

#### 前言 做项目的时候 总是会遇到各种各样需要启动处理的需求 例如加载热数据、初始化环境、等等 spring boot 也提供了很多初始化的口子 这里干脆统一记录一下 方便后续查阅 #### 方案比较 |名称|说明|备注| |:---|:

spring-boot-cache使用实战

#### 前言 cache可以说是后端提高响应速度、承载能力的标准套路了 spring boot中提供spring boot starter cache 组件 配合spring boot starter redis 或者其他缓存组件 可以很简单的使用缓存 #### spring cache 介绍 一套基于spring aop的方式 为函

© 2024 ming博客. All rights reserved.基于rust salvo性能猛的很!