![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ds
郑某人。
这个作者很懒,什么都没留下…
展开
-
记录一次Dockerfile发布自己微服务的全流程
1、准备好我们自己的项目,并上传服务器服务端口8082测试接口上传到/opt/test目录下2、在/opt/test目录下准备Dockerfile文件#继承环境FROM java:8MAINTAINER zgr#数据卷目录VOLUME /tmp#将宿主机目录下的文件拷贝到镜像中ADD gtmcmsg-1.0-SNAPSHOT.jar test.jar#容器构建时候创建文件RUN bash -c 'touch /test.jar'#启动容器后执行jav原创 2022-04-10 16:34:53 · 265 阅读 · 0 评论 -
JUC学习(草稿备份)
容易混淆的概念 线程 wait 和 sleep 的区别: wait会让出CPU执行权 并且释放掉锁 sleep让出CPU执行权 但是不会释放锁多线程下集合的使用ArrayList是线程不安全的,多个线程修改同一个集合时会导致concurrentModification异常public static void main(String[] args) { List<String> list = new Arra原创 2022-04-01 13:52:05 · 65 阅读 · 0 评论 -
docker常用命令
docker服务命令启动systemctl start docker停止 systemctl stop docker重启 systemctl restart docker查看docker状态 systemctl status docker开机启动 systemctl enable docker查看docker占用空间 docker system df查看本地镜像 docker images 查找远程库镜像 docker search [--limit 5 显示前五个] redis下载镜像...原创 2022-03-31 10:31:33 · 1130 阅读 · 0 评论 -
简单Shell命令脚本
应用程序/用户通过Shell命令来驱动操作系统内核。脚本开头:#!/bin/bashecho: 可以理解为输出$n: n为几,就表示第几个参数,0表示脚本文件,10以上写法 ${10}$#:表示输入参数的个数$*:表示所有输入参数$?: 表示上一次执行命令的状态,0=成功,其他数字=失败[ ] 和 [ [ ] ]的区别:-z判断变量是否为空,空=0[ -z "$pid" ] 单对中括号,变量必须要加双引号[[ -z $pid ]] 双对中括号,变量不用加双引号原创 2022-03-27 15:03:00 · 1913 阅读 · 0 评论 -
Mysql慢查询操作流程记录
查看慢查询是否开启show variables like '%slow_query_log';开启慢查询set global slow_query_log =on;查看慢查询日志存放位置show variables like '%slow_query_log%';更改慢查询时间 默认10秒show variables like '%long_query_time%';set global long_query_time =1;查看慢查询的sql数show gl原创 2022-04-02 15:03:51 · 126 阅读 · 0 评论 -
Mysql主从同步原理
Master节点:做数据的增、删、改操作Slave节点:做数据的查询主从同步的好处:1、读写分离,查询操作分布在slave上,减少master压力2、高可用,主节点宕机从节点保留数据同步流程:1、当对数据在Master节点上进行增删改操作后,主节点会将这些操作记录在binlog日志中(二进制日志记录了对mysql 数据库的执行更改的所有操作 )2、从节点开启一个IO线程来读取binlog日志,并且写入从节点的relay log中3、从节点开启SQL线程读取rela原创 2022-03-21 10:06:11 · 951 阅读 · 0 评论 -
关于Redis Lettuce连接池的问题
SpringBoot 2.x 不再使用jedis做连接池,而使用Lettuce。Jedis和Lettuce的区别jedis和Lettuce都是Redis的客户端,它们都可以连接Redis服务器,但是在SpringBoot2.0之后默认都是使用的Lettuce这个客户端连接Redis服务器。因为当使用Jedis客户端连接Redis服务器的时候,每个线程都要拿自己创建的Jedis实例去连接Redis客户端,当有很多个线程的时候,不仅开销大需要反复的创建关闭一个Jedis连接,而且也是线程不安全的,原创 2021-12-16 14:58:05 · 4096 阅读 · 1 评论 -
线程池设置一个线程的执行时间
public class ThreadTest { public static void main(String[] args) throws InterruptedException, ExecutionException { final ExecutorService exec = Executors.newFixedThreadPool(1); Callable<String>.原创 2021-12-11 17:05:47 · 1898 阅读 · 0 评论 -
Cors开发环境跨域配置
@Configurationpublic class AlmWebMvcConfig implements WebMvcConfigurer { @Bean public LocaleResolver localeResolver() { return new AlmLocaleResolver(); } @Profile("dev") @Override public void addCorsMappings(CorsRegistry .原创 2021-11-29 18:22:19 · 125 阅读 · 0 评论 -
数据库多数据源的配置
没啥好聊的,直接上代码注释1、依赖文件和配置文件 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <原创 2021-10-25 23:13:58 · 3116 阅读 · 6 评论 -
ElasticSearch介绍使用(附api demo)
名词解释:正排索引: 直接根据主键索引 id 查询data内容iddata111我是人110我是中国人倒排索引: 先对data分词,关联id,从而获取完整数据keywordid我111,110人111,110中国人110ElasticSearchElastic有一条完整的产品线:Elasticsearch、Logstash、Kibana等,前面说的三个就是大家常说的ELK技术栈。Elasticsearch原创 2021-10-03 17:41:16 · 390 阅读 · 0 评论 -
策略+工厂模式解决大量if..else的逻辑处理
优化前的接口工作中肯定会遇到大量if…else的情况,判断量小还可以,如果做大量判断会使得代码非常臃肿。@RestControllerpublic class Controller { @GetMapping("/{name}") public String getDat(@PathVariable("name") String name){ if(name.equals("AA")){ new AAStrategy().getDataA();原创 2021-08-21 17:56:52 · 195 阅读 · 0 评论 -
关于EasyExcel的使用
导入依赖坐标<!-- EasyExcel --><dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.6</version></dependency>实体对象@Data@ColumnWidth(20) //表格列宽public cla原创 2021-08-15 00:08:48 · 496 阅读 · 0 评论 -
实现自定义异常以及统一返回类型(国际化配置)
做一个简单的配置实现返回项目中返回类型统一1、自定义返回对象result@Datapublic class Result<T> { private String code; private String msg; private T data; public Result(String code, String msg) { this.code = code; this.msg = msg; }原创 2021-08-01 14:52:51 · 761 阅读 · 0 评论 -
列式数据库,OLAP与OLTP
刚接触clickhouse,对于olap与oltp有点蒙圈。记录一下当前的认知,比较浅显,有志之士多补充修正。OLTP:联机事务处理。主要用于数据库,对业务数据进行数据采集,crud,如mysql这些库。 如对user表,查询id=1的学生信息。 OLAP:联机分析处理。主要用于数据仓库,以大量历史数据为基础,主要进行分析查询。 如查询user表中年龄在18-20区间段的所有学生姓名。列存储的数据库更适合OLAP行存...原创 2021-07-16 15:14:51 · 247 阅读 · 0 评论 -
有关kafka
消息队列的两种模式1、点对点,一条消息只能被一个消费者所消费2、发布订阅生产者将消息发布后,订阅的消费者会拿到该消息发布订阅模式分为推模式和拉模式两种:1、推模式(producer将消息推送到可用的consumer中)缺点:不能根据每个消费者的消费能力来选择性推送2、拉模式(producer有消息后,consumer从topic中根据自己的消费能力拉取消息)缺点:consumer需要维持一个长链接,一直查看topic中有没有新的消息,没有数据时会导致空轮询 topic中要存一个消费原创 2021-07-13 21:35:36 · 113 阅读 · 2 评论 -
实现一个安全的单例模式-----懒汉式
public class gg { private static volatile gg INSTANCE; //JIT private gg() { } public static gg getInstance() { //双重检查 //第一次检查:为了减少开销,避免将判断条件放在锁之后,不断上锁关锁的损耗 if (INSTANCE == null) { synchronized (gg.class原创 2021-06-22 16:51:07 · 70 阅读 · 0 评论 -
JVM垃圾回收
JAVA程序运行流程JVM数据区组成会发生内存泄漏: 虚拟机栈、本地方法栈、堆堆内存异常不断的New对象,当最后一个对象创建后,无法为其分配内存空间栈内存异常不断有变量创建,造成栈内存满垃圾回收机制一、首先判断清理哪些内容垃圾回收前要判断一个对象是否存活,哪些死去。引用计数器算法(Python):给每个对象添加一个计数器,当有一个引用时,计数器+1,引用失效,计数器-1。为0时,说明没有引用。但是没办法解决对象之间循环引用。可达性分析算法(JVM):通过一个称为“GC Roo原创 2021-05-16 16:05:03 · 52 阅读 · 0 评论 -
Zookeeper与Dubbo的介绍与基本案例
装逼的话很多,看这儿就足够了!分布式:一个业务分拆多个子业务,部署在不同的服务器上集群:同一个业务,部署在多个服务器上一、Zookeeper入门Zookeeper:是一个为分布式应用提供协调服务的Apache项目。举例: 服务端将自身的状态信息存储到zookeeper上,然后客户端注册到ZK上,一单状态信息发生改变,通知ZK。Zookeeper其实采用的是文件系统+监听机制就是将一个集群作为一个Znode结点(类似linux文件系统的方式),集群中的各个结点就是这个Znode结点下的子结.原创 2021-03-19 02:18:14 · 673 阅读 · 4 评论 -
swagger
Swagger使用步骤导入依赖<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId>原创 2021-03-05 15:03:19 · 101 阅读 · 0 评论 -
alibaba的JSONObejct常用转换方法
Java对象---->JSON对象Stu stu =new Stu(1,"JAAR","male");System.out.println(JSONObject.toJSON(stu));// JSON对象 {"sex":"male","name":"JAAR","id":1}JAVA对象---->JSON字符串String json = JSONObject.toJSONString(stu);System.out.println(json); //JSON字符串 {"i.原创 2021-03-04 17:25:17 · 443 阅读 · 1 评论 -
Nginx常用命令
Nginx常用命令:运行命令(后台启动):start nginx 启动nginx服务运行命令(前台启动):nginx -g “daemon off;”停止命令:nginx -s stop 停止nginx服务重启命令:nginx -s reload(启动多个nginx时,主从进程会乱序,stop命令无效)彻底杀死进程:taskkill /f /t /im nginx.exe...原创 2021-03-04 14:54:08 · 493 阅读 · 1 评论 -
PageHelper参数详解
PageInfo参数:public class PageInfo<T> implements Serializable {private static final long serialVersionUID = 1L;//当前页private int pageNum;//每页的数量private int pageSize;//当前页的数量private int size;//由于startRow 和endRow 不常用,这里说个具体的用法//可以在页面中"显示startRow原创 2021-03-02 10:09:14 · 1278 阅读 · 0 评论 -
Thymeleaf前台页面直接访问后台Service
前台页面标签:<select name="roomTag" class="form-control m-b" th:with="type=${@dict.getType('lndoor_sensor_position')}"> <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:selected="${#strings.contains(dict原创 2021-03-01 15:26:10 · 1250 阅读 · 0 评论 -
将Map中的value降序排列
//降序排序 List<Map.Entry<String, Double>> list = new ArrayList<>(pMap.entrySet()); Collections.sort(list, new Comparator<Map.Entry<String, Double>>() { @Override public int compare(Map.Entr原创 2021-02-28 18:04:25 · 99 阅读 · 0 评论