- 博客(53)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 HttpUtils 工具类
HttpUtils工具类<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.13</version> </dependency> <depen
2022-02-15 13:58:29
1463
原创 记录一次 gateway 网关 FluxOnAssembly$OnAssemblyException 异常 报错经历
记录一次 gateway 网关 FluxOnAssembly$OnAssemblyException 异常 报错经历报错代码:java.lang.IllegalStateException: Invalid host: lb://zhihui_member at org.springframework.cloud.gateway.filter.RouteToRequestUrlFilter.filter(RouteToRequestUrlFilter.java:86) ~[spring-cloud-g
2022-01-10 10:37:31
10572
原创 k8s-集群扩展
k8s-集群扩展1 k8s有哪些扩展点?kubernetes具备高可配、高扩展特性。自定义kubernetes集群大体上也分成两个方向,一个是配置,一个是扩展。配置又分成修改配置文件、标志与API resources两个小方向,扩展需要运行额外的程序或者服务。Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用[^1]。虽然现在 Kub
2021-11-01 10:48:09
1433
原创 k8s-应用部署与监控
k8s-应用部署与监控SpringBoot应用1.编写相关应用程序@SpringBootApplication@RestController@Slf4jpublic class DemoAppApplication { @RequestMapping("/") public String index(){ log.info("有新的请求"); return "恭喜你访问成功了"; } public static void main(
2021-11-01 10:47:53
1191
原创 k8s-向外提供服务、负载均衡
k8s-向外提供服务、负载均衡1. Service以nodePort方式向外提供服务2. Ingress向外提供服务apiVersion: v1kind: Namespacemetadata: name: ingress-nginx labels: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/instance: ingress-nginx---# Source: ingress-nginx/temp
2021-11-01 10:47:27
460
原创 K8S-与CICD的融合
K8S与CICD的融合CICDCICD的概念工厂里的装配线以快速、自动化、可重复的方式从原材料生产出消费品。同样,软件交付管道以快速、自动化和可重复的方式从源代码生成发布版本。如何完成这项工作的总体设计称为“持续交付”(CD)。启动装配线的过程称为“持续集成”(CI)。确保质量的过程称为“持续测试”,将最终产品提供给用户的过程称为“持续部署(CD)”。一些专家让这一切简单、顺畅、高效地运行,这些人被称为运维开发DevOps践行者。“持续”是什么“持续”用于描述遵循我在此提到的许多不同流程实践。这
2021-10-28 11:29:44
1763
原创 K8S-持久化存储及常用存储方案
K8S-持久化存储及常用存储方案1. 存储知识的回顾1.1 块存储传统的文件系统,是直接访问存储数据的硬件介质的。介质不关心也无法去关心这些数据的组织方式以及结构,因此用的是最简单粗暴的组织方式:所有数据按照固定的大小分块,每一块赋予一个用于寻址的编号。以大家比较熟悉的机械硬盘为例,一块就是一个扇区,老式硬盘是512字节大小,新硬盘是4K字节大小。老式硬盘用柱面-磁头-扇区号(CHS,Cylinder-Head-Sector)组成的编号进行寻址,现代硬盘用一个逻辑块编号寻址(LBA,Logical B
2021-10-28 11:28:03
9187
原创 k8s-的网络模型及常用网络插件
k8s-的网络模型及常用网络插件Docker网络容器网络Docker使用Linux桥接模式,在宿主机虚拟一个Docker容器网桥(docker0)桥接模式:桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。在桥接模式下,虚拟机ip地址需要与主机在同一个网段,如果需要联网,则网关与DNS需要与主
2021-10-28 11:26:32
3806
原创 k8s-身份认证与权限
k8s-身份认证与权限K8s中的用户k8s中的有两类型的用户:被k8s集群管理的服务账号 ( Service Account Pod 对象)和常规用户 (User Account 现实中的“人”)。**User Account(用户账号):**一般是指由独立于Kubernetes之外的其他服务管理的用户账号,例如由管理员分发的密钥、Keystone一类的用户存储(账号库)、甚至是包含有用户名和密码列表的文件等。Kubernetes中不存在表示此类用户账号的对象, 因此不能被直接添加进 Kubernet
2021-10-28 11:24:41
5033
原创 k8s-服务与服务发现及路由
k8s-服务与服务发现及路由1.什么是serviceKubernetes 提供了一种 API 对象叫做 Service。Service 可以理解为一种访问一组特定Pod 的策略。举个例子,考虑一个图片处理应用程序,通过 Pod 运行了 3 个副本,并且是无状态的。前端访问该应用程序时, 不需要关心实际是调用了那个 Pod 实例。后端的 Pod 发生重启时,前端不应该也不需要感知到。对于这种解耦关系,我们就可以通过 Service 来做。Service 与后端的多个 Pod 进行关联(通过 select
2021-10-28 11:23:07
5421
原创 k8s-Pod介绍及状态与生命周期管理
Pod介绍及状态与生命周期管理Pod介绍Pod是kubernetes中可以创建和部署的最小单位。Pod代表着集群中运行的进程。Pod的设计理念是支持多个容器在一个Pod中共享网络地址和文件系统,可以通过进程间通信和文件共享这种简单高效的方式组合完成服务。Pod中封装着应用的容器(有的情况下是好几个容器),存储、独立的网络IP,管理容器如何运行的策略选项。Pod代表着部署的一个单位:kubernetes中应用的一个实例,可能由一个或者多个容器组合在一起共享资源。Docker是kubernetes中最
2021-10-28 11:21:52
2550
原创 K8S控制器介绍与使用
K8S控制器介绍与使用K8S逻辑架构图Kubernetes主要由以下几个核心组件组成:etcd保存了整个集群的状态;apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;kubelet负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理
2021-10-28 11:19:40
1301
原创 k8s-集群资源介绍及管理
k8s集群资源介绍及管理1.k8s中的资源K8s 中所有的内容都抽象为资源, 资源实例化之后,叫做对象在k8s中,任何可以被申请、分配,最终被使用的对象,都是 kubernetes 中的资源,比如 CPU、内存。1.1集群资源分类1.1.1名称空间级别资源仅在此名称空间下生效,如k8s的系统组件是默认放在kube-system名称空间下的,而kubectl get pod等价于kubectl get pod -n default,因此查看不到k8s的系统组件。1.工作负载型资源(workloa
2021-10-28 11:17:56
3258
原创 云原生及k8s架构
云原生及k8s架构,相关生态介绍1.云计算简介云计算是分布式计算的一种,指通过网络(云)将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。1.1简介云计算早期,就是简单的分布式计算,解决任务分发,并进行计算结果的合并。现阶段的云服务不单单是一种分布式计算,而是分布式计算,效用计算,负载均衡,并行计算,网络存储,热点备份和虚拟化等计算机技术混合演进并跃升的结果。1.2云计算特点云计算的可贵之处在高灵活性,可扩展性和高性比等,与
2021-10-28 11:15:33
3968
原创 EFK环境搭建
EFK环境搭建前言好久没有发布新的文章了,那是因为最近工作需求有点多(人生处处是bug,修了一个还会有下一个),言归正传,这一篇带来的是利用docker快速搭建日志收集系统。1、为什么需要日志系统其实有开发经验的同学就会明白,为什么需要一个日志系统,当你的服务众多,用户量又非常大的情况下,某个接口出问题了,但是看代码逻辑是对的没什么问题,但是就是出现了一些很奇怪的结果,那这个时候你想去debug但是又碍于本地环境和生产环境的不同,而且你需要问题发生时候,接口的请求参数,中间发生了什么,响应参数是什么
2021-10-28 11:04:03
644
原创 老项目如何改造权限、数据权限系统(三 一 一拦截器 实现)
老项目如何改造权限、数据权限系统(三 一 一拦截器 实现)序言: 最近项目有个数据权限的业务需求,要求大致为每个单位只能查看本级单位及下属单位的数据,例如:一个集团军下属十二个旅,那么军级用户可以看到所有数据,而每个旅则只能看到本旅部的数据,以此类推; 当然通过这个办法也可以实现数据的过滤,但这样的话相比大家也都有同感,那就是每个业务模块 每个人都要进行SQL改动,这次是根据单位过滤、明天又再根据其他的属性过滤,意味着要不停的改来改去,可谓是场面壮观也,而且这种集体改造耗费了时间精力不说,还会
2021-05-17 11:20:08
495
1
原创 老项目如何改造权限、数据权限系统(二 一 一AOP 实现)
老项目如何改造权限、数据权限系统(二 一 一AOP 实现)AOP 实现:1 序言 在这里,我们接着讲上一次的系统改造,我们需要自定义一个切面注解,来控制需要控制数据权限的接口。主要思想就是 :- 去用户中心拿到 组织架构:谁 —管理一>谁; - 来查询数据和 人员绑定关系表: 什么(数据)一属于一>谁。- 最终拿到 数据的ID 查实际数据2 实现2.1 数据关系表注意: 我这里是用的人员来控制数据权限的;有的是用的角色,看具体业务需求,如果是角色
2021-04-23 11:25:34
461
原创 老项目如何改造权限、数据权限系统(一 -- 架构思想)
老项目如何改造数据权限系统(一)一、起源 最近的得到一个需求,改造老项目的权限系统。包括菜单权限、按钮权限、功能模块权限、数据权限。而切时间紧任务重。二、机构是想 我的个人架构思想就是最小的入侵性改造。对之前的的代码尽可能不改变参数结构、接口地址、返回数据结构。三、项目架构设计注解:1、标粗代表的是系统2、绿色的代表的老系统,不用大改的系统。3、数据权限、用户中心可以单独开发成两个服务、为什么要将数据权限配置分开、是要尽最大的程度解耦。以后其他项目的复 用性、将业务和服务分开4
2021-04-09 16:46:13
529
1
原创 JAVA 生成二维码 并设置 +失效机制
JAVA 生成二维码 并设置 失效机制1.前言:我这里设置的失效机制用数据库记录每一张二维码的实效时间,二维码生成后上传至OSS1.1 数据库设计CREATE TABLE `qz_date` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `uuid` varchar(255) DEFAULT NULL COMMENT '二维码标号', `url` varchar(255) DEFAULT NULL COMMENT '二维码地址',
2021-03-17 18:21:50
8511
4
原创 JAVA 间隔 时间 计算器
JAVA 间隔 时间 计算器(加法)(后续继续完善)/** * @Author Mc QiLing * @Date 2021/3/11 上午9:48 * @Version 1.0 */public class TimeCalculatorUtils { public static void main(String[] args) { String start = "2021-03-10T00:00:00"; String end = "2021-03-10T23:0
2021-03-11 10:51:31
616
原创 RestTemplate 调用远程方法,服务端要求接受参数类型:application/x-www-form-urlencoded
RestTemplate 调用远程方法,服务端要求接受参数类型:application/x-www-form-urlencoded解释:是一个表单请求public APIResult postWithParamNoToken2(String url, JSONObject params) { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_FORM_
2021-03-03 10:29:26
1732
原创 RestTemplate 工具类
RestTemplateUtils@Componentpublic class RestTemplateUtils { @Autowired private RestTemplate restTemplate; private static RestTemplateUtils rtu; @PostConstruct public void init() { rtu = this; rtu.restTemplate = this
2021-03-02 14:47:32
1170
原创 python-基础(二)- 数据结构 4-字典
python-基础(二)- 数据结构 4-字典 需要将一系列值组合成数据结构并通过编号来访问各个值时,列表很有用。本章介绍一种可通过名称来访问其各个值的数据结构。这种数据结构称为映射(mapping)。字典是Python中唯一的内置映射类型,其中的值不按顺序排列,而是存储在键下。键可能是数、字符串或元组。一、字典的用途 字典的名称指出了这种数据结构的用途。普通图书适合按从头到尾的顺序阅读,如果你愿意,可快速翻到任何一页,这有点像Python中的列表。字典(日常生活中的字典和Python字典)旨
2021-02-23 13:59:22
273
原创 python-基础(二)- 数据结构 3-使用字符串
python-基础(二)- 数据结构 3-使用字符串一、字符串基本操作 前一章说过,所有标准序列操作(索引、切片、乘法、成员资格检查、长度、最小值和最大值)都适用于字符串,但别忘了字符串是不可变的,因此所有的元素赋值和切片赋值都是非法的。>>> website = 'http://www.python.org' >>> website[-3:] = 'com' Traceback (most recent call last): File "<py
2021-02-22 18:01:31
299
原创 python-基础(二)- 数据结构 2-列表
python-基础(二)- 数据结构 2-列表 本节主要讨论列表不同于元组和字符串的地方——列表是可变的,即可修改其内容。另外,列表有很多特有的方法。一、函数 list 鉴于不能像修改列表那样修改字符串,因此在有些情况下使用字符串来创建列表很有帮助。为此,可使用函数list>>> list('Hello') ['H', 'e', 'l', 'l', 'o']请注意,可将任何序列(而不仅仅是字符串)作为list的参数。提示 要将字符列表(如前述代码中的字符列表
2021-02-22 15:06:37
587
1
原创 python-基础(二)- 数据结构 1
python-基础(二)- 数据结构 1 数据结构是以某种方式(如通过编号)组合起来的数据元素(如数、字符乃至其他数据结构)集合。在Python中,最基本的数据结构为序列(sequence)。序列中的每个元素都有编号,即其位置或索引,其中第一个元素的索引为0,第二个元素的索引为1,依此类推。在有些编程语言中,从1开始给序列中的元素编号,但从0开始指出相对于序列开头的偏移量。这显得更自然,同时可回绕到序列末尾,用负索引表示序列末尾元素的位置一、序列概述 Python内置了多种序列,本章重点讨论其中
2021-02-22 11:29:14
192
原创 python-基础(一)- 环境安装
Python 环境安装mac 系统我这里是选择安装 python3.7一 下载环境 mac 自带python 2.7 这里建议升级到 3.xc.biancheng.net:~ mozhiyan$ pythonPython 2.7.10 (default, Jul 30 2016, 18:31:42)[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwinType "help", "copyright", "credit
2021-02-20 15:10:04
191
原创 JAVA 分割集合 多线程 分批次操作-批量插入或删除
JAVA 分割集合 多线程 分批次操作分割集合工具类(我还写了一个更全面的的工具类可以了解一下)https://blog.youkuaiyun.com/Mclaughling/article/details/113247668/** * 将一组数据平均分成n组 * @param source 要分组的数据源 * @param n 平均分成n组 * @param <T> * @return * @throws ExecutionExc
2021-01-27 14:29:45
2115
原创 JAVA 集合操作工具类
JAVA 集合操作工具类import lombok.extern.slf4j.Slf4j;import org.apache.commons.collections.CollectionUtils;import java.lang.reflect.Method;import java.util.*;/** * @Author Mc * @Date 2021/1/26 下午6:17 * @Version 1.0 */@Slf4jpublic class SegmentationCo
2021-01-27 14:15:42
432
3
原创 JAVA 用geotools 同时导入多个 KML到 postgreSQL数据库
KML 导入postgreSQL 数据库依赖导入<!--geotools 工具类--><dependency> <groupId>org.geotools</groupId> <artifactId>gt-geojson</artifactId> <version>24.1</version></dependency><dependency> <group
2021-01-20 11:31:19
1890
4
原创 JAVA 开启两个子线程 子线程执行完了在执行主线程
JAVA 开启两个字线程 字线程执行完了在执行主线程直接上代码import java.util.ArrayList;import java.util.List;import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.Exe
2021-01-19 15:44:38
781
原创 Hutool异步调用方法
Hutool异步调用方法POM<!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all --> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.1.19</version> </depe
2021-01-04 18:17:43
4899
3
原创 JAVA mybatis 批量-异步 插入数据
JAVA 批量-异步 插入数据这里省略mysql 的操作 这里只讲核心操作 模拟 插入mysql 数据 可以根据自己的实际业务需求 来完成代码的修改上代码public class test09 { public static void exec(List<String> list) throws InterruptedException{ int count = 4; //一个线程处理300条数据 int lis
2020-12-29 20:02:04
3320
3
原创 Nginx 配置统一域名同时支持 https 和 http 访问
Nginx 配置统一域名同时支持 https 和 http 访问1 申请证书 首先 需要在 腾讯云 或者 阿里云 申请证书 (具体 就不说了)2 上传证书scp /Users/aa/4966731_xxx.pem root@100.100.1.1: /usr/local/nginx/certscp /Users/aa/4966731_xxx.key root@100.100.1.1: /usr/local/nginx/cert3 配置nginx confserver { li
2020-12-24 14:16:34
736
原创 mysql 数据库存 json 类型 实体类如何处理
mysql 数据库存 json 类型 实体类如何处理现在遇见许多业务需求 需要在数据库存错json 数据类型 数据库 mysql 5.7.4 也支持这种类型建表语句CREATE TABLE `demo` ( `id` int(15) NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varchar(255) DEFAULT NULL COMMENT '名称', `type` int(15) DEFAULT NULL COMMENT '类型 ',
2020-12-22 17:59:50
5964
1
原创 实现 mybatis-plus 自动填值
实现 mybatis-plus 自动填值mybatis做新增或者更新的时候,总是会记录创建时间、更新时间等通用字段字段这些放在业务代码里面,其实看起来并不好看。mybatis有一个好的方法可以帮助我们自动的生成这些字段的信息,然后入库。mybatis的一个默认参数处理器DefaultParameterHandler它有一个默认子类MybatisDefaultParameterHandlerinsert和update,其实就是我们需要的东西。新增和更新的时候自动注入创建时间更新时间等字段。
2020-12-22 17:46:13
201
原创 easyExcel导入 无模版 实体类导入 自定义表头 存入数据库
喜欢的点赞???? 不喜欢的解散 创作不易记得三连开整1 导入依赖 <!--导出数据--><dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.3</version> </dependency>2.导入监听器@Slf4jpub
2020-12-18 17:37:25
3792
3
原创 easyExcel导出 无模版 实体类 导出 自定义表头
喜欢的点赞???? 不喜欢的解散 创作不易记得三连开整1 导入依赖 <!--导出数据--><dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.3</version> </dependency>2.样式工具类`import co
2020-12-17 18:25:43
4913
3
原创 SpringBoot redistemplate 工具类 操作 redis
喜欢的点赞???? 不喜欢的解散 创作不易记得三连开整1 导入依赖<!--Redis--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>2.2.9.RELEASE</version>
2020-12-15 20:00:33
205
原创 geotools 工具 导入shp 文件并解析
喜欢的点赞???? 不喜欢的解散 创作不易记得三连开整1 导入依赖<dependency> <groupId>org.geotools</groupId> <artifactId>gt-geojson</artifactId> <version>23.2</version></dependency><dependency> <groupId>org.
2020-12-14 16:32:00
805
1
mybatis-plus TABLE_INFO_CACHE
2021-03-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人