自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (1)
  • 收藏
  • 关注

原创 Transmission Control Protocol (TCP)

TCP协议(Transmission Control Protocol)是在IP协议之上的,确保IP数据包可靠传输的协议TCP协议拥有一些用于解决基于数据包的问题,例如丢包,包序错乱,重复包及包损坏由于TCP协议是IP协议之上最常用的协议,因此因特网协议栈有时候也称作TCP/IP协议包结构当使用TCP/IP协议发送包时,IP数据包的数据部分的结构是一个TCP数据包每个TCP数据包包含一个头和数据部分。TCP头包含比UDP协议头更多的字段,且大小可为20字节到60字节(具体大小由OPTIONS部分

2021-06-15 16:05:15 762 1

原创 User Datagram Protocol (UDP)

UDP协议(User Datagram Protocol)是一个轻量级饿的数据传输协议,它位于IP协议之上UDP协议提供了发现数据包损坏的机制,但是无法解决其他的关于数据包的问题,例如丢包或包顺序错乱。这也是为什么UDP协议有时候也被称为不可靠数据协议(Unreliable Data Protocol)的原因相比于其他基于IP层的其他协议来说,UDP协议简单且迅速。它经常被用于时间敏感的应用(例如在线影像流),因为这些对这些应用来说速度比准确性更重要数据包结构每个UDP数据段包含有一个8字节的头部

2021-06-10 23:37:04 1539 2

原创 JAVA配置多数据源并动态切换

参考:https://my.oschina.net/simpleton/blog/916108http://wenqy.com/2017/12/24/spring-boot%E5%AD%A6%E4%B9%A0%E7%B3%BB%E5%88%97%E4%B9%8Batomikos%E5%A4%9A%E6%95%B0%E6%8D%AE%E6%BA%90%E5%92%8C%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A15.html需求描述近期被分配了一个需.

2020-12-05 21:10:14 4181 2

原创 ThreadLocal类

ThreadLocal类是啥使用ThreadLocal类,目的是为了得到线程隔离的变量那么,ThreadLocal类到底是啥?其实,它就是个普通的类那它又是如何实现我们希望的功能:得到线程隔离的变量呢?其实很简单,每个Thread里都有一个线程独有的map,它的key就是ThreadLocal类的实例我们通过ThreadLocal去获取线程隔离的变量,其实就是去这个map里把ThreadLocal的实例作为key去找到对应的value罢了具体代码首先,让我们看看ThreadLocal是怎么用

2020-12-01 11:38:48 142

原创 @Async 或 aop 无效

问题描述: 在非异步方法中调用同一个类中的异步方法,结果并没有异步执行问题原因:spring是通过代理模式实现aop的,如果调用同一个类中的其他方法,实际上就是普通的方法调用,spring的aop没有起到作用问题解决:把异步方法单独放到一个类里,调用者通过spring注入这个类的单例进行调用...

2020-11-26 09:16:49 454

原创 rabbitmq报错及解决方案

问题1.报错:inequivalent arg 'auto_delete' for queue 'test' in vhost '': received 'true' but current is 'false'解决:经过检查,是某个消息receiver配置错误 @RabbitListener( bindings=@QueueBinding( value=@Queue(value="test",autoDelete="true"),

2020-11-19 09:51:50 1683

原创 JHipster关闭Liquibase

spring: profiles: active: dev include: - swagger - no-liquibase

2020-11-17 18:34:51 639

原创 使用JPA持久化实体时,equals和hashcode的最佳实践

起因描述项目使用的是Jhipster,Jhipster可以自动生成entity,dto,service等类。但是注意到,JHipster生成的entity的hashcode()方法永远都返回31 @Override public int hashCode() { return 31; }于是我去github看了相关issue,作者说他是故意这样做的,并提供了一篇参考:https://vladmihalcea.com/the-best-way-to-implem

2020-11-17 14:21:28 617

原创 Unable to load the library ‘netty_transport_native_kqueue_x86_64‘, trying other loading mechanism.

先写结论:这不是一个报错或bug,注意日志的级别是debug,所以直接无视就行参考:https://github.com/netty/netty/issues/8179第一段2020-11-16 19:23:05.831 DEBUG 14143 --- [ parallel-1] i.n.util.internal.NativeLibraryLoader : Unable to load the library 'netty_transport_native_kqueue_x86_64

2020-11-16 19:28:49 2525

原创 多模块项目下打包出现boot-inf

问题描述多模块项目下,有两个子模块: facade 和 core , core依赖facade在idea内开发时,启动项目不会报错,但是对项目进行打包时,却爆出了大量包不存在的错误因此进行排查,发现本仓库这个包确实存在解压jar包,发现目录如下,发现这应该才是问题所在,应该是maven在打包时产生了问题为解决这个问题,需要在被依赖模块的pom文件里加如下代码 <plugin> <groupId>org.springframework.boot</gr

2020-11-15 15:28:23 250

原创 OneToOne

OneToOneOneToOne定义了两个实体之间一对一的关系,有双向关系和单向关系一般用法如下: @OneToOne(cascade = CascadeType.PERSIST) @JoinColumn(unique = true) private Wife wife;OneToOne有如下属性可选:targetEntity : 关联的对象所属的类,由于默认采用字段类型所属的类,所以基本不用指定cascade: 级联,默认无级联CascadeType.ALLCa

2020-11-14 22:26:23 1092

原创 JHipster学习记录 - 4 JHipster微服务间调用

经过前面几步,我们的JHipster集群已经有了以下几个模块JHipster RegistryJHipster UAAJHipster Gateway现在,我们通过JHipster创建2个新的微服务:current-serviceother-service并且这个两个微服务都注册上JHipster Registry,且都使用JHipster UAA做身份校验我们知道,spring cloud间微服务调用使用的是Feign clients去进行调用所以我们先在current-serv

2020-11-13 17:18:44 293

原创 JHipster学习记录 - 3 JHipster Gateway

https://www.jhipster.tech/api-gateway/JHipster Gateway介绍通过之前的学习,我们拥有了registry和uaa, 现在通过gateway来把这些功能串起来JHipster Gateway也是一个JHipster微服务,它主要做了以下事情:它是整个JHipster微服务集群的访问入口提供了http路由和负载均衡JHipster Gateway会为注册上registry的微服务进行http路由,举个例子:服务app1注册上了,那么可以通过/se

2020-11-13 17:01:53 601

原创 JHipster学习记录 - 2 JHipster UAA

https://www.jhipster.tech/using-uaa/https://www.baeldung.com/jhipster-uaa-secured-micro-serviceJHipster UAA介绍前面我们介绍的JHipster Registry解决了服务注册与发现以及配置中心的问题,这个UAA则是为了解决授权问题。它主要上做了2件事它提供了用户管理的服务,实际上uaa默认生成一个user表,并提供了user的增删查改服务。当然,如果对它对用户管理不满意,就可以在uaa项目的

2020-11-13 16:26:51 498

原创 JHipster学习记录 - 1 JHipster Registry

https://www.jhipster.tech/jhipster-registry/JHipster Registry介绍JHipster Registry有三个作用:Eureka Server, 为微服务集群提供服务注册与发现,并提供http访问的路由和负载均衡功能Spring Cloud Config server,作为运行时的配置中心管理中心,提供了控制面板去监控并管理注册在上面的服务因此,要使用JHipster来搭建微服务集群,必须要先搭建一个JHipster Registry

2020-11-13 12:47:01 768

原创 JHipster大坑集合

1. JHipster registry无法启动描述:当我们按照教程,git clone最新的JHipster registry到本地,然后执行./mvnw -Pdev,webpack去启动时,报错如下:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project jhipster-registry: Fatal error

2020-11-11 19:27:11 869

原创 JHipster学习记录 - 0 安装

JHipster介绍官网:https://www.jhipster.tech/官方教程:https://github.com/mraible/jhipster6-demoJHipster是一个开发平台,用于生成,开发和部署 Spring Boot + Angular / React / Vue Web应用程序和Spring微服务。目标是为生成一个完整的现代Web应用程序或微服务架构JHipster is a development platform to quickly generate, dev

2020-11-11 19:14:35 155

原创 WebSocket和STOMP的简单demo

WebSocket背景由于http协议是单工通信,也就是说只能由浏览器端发送请求,服务端无法主动与浏览器进行通信。因此,当要实现服务端向浏览器推送信息时,往往只能让服务器端去定期发送请求获取数据,这样的做法明显太“笨“了。而WebSocket就是为了解决这个问题,顾名思义,WebSocket就是web端与服务端间的socket连接,是基于TCP协议的。就像socket一样,WebSocket可以简化为3步服务端启动一个"SocketServer"浏览器建立连接服务端向已经建立连接端客户端推送信

2020-11-03 00:01:19 786

原创 关于io多路复用的理解

0. 一个小故事需求:小黄是一个收信员,需要去A,B两家收信。他先去了A, 但A磨磨唧唧的就不给小黄信,小黄只能干等着,而B的信早就写好了一直等小黄来收,但是由于小黄只能等A给信了才能再去B收,结果让B等了几个小时。最后,小黄被生气的B投诉扣工资。bio :经过上次的教训,小黄决定为每个客户都安排一个收信员1对1服务,这样虽然投入增加了,但是每个客户都非常满意。于是小黄的客户越来越多,可是随着客户增加,小黄发现收信员也越来越多,渐渐入不敷出。而且,很多收信员根本不忙,大部分时间都在等着客户写信,于是小黄

2020-10-26 12:40:34 398

原创 合唱队问题

题目描述计算最少出列多少位同学,使得剩下的同学排成合唱队形说明:N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足存在i(1<=i<=K)使得T1<T2<…<Ti-1Ti+1>…>TK。你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。.

2020-10-13 16:58:16 711

原创 spring boot 开启kafka事务

spring boot 开启kafka事务需要修改application.ymlproducer: #开启事务,当开启时retries必须>0 acks必须为all transaction-id-prefix: transaction # 写入失败时,重试次数。当leader节点失效,一个repli节点会替代成为leader节点,此时可能出现写入失败, # 当retris为0时,produce不会重复。retirs重发,此时repli节点完全成为leade

2020-09-17 21:04:22 718

原创 为什么lambda函数引用的外部变量不允许更改

java8新特性lambda函数很好用,但是有个限制,就是当Lambda函数内部使用外部的变量时,虽然不要求外部变量要用final修饰,却也不允许该外部变量被修改,这是为何呢?这是因为lambda函数内使用外部变量时,并不是使用引用,而是把变量的值拷贝了一份放到自己作用域中。所以如果变量之后被修改,会造成混乱,因此外部变量虽然不需要用final修饰,但也不允许被修改。...

2020-08-28 23:31:32 1189 1

原创 12. 部署heapster插件

下载二进制文件到 heapster release 页面 下载最新版本的 heapster$ wget https://github.com/kubernetes/heapster/archive/v1.5.0-beta.0.zip$ unzip v1.5.0-beta.0.zip官方文件目录: heapster-1.5.0-beta.0/deploy/kube-config/i...

2018-09-07 16:01:41 413 1

原创 11. 部署dashboard插件

官方文件目录:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dashboard下载yaml文件我下的时候下不下来,所以是先下到电脑上然后scp到服务器上的。yaml文件一共有好几个,全部都要下$ wget https://github.com/kubernetes/kubernetes/b...

2018-09-07 16:01:15 408

原创 10. 部署dns插件

官方文件目录:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dns下载kube-dns.yaml.base$ wget https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/dns/kube-dns.yaml.b...

2018-09-07 16:00:24 495

原创 K8S部署步骤:9-部署Node节点

kubernetes Node节点包含如下组件:etcdflanneldockerkubeletkube-proxy导入环境变量$ source /root/local/bin/environment.sh安装和配置kubelet下载二进制文件从CHANGELOG页面下载server tarball文件$ wget https://dl....

2018-08-15 10:02:57 997

原创 K8S部署步骤:8-部署Master节点

kubernetes master节点包含的组件:etcdflanneldockerkube-apiserverkube-schedulerkube-controller-manager目前这三个组件需要部署在同一台机器上: - kube-scheduler、kube-controller-manager和kube-apiserver三者的功能紧密相关; - 同时只能有一...

2018-08-15 10:01:45 1700

原创 K8S部署步骤:7-部署flannel网络

kubernetes要求集群内各节点能通过Pod网段互联互通,本文档介绍使用Flannel在所有节点(Master、Node)上创建互联互通的Pod网段的步骤。导入环境变量$ source /root/local/bin/environment.sh创建TLS秘钥和证书etcd集群启用了双向TLS认证(之前etcd已经有证书了,而etcd访问flannel也需要加密),...

2018-08-15 10:01:07 3186

原创 K8S部署步骤:6-部署etcd集群

kuberntes系统使用etcd存储所有数据,本文档介绍部署一个三节点高可用的etcd集群的步骤,这三个节点复用kubernetes master机器,分别命名为ERP-KUBE-TEST、ERP-KUBE-TEST2、ERP-KUBE-TEST3:10.61.16.39:ERP-KUBE-TEST10.61.16.29:ERP-KUBE-TEST210.61.16.28:ERP-KU...

2018-08-15 09:59:59 938

原创 K8S部署步骤:5-harbor使用

学习完本章教程后,小伙伴可以将一些需要用的的镜像上传到本地私有仓库,后续应用部署均可以使用本地仓库镜像来完成,极大的提高部署效率。另外,企业的私有应用也同样可以上传到自己的私有仓库,提高安全性。创建项目点击+项目创建一个kubernetes镜像仓库 docker客户端登陆将签署harbor证书的CA证书拷贝到所有节点的/etc/docker/certs.d/10.61....

2018-08-15 09:51:49 3571

原创 K8S部署步骤:4-harbor安装

导入环境变量$ source /root/local/bin/environment.sh安装docker compose获取最新版本地址在线安装docker compose$curl -L https://github.com/docker/compose/releases/download/1.17.0-rc1/docker-compose-`uname -s`...

2018-08-15 09:50:39 2650

原创 K8S部署步骤:3-docker安装与卸载

kubernetes系统使用到的的大量组件的docker镜像均来自google,这也正是为什么kubernetes官网明明提供了很完善的部署文档,但是部署难度仍然很大的原因(原因你懂的)。这几章则会教大家安装docker及其私有仓库harbor,并且利用harbor存储用到的镜像。安装docker ceInstall required packages. yum-utils provi...

2018-08-15 09:49:29 2793

原创 K8S部署步骤:2-创建ca证书与秘钥

kubernetes系统各组件需要使用TLS(SSL)证书对通信进行加密,本文档使用CloudFlare的PKI工具集cfssl 来生成Certificate Authority (CA) 证书和秘钥文件,CA是自签名的证书,用来签名后续创建的其它TLS证书。在所有节点安装cfssl$ wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd6...

2018-08-15 09:48:36 4033 1

原创 K8S部署步骤:1-操作系统初始化设置

关闭防火墙因为k8s是集群间通信的,如果防火墙做了啥限制,说不定就导致通信失败,所以直接关掉$ sudo systemctl stop firewalld$ sudo systemctl disable firewalld清理iptables规则iptables也是防火墙,与上一步同样的原因,要清理掉已有的规则$ sudo iptables -F &amp;&am...

2018-08-15 09:46:05 1146

原创 K8S部署步骤:0-准备工作

规划部署步骤kubernetes是一个平台,它不是一个软件,是一套软件,有很多软件需要安装。因此需要规划部署步骤,一步一步完成,每一步都为后面提供支撑。部署步骤如下: 1. 操作系统初始化设置 2. 创建ca证书和私钥 3. docker安装与卸载 4. harbor安装 5. harbor使用 6. 部署etcd集群 7. 部署flannel网络 8. 部署master节...

2018-08-15 09:38:35 1227 1

原创 记一个k8s安装时的坑

k8s安装时的一个坑在安装k8s时,为了安全性考虑,需要使用ssl证书。 我使用了cfssl来生成证书,证书配置文件如下:{ "signing": { "default": { "expiry": "8760h" }, "profiles": { "kubernetes": { "usages&qu

2018-08-07 12:06:22 1011

原创 HHH000122: IllegalArgumentException in class....getter method of property: id

HHH000122: IllegalArgumentException in class….getter method of property: id我的项目是微服务架构,用的是spring boot2 ,这几天碰到一个特别奇怪的问题。 我有一个权限服务,其中有一个角色表Group,角色拥有的权限表Rights//角色表public class Group(){ @Id ...

2018-07-09 21:52:23 2332

原创 ceph + kubernetes

首先,k8s的woker node上,要安装ceph其次,需要把要使用的用户的keyring拷贝到/etc/ceph/下rbd静态挂载创建并初始化rbd pool创建image注意了,这里一定要仔细检查,千万不要在任何节点map了这个image,否则会导致报错(挂载超时)!!写pv.yaml文件,可以指定keyring或secret,keyring就是你要使用的c...

2018-06-04 20:43:52 504

翻译 ceph user

这个文档描述了ceph client user,以及user在ceph集群里的授权情况。当ceph集群启用了权限验证(默认开启),你一定要指定一个user name和一个keyring(含有指定user的密钥)。如果你不指定一个user name,ceph会使用client.admin作为默认user name。如果你不指定一个keyring,ceph会在ceph配置文件夹(/etc/ceph...

2018-06-04 20:35:10 1138

原创 ceph安装总结

安装总结安装ceph集群,其实就是找个主机作为admin节点,安装ceph-deploy,然后用ceph-deploy安装其他组件安装前要做很多设置,安装ntp来确保时间同步,创建免密sudo与免密登录的安装用户等等第一步是初始化集群,这一步指定一个mon,然后就会生成ceph.conf和mon的keyring第二步就是在各个节点安装ceph,这一步要安装一堆东西,提示安装失败没关系,...

2018-06-04 20:31:26 1273

MIMO雷达原理及优缺点

详细讲解MIMO雷达原理及优缺点,便于快速理解MIMO雷达的基本原理

2014-04-30

空空如也

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

TA关注的人

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