自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

天草二十六

Java编程、CICD、K8S容器化部署、DevOps

  • 博客(219)
  • 资源 (19)
  • 收藏
  • 关注

原创 Java编程语言,使用时间戳机制实现分页查询的示例

这种分页查询,以时间戳为增量更新的标记,好处是,不用去组装分页语句,只需要传入每页数量,不用根据当前页码和每页数量而计算。使用时,需要注意的是,如果记录的更新时间频繁更新,会导致结果一会在当前页,一会在上一页。(因为在你刷新页面的时候,该记录正好更新了)所以,客户端不要缓存上一次的查询结果集,如果要,那也得区分用户是下拉刷新还是上拉查询。总之,要小心同一个记录被重复出现在次增量查询的结果集里。如果是以创建时间为准,然后时间戳对比创建时间来增量查询,那么就不会出现这个问题了。

2024-09-10 13:18:07 362

原创 Java应用对接pinpoint监控工具的时候,应用名称长度超出限制而导致接入失败

从这个接入案例中,再次告诫我们,没有理所当然的事情。环境都一样,不同的应用就是可能不同。要排查问题,还得是查看日志。也提醒我们开发人员,日志打印是多么重要。

2024-09-06 10:32:52 489

原创 npm打包报错解决办法--因网络问题,node-gyp依赖的node-headers无法下载

node-v16.13.0-headers.tar.gz 文件是 Node.js 的 C/C++ 头文件包,它包含了 Node.js 运行时所需的所有头文件。这个文件通常用于以下场景:构建原生模块:如果你在使用 Node.js 构建或安装需要编译原生代码的模块(例如,使用 node-gyp 构建的模块),这个头文件包是必须的。开发 Node.js 插件:开发者在开发 Node.js 的 C/C++ 插件时,需要这些头文件来编译他们的代码。

2024-08-20 10:21:12 1620

原创 maven私有仓库nexus2如何找回用户的登录密码

下载nexus-2.14.2-01-bundle.tar.gz并解压至nexus-2.14.2-01,启动nexus进程,注意切换到nexus用户。

2024-08-06 18:37:18 282

原创 对接浦发银行支付(十)-- 支持多个浦发银行商户

为了保证浦发银行支付的高可用以及多业务的支付需要,在微服务–支付服务中,需要同时支持多个浦发银行商户。本文主要是介绍如何配置多商户的实现。

2024-08-04 19:00:11 64

原创 Charles抓包工具系列文章(七)-- Rewrite工具的应用示例

客户端通过域名访问后端服务,在api网关层,会判断path的前缀,默认/api开头的请求都转发至后端服务A。当前缀是/assist/api开头,请求将转发至后端服务B(部署在192.168.80.226,便于测试对比)在不改动kong网关配置的情况下,现需要把后者的请求转发至192.168.8.28机器上的后端服务B,并且前者的请求转发保持不变,仍旧是服务A。借助于charles抓包工具之Rewrite,我们可以轻松实现。

2024-07-31 14:21:28 294

原创 mongodb数据库运维之创建数据库及赋权限

本文将接着上文的mysql建库,介绍下mongodb非关系型数据库应该如何做。

2024-07-30 13:31:26 202

原创 mysql数据库运维之创建数据库及赋权限

在公司多部门多业务场景的情况下,每个微服务使用自己的数据库,互相不可见。mysql数据库是可以创建多个schema,一般是由数据库管理员,给单个微服务的库单独赋权限。也就是说,用户服务对应数据库的账户密码是不能访问订单服务对应的数据库。二者应该使用独立的schema, 独立的用户名和密码,不能共用。

2024-07-30 11:19:53 486

原创 android应用的持续构建CI(五)-- 应用管理

本文梳理了android应用的管理办法,可以说是持续构建CI的“尾巴”,至此,android应用的持续构建就完成了。

2024-07-05 12:34:31 65

原创 android应用的持续构建CI(四)-- 依赖环境(兼容多版本的gradle和jdk)

android应用的构建前提是,安装好了gradle和jdk。在实际使用的过程中,不同的android应用,对gradle和jdk的版本要求不一。于是,在jenkins服务器上,我们需要安装多种版本的gradle和jdk。安装过jdk的小伙伴应该知晓,一台机器虽然可以安装多个jdk,但是环境变量生效的版本只能是其中的一个。gradle也一样,除非你调用gradle的时候,不使用环境变量下的,而是全路径。就算gradle可以,jdk却做不到,后者是被依赖的对象,无法显示指明。

2024-07-05 00:22:25 364

原创 android应用的持续构建CI(三)-- 手动签名

android应用程序的打包,总是绕不开应用签名。本文仅从运维的角度,梳理了其如何生成和使用的步骤。

2024-07-05 00:21:01 52

原创 android应用的持续构建CI(二)-- jenkins集成

本文梳理了jenkins如何集成各个技术组件,构建android应用,并上传到管理后台的整个流图。

2024-07-04 21:10:03 235

原创 android应用的持续构建CI(一)-- 总体设计

下面是各技术组件的交互流程图,jenkins是主角,下一篇将重点梳理如何配置jenkins的job。

2024-07-04 21:07:12 411

原创 记一次android打包,因路由规则设置不合理而导致pom文件无法访问的错误

nexus的路由规则还是慎用,个人建议是不需要使用。起初是想要禁用nexus的swagger,拒绝访问接口“/service/rest/swagger.json”。想通过路由规则来禁用swagger,无意间捅马蜂窝了,导致android打包的时候,pom全部无法访问。于是出现了上文的问题。

2024-07-03 11:02:06 906

原创 nexus未开启匿名访问Anonymous Access,访问maven元数据maven-metadata,报401未授权Unauthorized错误

开启匿名访问后,再次访问maven-metadata.xml,不再让我们输入用户名和密码了。这时,android打包成功,不再报错401未授权Unauthorized了。

2024-07-02 19:09:44 526

原创 商城积分系统的代码实现(下)-- 积分订单的退款与结算

至此,关于商城的积分系统,其详细实现就介绍完了。希望通过整个系列的五篇文章,帮助你搭建一套灵活多变的积分系统,服务于整个公司的所有业务。

2024-07-01 08:00:00 373

原创 商城积分系统的代码实现(上)-- 积分账户及收支记录

本文详细介绍了积分操作的五个方法,总体的实现逻辑都是更新账户的余额、保存账户的收支记录、最后通知用户其账户余额有变更。无非是他们的校验逻辑不一样罢了,所以逻辑实现的方法必须复用。1、是否更新积分订单表2、前者是减少账户的余额,后者是增加账户的余额。后文,我们将梳理积分订单的实现。

2024-06-28 14:43:35 189

原创 商城积分系统的设计方案(下)-- 接口设计

我们通过三篇文章,把积分体系的分析与设计梳理了一遍,后期有时间把关键的一些代码实现整理出来。

2024-06-28 11:19:06 134

原创 商城积分系统的设计方案(中)-- 数模设计

积分和积分渠道,实现积分种类和发放的动态配置,是设计中的关键之处。积分订单表是不必要的,视具体业务需求而定。积分账户和账户收支是核心的两个表。后面三个表都有一个school_id, 其实就是租户编号,不同的学校或租户,互不共享。

2024-06-28 11:18:37 289

原创 confluence集成LDAP

一、confluence的权限管理在集成前,我们必须得知道confluence自身的权限管理是如何做的。用户组对应空间权限,用户组可以是一个项目,也可以是一个部门或组。一个用户组里的用户,可以读写本空间的页面,而把其他组隔离开来。二、confluence配置LDAPimage.pngconfluence配置LDAP.png这里不大容易出错,填入相应的group和p...

2024-06-28 11:17:29 516

原创 ubuntu16安装DHCP

一、安装dns server软件包$ apt-get install bind9二、配置BIND9配置文件的目录默认为/etc/bindcd /etc/bind 进入该目录。。。1、vi /etc/bind/named.conf.localzone "xuehai.com" { type master; file "/etc/bind/db.xuehai...

2024-06-27 19:58:18 277

原创 商城积分系统的设计方案(上)-- 需求分析

本文重点在积分系统的设计,不涉及商品、订单、支付和促销等模块,限于篇幅,我们将分为上中下三篇来阐述我们的设计思路。上文也说了,积分在这里不仅仅是支付宝积分商城的“积分”,更侧重于虚拟货币的概念。所以,我们是把积分赋给商品的价格里,包括积分数points和现金金额price,重复说一遍!!!@Column(name = "points_type", columnDefinition = "VARCHAR(32) COMMENT '积分类别'")

2024-06-27 16:37:20 677

原创 Charles抓包工具系列文章(六)-- Block List 和 Allow List (黑白名单)

黑名单启用的情况下,白名单也启用,访问某个接口,会发生什么呢?匹配白名单匹配黑名单结果否是黑名单生效,Tags = Block List,请求被拒是否请求正常否否白名单生效,Tags = Allow List,请求被拒是是黑名单生效,Tags = Block List (同只匹配黑名单一样),请求被拒所以它的逻辑是:先判断是否匹配黑名单,如果请求接口在黑名单里,则请求被拒。再判断是否匹配白名单,如果不在白名单里,则请求也被拒;反之,请求正常通过。

2024-06-26 11:15:55 488

原创 Charles抓包工具系列文章(五)-- DNS spoofing (DNS域名伪装)

本文通过对baidu.com和localhost两个域名的伪装,讲述了charles的DNS spoofing的配置及使用实践。

2024-06-26 10:17:37 411

原创 Charles抓包工具系列文章(四)-- Rewrite 重写工具

因为重写的规则比较细,如何使用要视具体情况,可以替换上一篇文的Map Local/Remote。也正因为如此,使用起来相对复杂。最后说一句,重写规则是可以同时维护多个规则的,不仅限为一个规则。所以说,Rewrite工具是Map Local 和 Map Remote两者的综合体。

2024-06-25 20:22:05 862

原创 Charles抓包工具系列文章(三)-- 接口映射工具(Map Remote和Map Local)

通过接口映射工具,可以轻松修改客户端的响应报文,注意不能修改请求报文!!如果需要修改请求报文,需借助于另外一款工具: Rewrite。从这里也可以看出来,如果你的服务使用http协议,使用代理工具charles后,就可以随意修改接口的响应报文。期望展示的是图片A,结果看到的是图片B,出现“宜春是一座叫春的城市”,也就不奇怪了。

2024-06-25 20:20:33 1136

原创 Charles抓包工具系列文章(二)-- Repeat 回放http请求

本文告诉你,charles可以对已抓到的报文进行重装,还可以重复发起N次请求。可以说,测试人员必须掌握这一部分的技能了,对接口进行并发请求,最后分析结果。对回放的http请求可以进行Sort By排序。(选择已执行的http请求,右键选择“Sort By”)DurationSizeStart TimeEnd TimeName。

2024-06-24 22:14:50 414

原创 Charles抓包工具系列文章(一)-- Compose 拼接http请求

本文举例了http的两种最常见的get请求方式和post请求方式,像postman那样拼接http请求并测试。其他的请求方式大同小异,遇到的时候略微修改即可。

2024-06-24 22:14:14 629

原创 CD工具awx之通知NOTIFICATIONS,及时发送消息到企业微信机器人

如果你发送的消息通知,不是直接对接企业微信,而是自定义接口。只要在把企业微信的机器人修改你的接口地址即可。关于awx如何实现回调通知,就梳理到这里了。可以看到,消息体还是比较有限的,只能从awx官方文档里寻找。如果你要更加灵活的消息通知,建议在playbook脚本里实现,可以读取到更多信息,比如程序的版本号。版本号,对以应用为中心的程序部署来说,非常关键。

2024-06-14 11:20:19 510

原创 CD工具awx之清单Inventory,管理应用与主机的多对多关系

本文讲述了awx的清单Inventory,它维护了组与主机的关联关系。通俗地说, 就是应用部署在哪些机器上,反之,机器上都部署了哪些应用。因为awx是抽象的CD持续部署工具,所以它定义的很多概念,并非我们通常所说的应用等。你可以把组当做应用,毕竟大多数运维思路都是以应用为中心,一下子突然找不到应用了,会让你无从下手。顺便说一下,你看到的"项目"不是你以为的项目,看到的"清单"才可能是你想要的项目。

2024-06-14 09:50:27 188

原创 pinpoint agent 接入apm,负责采集java应用的数据,发送给远端collector

前文我们使用docker-compose已搭建好了pinpoint的服务端,现在需要在java应用侧,也即客户端部署pinpoint的agent。agent负责采集数据,并发送给远端的pinpoint collector,最后在pinpoint web展示。本文主要是以一个java应用程序为例,讲述如何接入pinpoint 这款apm。

2024-06-12 17:06:44 650

原创 docker-compose部署一款老牌apm监控软件-- pinpoint(需定制docker镜像)

镜像redis下载超时镜像pinpoint-batch下载超时容器pinpoint-mysql启动失败修改完docker-compose.yml后再次执行 docker-compose up -d 启动所有的镜像。可以看到, 最新版本的pinpoint比之前的组件变多了。访问pinpoint-web(8080端口), http://localhost:8080/这是因为在docker-compose里有部署一个quickapp示例程序。

2024-06-12 14:20:24 1222

原创 CD工具AWX之作业模板与工作流模板

本文以php和h5项目为示例,讲述从初始化项目到更新发布的实现详情。它们跟java/go等进程程序不同,只需要下发.php等静态文件即可,不涉及进程的重启。对于php项目,除了php文件外,还包括.env配置文件。(需要根据不同环境的具体值进行修改)

2024-06-11 11:02:46 359

原创 微服务框架下,因发送端与消费端的vhost不一致,导致rabbitmq出现严重的消息堆积

在生产环境下,rabbitmq机器出现磁盘空间不足的报警,发现是某个队列的消息只有生产,迟迟没有消费。之所以出现rabbitmq消息堆积,是因为消费程序所在的vhost与消息生产者所在的vhost不是同一个。下面将逐步说明其排查过程,以及解决方法。

2024-06-07 13:24:03 889

原创 nexus搭建npm前端项目的私服

构件,好比我们的藏书,去书店或商城买书是有成本的,一般先看看自己的书柜里是否有无该书,再考虑去外面买。书柜就是本地仓库, 其他的都是远程仓库。在家里看书的成本最小,高效且方便;当然也就减少了快递小哥的配送压力。

2024-06-05 20:25:30 466

原创 从一个netty程序说一说TCP三次握手的总结及参数优化

TCP连接经历了三次握手,当我们开发一个netty程序,运行在线上环境后,如何对其进行监控,并适时地进行参数调优。本文以我们生产环境的一个通道程序,看一看三次握手的过程,以及Linux系统关于创建http连接的参数设置情况。

2024-06-01 00:00:06 1533

原创 CD工具awx之公司生产环境的操作与部署说明

作为入口程序,它比较简单,通过roles指定了运行脚本roles/k8s_control/main.yaml。变量get_md5和cat_md5是否相等,如果不同,则报错"MD5 file is different"。在docker images查询镜像的时候,过滤得到镜像ID,然后赋值给变量“image_id”。凭证有很多种,包括gitlab等中间件的用户名密码、k8s api的令牌、机器的用户名密码等等。使用语法with_items和template,使得在一个任务中循环执行,而不用创建两个任务。

2024-05-31 14:48:51 688

原创 api网关kong对高频的慢接口进行熔断

本文通过线上实际发生的一个生产事故,梳理了我们的解决思路,对于高频慢接口的访问,最后只能通过kong的熔断来解决。事实证明,重启银弹和扩容银弹并不适用此,对于fullgc等jvm内存问题可能适用。这个生产事故,也给我们一个提醒,需要及时排查慢接口和数据库的慢查询,它们就像是航船的漏洞一样,小洞如果不及时堵上,等变大了,想堵就来不及了。

2024-05-30 10:39:43 952

原创 mongodb数据库备份到远程机器

生产环境的mongodb数据库是直接购买阿里云的云数据库,但是在公司研发环境,我们是自己手动部署的。开发和测试的数据当然没有生产环境那么重要,但备份也是必要的,只不过容忍一定的数据丢失。

2024-05-28 16:59:19 220

原创 使用nexus搭建的nodejs私库,定期清理无用的npm组件,彻底释放磁盘空间

昨天我们整理了一篇关于docker私库,如何定期清理以释放磁盘空间的文章。虽然也提及了npm前端应用的组件该如何定期清理的,本文是对它作一个补充说明。前文也看到了,npm组件占用的blob空间为180多GB,急需清理。

2024-05-28 10:14:09 866

浦发银行支付api对接

浦发银行支付api对接,使用java语言实现,包括签名,sm2方式的加解密。使用okhttp框架调用浦发银行api。适用于支付、退款以及查询支付或退款结果的接口。它还依赖于其他的几个基础jar,详细见于本jar包里的Pom.xml文件。

2024-04-21

tidb-manual-cn.pdf

豌豆荚团队的良心作品,分布式数据库,也是codis的开发团队。本附件是tidb的中文指导手册,非常全面。

2019-06-19

Software-Transactional-Memory.pptx

多线程使用很普遍,但是存在许多问题,比如死锁,内存屏障,饥饿等。把事务模型作为一个通用的编程模型,作为解决事务的一个新思路。

2019-06-14

JVM线程状态和Thread.sleep的实现原理探究.pdf

jvm线程生命周期以及线程的状态切换,探究sleep和唤醒的原理。

2019-06-14

pinpoint中文学习(包含插件、警告).zip

pinpoint中文学习文档,比较全,介绍了基本的安装使用、插件、报警等功能。

2019-05-29

设计模式之禅的源码

设计模式 Java 源代码 秦小波著 使用通俗易懂的文字生动形象地讲解了各种设计模式,本资源主要是源码的整理,使用java语言实现。

2018-09-04

MyDac 7.0.1 ODAC 8.0.1 for Delphi 7 / 2010 Delphi XE2

MyDac 7.0.1 ODAC 8.0.1 for Delphi 7 / 2010 Delphi XE2

2015-03-13

Frontend plus 2.03 (cracked)

Frontend plus 2.03 Frontend java 反编译 eclipse

2010-12-24

PHP网上问卷调查系统,源码

PHP网上问卷调查系统,源码,建议有点Php基础的朋友使用。实现单选,复选,留言等功能。

2010-12-24

My97Datepicker日历控件

My97Datepicker日历控件java

2010-12-23

delphi代码格式化工具,插件

delphi代码格式化工具,插件,很好用的,内附使用说明,确保能够很好使用,测试平台为delphi 7

2010-10-26

传智博客--张孝祥--java培训课件以及源代码

传智博客--张孝祥--java培训课件以及源代码,希望对你有帮助,有用的话请留言哦,

2010-09-19

学习笔记之Oracle教程(免费).pdf--超详细

学习笔记之Oracle教程(免费).pdf--超详细 sql 数据库 java

2010-09-15

visual basic语言经典课件大全

visual basic语言经典课件大全,ppt格式的文件,教学使用,也可以用来替代书籍以学习编程入门使用。

2010-09-15

PHP实现的一个开源的企业门户网站

采用PHP语言来实现的一个门户网站,你可以在此基础上进行修改扩充,完善功能。

2010-09-15

电子商务网站,供开发人员二次开发

电子商务网站,供开发人员二次开发,php168开源

2010-07-09

Packet.Tracer5.2.0.0068-汉化包

Packet.Tracer5.2.0.0068-汉化包.rar 思科路由器交换机模拟软件》(Cisco packet tracer )官方5.2版+汉化包

2010-07-09

宠物商店Swing+JPA

宠物商店Swing+JPA,当前最为流行的技术。开发环境为:jdk1.6

2010-01-04

JavaScript特效大全

JavaScript特效,实用型的一些基本的js操作。

2010-01-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除