自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

明天,争取的博客

大道至简,繁在人心;生命不息,学习不止。

原创 【消息中间件】RabbitMQ入门基础篇

一、消息通信模型生产者创建消息,消费者接收这些消息。消息的媒介为建立在真实TCP连接上的虚拟信道(channel)。二、什么是信道?为什么要建立信道?发布消息到RabbitMQ,首先需要先连接到RabbitMQ,才能消费或发布消息。此时,在应用程序和RabbitMQ代理服务器之间创建一条TCP连接,一旦TCP连接打开(通过认证),应用程序就可以创建一条AMQP信道。信道是建立在"真实的"TCP连接内的虚拟连接。AMQP命令都是通过信道发送出去的。每条信道都会被指派一个唯一的ID(保.

2020-07-05 13:39:16 115

原创 【入门教程】Spring Cloud Stream 入门

一、什么是Spring Cloud Stream?Spring Cloud Stream is a framework for building highly scalable event-driven microservices connected with shared messaging systems.The framework provides a flexible programming model built on already established and familiar S

2020-06-27 09:55:33 109

原创 【踩坑记录】Quartz避坑指南,看这一篇就够了。。。
原力计划

一、基本组件介绍Scheduler 任务调度器,按照特定的触发规则,自动执行任务。 Job 接口,定义需要执行的任务。 JobDetail 包含job的基本信息。 Trigger 描述Job执行的时间触发规则。 JobStore 存放Job、Trigger等信息。SchedulerScheduler是一个任务调度器,保存JobDetail和Trigger的信息。 在Trigger触发时,执行特定任务。实现了org.quartz.Scheduler接口的StdSchedule实际只是Qu

2020-06-03 23:34:31 144

原创 【Netty专栏】五、Netty线程模型
原力计划

占位

2020-04-25 22:48:58 69

原创 【Netty专栏】四、零拷贝原理
原力计划

一、什么是零拷贝?零拷贝(Zero-copy) 技术是指计算机执行操作时,CPU不需要先将数据从某处内存复制到另一个特定区域。这种技术通常用于通过网络传输文件时节省CPU周期和内存带宽。 零拷贝技术可以减少数据拷贝和共享总线操作的次数,消除传输数据在存储器之间不必要的中间拷贝次数,从而有效地提高数据传输效率 零拷贝技术减少了用户进程地址空间和内核地址空间之间因为上:下文切换而带来的开销。...

2020-04-05 14:14:52 93

原创 【Netty专栏】三、IO多路复用

一、背景在I/O编程过程中,当需要同时处理多个客户端接入请求时,可以利用多线程或者I/O复用技术进行处理。二、什么是IO多路复用?通过把多个I/O的阻塞复用到一个select的阻塞上,从而使得系统在单线程的情况下可以同时处理多个客户端请求。三、应用场景服务器需要同时处理多个处于监听状态或者多个连接状态的套接字。(即多个客户端) 服务器需要同时处理多种网络协议的套接字。(即多...

2020-04-05 09:57:43 75

原创 【Netty专栏】二、Linux网络I/O模型简介

Linux的内核将所有外部设备都看作一个文件来操作,对一个文件的读写会调用内核提供的系统命令,返回一个file descriptor(fd,即文件描述符)。而对于一个socket的读写也会有相应的描述符,称为socketfd(即socket描述符),描述符就是一个数字,它指向内核中的一个结构体(文件路径,数据区等一些属性)。 一、根据UNIX网络编程对I/O...

2020-04-05 00:11:39 37

原创 「智慧医疗」1分钟学会解析HL7协议数据

一、什么是HL7?标准化的卫生信息传输协议,是医疗领域不同应用之间电子传输的协议。HL7汇集了不同厂商用来设计应用软件之间接口的标准格式,它将允许各个医疗机构在异构系统之间,进行数据交互。HL7 建于1987,用来发展独立卫生保健定向计算制度中临床、财务和管理信息的电子交换标准,如医院信息系统,临床实验系统,企业系统和药房系统。简单来说:HL7是一套互联网医疗协议,通过这套协议,医疗数据...

2019-08-22 18:15:12 2143 8

原创 【解决方案】通过JavaScript获取服务器的ip

var ip_addr = document.location.hostname;

2020-07-30 17:14:48 20

转载 【解决方案】Are you trying to mount a directory onto a file or vice-versa 解决方法

运行docker命令:docker run -p 80:80 -p 8080:8080 --name nginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -d nginx:latest出现错误:docker: Error response from daemon: oci runtime error: container_linux.go:262: start

2020-07-26 10:47:32 81

转载 【解决方案】大数据JSON流解析

背景最近在做一个需求,需要每月从一个别的数据系统同步一次数据过来。数据量大概90W条左右,数据接口只提供了一个JSON接口,接口返回报文为JSON,并且没有任何分页。这个数据量如果直接使用普通方式解析的话,肯定内存溢出。解决思路我们要保证内存溢出,那么就不能把得的数据全部存放在内存然后处理。通常我们在处理一些大的数据文件时也会有同样的情况,我们可能会在读取文件的流中一行一行的对数据进行处理,处理完的数据丢弃,将会被垃圾回收,这样一个很大的文件也可以保证正常处理。那么对于接口,实际响应报文也是一个

2020-07-11 23:10:58 70

原创 【消息中间件】RabbitMQ如何保证消息的可靠传输

一、消息持久化 在消息发布前,通过把它的投递模式(delivery mode)选项设置为2来把消息标记为持久化。 1.1 消息持久化过程: 当发布一条持久化消息到持久化交换器上时(带有durable=true的exchange),Rabbit会在消息提交到日志文件后 才发送响应。如果这条消息路由到了非持久化队列,它会自动从持久化日志中移除,并且无法从服务器重启中恢复。 如果从持久化队列中消费了一条持久化消息的话(并且确认了它),RabbitMQ会在持久...

2020-07-04 22:47:17 69

原创 【解决方案】RabbitMQ中exchange和DLQ设置出现type longstr but current is none

AlternateExchange是RabbitMQ中自定义的备用交换机的名称Channel shutdown: channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - inequivalent arg 'alternate-exchange' for exchange 'FruitDirectExchange' in vhost '/'.

2020-06-26 20:21:35 214

原创 【解决方案】springboot 设置非web启动

spring.main.web-application-type=none

2020-05-10 12:10:37 500

原创 【解决方案】Mysql 的时区问题:zeroDateTimeBehavior CONVERT_TO_NULL convertToNull

一、报错如下JDBC driver for MySQL连接提示"The connection property ‘zeroDateTimeBehavior’ acceptable values are: ‘CONVERT_TO_NULL’, ‘EXCEPTION’ or ‘ROUND’. The value ‘convertToNull’ is not acceptable."二、报错...

2020-05-04 15:35:27 229

原创 【Netty专栏】七、Netty作为HTTP服务器实例

import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.nio.NioServerSocketChannel;public cla...

2020-05-02 10:51:36 101

原创 【Netty专栏】六、Netty入门实例

一、代码实例import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelInitializer;import io.netty.channel.ChannelOption;import io.netty.channel.ni...

2020-04-19 22:30:01 60

原创 【解决方案】springboot 打jar包后启动,resource下配置文件找不到

public static String getFileContent(String fileName) { StringBuilder sb = new StringBuilder(); try { ClassPathResource classPathResource = new ClassPathResource(fileName);...

2020-04-17 13:12:58 443

原创 【Netty专栏】一、Netty介绍和应用场景

一、Netty简介Netty 是由 JBOSS 提供的一个 Java 开源框架,现为 Github上的独立项目。 Netty 是一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络 IO 程序。 Netty主要针对在TCP协议下,面向Clients端的高并发应用,或者Peer-to-Peer场景下的大量数据持续传输的应用。 Netty本质是一个NIO框架,适用于服务...

2020-04-04 22:10:55 186

原创 【解决方案】shell脚本判断内存占用率

#!/bin/bashmaxMemoryUse=30memoryUsed=$(free -m|sed -n '2p'|awk '{printf("%.2f\n",($3-$6-$7)/$2*100)}')if [ $(echo "$memoryUsed > $maxMemoryUse" | bc) -eq 1 ]then echo "内存占用率过高"fi...

2020-04-04 21:45:50 144

原创 【解决方案】Springboot缓存自定义,支持过期时间,过期方式properties文件配置

@Configuration@ConfigurationProperties(prefix = "caching")@Data@Slf4j@EnableCachingpublic class CacheConfiguration { @Data public static class CacheSpec { private Integer timeout...

2020-03-20 15:23:07 1739 4

原创 【解决方案】@Valid校验list无效

校验List@Valid只能校验JavaBean,而List不是JavaBean所以校验会失败,解决方案如下:@Datapublic class ListWrapper<E> { @NotEmpty @Valid private List<E> list; public ListWrapper() { l...

2020-03-20 14:58:21 664

原创 【解决方案】springboot增加全局时间转换器

@Configurationpublic class GlobalDateConvertConfig { /** * Date转换器,用于转换RequestParam和PathVariable参数 */ @Bean public Converter<String, Date> dateConverter() { retu...

2020-03-20 14:51:56 105

原创 【解决方案】docker-compose.yml安装sqlserver

version: '3'services: sqlserver: image: "microsoft/mssql-server-linux:latest" container_name: "sqlserver" ports: - "1433:1433" volumes: - "/home/docker/sqlserver/mssql:...

2020-03-17 18:03:37 298

转载 【知识课堂】Centos7开放及查看端口

1、开放端口firewall-cmd --zone=public --add-port=5672/tcp --permanent#开放5672端口firewall-cmd --zone=public --remove-port=5672/tcp --permanent#关闭5672端口firewall-cmd --reload #配置立即生效2、查看防火墙所有...

2020-03-17 16:17:32 29

原创 【解决方案】docker网络管理

docker network create -d overlay --gateway 10.0.1.1 --subnet 10.0.1.0/24 --attachable --label com.docker.compose.network=test --label com.docker.compose.project=docker docker_test

2020-03-15 19:03:58 41

原创 【解决方案】1分钟学会用docker-compose构建gitlab

version: '3'services: gitlab: image: "gitlab/gitlab-ce:latest" container_name: "gitlab" ports: - "8081:80" - "8043:443" - "8022:22" volumes: - "/home/doc...

2020-03-14 16:31:56 46

原创 【解决方案】阿里云、腾讯云学生机1核2G内存服务器构建Gitlab私服

一、修改GitLab配置文件/etc/gitlab/gitlab.rb1、减少进程数,修改worker_processes:unicorn['worker_processes'] = 2#默认是被注释掉的,官方建议该值是CPU核心数加一,可以提高服务器的响应速度,如果内存只有4G,或者服务器上有其它业务,就不要改了,以免内存不足。另外,这个参数最小值是2,设为1,服务器可能会卡死...

2020-03-13 14:32:25 475

原创 【解决方案】docker构建zookeeper

docker exec -it zookeeper zkCli.sh -server zookeeper

2020-03-13 11:00:56 82

转载 【解决方案】Docker 错误 “port is already allocated” 解决方法

一句话总结就是容器占用的port还没有完全释放Docker 在启动容器时,报出了下面的错误: 1 docker: Error response from daemon: driver failed programming external connectivity on endpoint gateway_cc39fe5306c1 (cc39fe5306...

2020-03-13 09:43:56 723

原创 【解决方案】docker-compose命令未找到怎么办?

一、问题:二、解决:2.1 进入下面的网址下载目前的最新版:https://github.com/docker/compose/releases/tag/1.14.0-rc22.2 网页拉到最下面,下载:docker-compose-Linux-x86_642.3 然后将文件上传到/usr/local/bin/ 文件夹下scp docker-com...

2020-03-12 10:28:17 263

原创 【版本控制】SpringCloud和Springboot之间依赖关系如何查看

一、粗略版本对应查看方法:https://spring.io/projects/spring-cloudRelease train Spring Boot compatibility Release Train Boot Version Hoxton 2.2.x Greenwich 2.1.x ...

2020-03-11 16:04:13 734

原创 【构建工具】gradle中api、implementation和compile的区别

Configuration name Role Consumable? Resolvable? Description api Declaring API dependencies no no This is where you should declare dependen...

2020-03-11 14:14:04 93

原创 【解决方案】阿里云服务器gitlab邮箱配置OpenTimeout: execution expired

一、问题原因: 阿里云服务器默认是屏蔽25端口的。改用163邮箱的465端口即可。二、解决办法:gitlab_rails['smtp_port'] = 465gitlab_rails['smtp_tls'] = true...

2020-03-08 14:16:26 259

转载 【解决方案】GitLab服务器IP地址修改

一、切换目录:[root@localhost config]# cd /opt/gitlab/embedded/service/gitlab-rails/config 二、修改gitlab.yml文件:[root@localhost config]# vim gitlab.yml 三、重启服务gitlab-ctl restart ...

2020-03-07 16:59:56 131

转载 【解决方案】gitlab Protected branch

目录一、问题二、解决一、问题git push提交到一个新创建的gitlab项目时,出现remote: GitLab: You are not allowed to push code to protected branches on this p roject. 报错信息。二、解决...

2020-03-07 16:06:46 312

转载 【解决方案】springboot引入通用配置文件

springboot中spring.profiles.include的妙用。我们有这样的一个springboot项目。项目分为开发、测试、生产三个不同阶段(环境),每个阶段都会有db、ftp、redis等的不同配置信息。我们可以使用spring.profiles.include来实现三种不同环境的一键切换。项目总(入口)配置文件:bootstrap.yml,内容如下...

2020-03-06 18:09:40 74

转载 【解决方案】mysql开启远程访问权限的设置

MySql-Server 出于安全方面考虑默认只允许本机(localhost, 127.0.0.1)来连接访问.所以必须给root修改可以远程访问的权限1.在连接服务器后,操作mysql系统数据库命令为: mysql -u root -proot:表示用户名 use mysql;2.查询用户列表select...

2020-03-04 18:42:26 184

转载 【解决方案】如何启动linux上的svn服务

首先看看svn安装的位置:可以看到的是svn的地址是opt/svn那么到底是不是:我们到这个目录下看:是的,我们在repository下面看到了confdbformathookslocks等等就是我们的svn仓库的地址了,说了半天如何启动:就是这个命令:svnserve -d -r ../opt/svn/repositories/svn就启动...

2020-03-04 18:14:10 43

原创 【解决方案】[Warning] World-writable config file ‘/etc/(…)/my.cnf’ is ignored

changed permissions to/mysql/my.conffile:$ chmod 0444 my.cnfWhen usingDocker Toolbox and the Devilboxon Windows,*.cnffiles must have read-only file permissions, otherwise they are not sour...

2020-03-03 22:33:06 73

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