理解注解中的@Inherited
@Inherited: @Inherited 元注解是一个标记注解,@Inherited阐述了某个被标注的类型是被继承的。如果一个使用了@Inherited修饰的annotation类型被用于一个class,则这个annotation将被用于该class的子类。
注意:@Inherited annotation类型是被标注过的class的子类所继承。类并不从它所实现的接口继承annotation, 方法并不从它所重载的方法继承annotation。
当@Inherited annotation类型标注的annotation的Retention是RetentionPolicy.RUNTIME,则反射API增强了这种继承性。 如果我们使用java.lang.reflect去查询一个@Inherited annotation类型的annotation时,反射代码检查将展开工作: 检查class和其父类,直到发现指定的annotation类型被发现,或者到达类继承结构的顶层。
看下面的例子:
1234567891011121314151617181920212223242526 ...
神级代码注释鉴赏
123456789101112131415161718192021222324252627282930313233343536/*** * 瓦瓦 十 * 十齱龠己 亅瓦車己 * 乙龍龠毋日丶 丶乙己毋毋丶 * 十龠馬鬼車瓦 己十瓦毋毋 * 鬼馬龠馬龠十 己己毋車毋瓦 * 毋龠龠龍龠鬼乙丶丶乙車乙毋鬼車己 * 乙龠龍龍鬼龍瓦 十瓦毋乙瓦龠瓦亅 * 馬齱龍馬鬼十丶日己己己毋車乙丶 * 己齱馬鬼車十十毋日乙己己乙乙 * 車馬齱齱日乙毋瓦己乙瓦日亅 ...
Nginx+Center OS 7.2 开机启动设置
centos 7以上是用Systemd进行系统初始化的,Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度。关于Systemd的详情介绍在这里。
Systemd服务文件以.service结尾,比如现在要建立nginx为开机启动,如果用yum install命令安装的,yum命令会自动创建nginx.service文件,直接用命令:
1systemcel enable nginx.service
设置开机启动即可。
在这里我是用源码编译安装的,所以要手动创建nginx.service服务文件。开机没有登陆情况下就能运行的程序,存在系统服务(system)里,即:
1/lib/systemd/system/
在系统服务目录里创建nginx.service文件1vim /lib/systemd/system/nginx.service
内容如下:
12345678910111213[Unit]Description ...
大白话解说,半分钟就懂 --- 分布式与集群是什么 ? 区别是什么?
PS:这篇文章算是笔记,仅部分文字是原创,相当内容只是收集、整理、提炼、总结别人写的。
没有标为原创 是出于对部分内容原作者的尊重和感谢
一、大白话解说,半分钟就懂,用生活中的例子来说明:小饭店原来只有一个厨师,切菜洗菜备料炒菜全干。
后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,两个厨师的关系是集群。
为了让厨师专心炒菜,把菜做到极致,再请了个配菜师负责切菜,备菜,备料 … 厨师和配菜师的关系是分布式。
一个配菜师也忙不过来了,又请了个配菜师,两个配菜师关系是集群。
一个配菜师因故请假了,但是其余的配菜师还是该啥就干啥,只是没请假的配菜师任务均匀的加量了,但他们的任务和职责是不变的,这是集群。
集群:多个人在一起作同样的事 。
分布式 :多个人在一起作不同的事 。
二、图解:
三、区别联系 (其实上面的内容应该已经让你理解2者了)1、我记得在一本讲 tcp/ip 的书上有这样一句话:分布式是指 多个系统协同合作完成一个特定任务的系统。
分布式是解决中心化管理的问题,把所有的任务叠加到一个节点处理,太慢了。
所以把一个大的问题拆分为多个小的问题,并分别解决 ...
spring boot直接使用https访问
spring-boot-https说明我们使用spring boot配置https证书,打到反向代理访问https的效果。由于现在手里没有可用的证书,所以我们使用jdk帮我们生成一个:
1keytool -genkey -alias tomcat -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore D:/tomcat.keystore -storepass 123456
上面代码我们在D盘生成一个密码为:123456,名称为tomcat.keystore的证书
接下来我们新建一个spring boot 工程把证书拷贝到resources目录下,配置application.properties文件:
1234567891011# https端口号server.port=443http.port=8888# 证书的路径server.ssl.key-store=classpath:tomcat.keystore# 证书密码,请修改为您自己证书的密码server.ssl.ke ...
Spring Cloud微服务注册中心Eureka 2.x停止维护了咋办?
目录1、Eureka官方宣布2.x不再开源如果对Spring Cloud微服务技术体系有一定了解了之后,肯定就知道Spring Cloud最开始原生支持和推荐的服务注册中心是国外的一个视频网站Netflix开源的Eureka。
这个Eureka呢,又分成了所谓的1.x版本和2.x版本,之前在国内比较常用在生产环境中的都是Eureka的1.x版本。
然后Netflix这个公司本身一直在做Eureka 2.x版本,结果做着做着,大家万众瞩目很期待的时候。。。
2018年7月,人家官方就突然宣布Eureka 2.x停止开源计划了,具体如下:
用中文给大家翻译一下,这里的意思就是说:Eureka 2.0的开源工作已经停止了,如果你要用Eureka 2.x版本的代码来部署到生产环境的话,一切后果请自负。
大概就是这个意思,就是不打算把这个事儿做大做强下去了。
当然现在其实Eureka 1.x的版本也有不少公司在生产环境用,而且基本也还算能用的状态,基本功能还算正常,应付很多常规的场景也足够了。
但是现实就是这个声明发出来,让大伙都心里一凉,怎么感觉这个这个Eureka有点不太靠谱了呢,咱还敢继续 ...
Linux常用但我记不住的命令
Linux如何查看端口
1、lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000
Linux如何查看端口
1、lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000
# lsof -i:8000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
lwfs 22065 root 6u IPv4 4395053 0t0 TCP *:irdmi (LISTEN)
可以看到8000端口已经被轻量级文件系统转发服务lwfs占用
2、netstat -tunlp |grep 端口号,用于查看指定的端口号的进程情况,如查看8000端口的情况,netstat -tunlp |grep 8000

# netstat -tunlp
Active Internet connec ...
写代码怎能不会这些Linux命令
这篇文章翻译自 http://www.thegeekstuff.com/2010/11/50-linux-commands 这些都是一些很常用的命令,这篇文章中每个命令都有一些简单的示例说明它的用法, 对于想学习Unix/Linux的人,这些命令基本上都是需要掌握的。
这篇文章翻译自 http://www.thegeekstuff.com/2010/11/50-linux-commands 这些都是一些很常用的命令,这篇文章中每个命令都有一些简单的示例说明它的用法, 对于想学习Unix/Linux的人,这些命令基本上都是需要掌握的。
同时我也做了一张简易版的图例:
1. tar创建一个新的tar文件
$ tar cvf archive_name.tar dirname/
解压tar文件
$ tar xvf archive_name.tar
查看tar文件
$ tar tvf archive_name.tar
更多示例:The Ultimate Tar Command Tutorial with 10 Practical ...
nginx之proxy_pass指令完全拆解
一、proxy_pass的nginx官方指南nginx中有两个模块都有proxy_pass指令。
ngx_http_proxy_module的proxy_pass:
12345语法: proxy_pass URL;场景: location, if in location, limit_except说明: 设置后端代理服务器的协议(protocol)和地址(address),以及location中可以匹配的一个可选的URI。协议可以是"http"或"https"。地址可以是一个域名或ip地址和端口,或者一个 unix-domain socket 路径。 详见官方文档: http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_passURI的匹配,本文第四部分重点讨论。
ngx_stream_proxy_module的proxy_pass:
1234语法: proxy_pass address;场景: server ...
nginx之proxy_pass代理后端https请求完全拆解
前言本文解释了怎么对nginx和后端服务器组或代理服务器进行加密http通信。
获取SSL服务端证书你可以从一个可信证书颁发机构(CA)购买一个服务器证书, 或者你可以使用openssl库创建一个内部CA, 并给自己颁发证书。这个服务器端证书和私钥需要部署在后端的每一个服务器上。
获取SSL客户端证书nignx使用一个SSL客户端证书来对后端服务器组来标识自己。这个客户端证书必须是被一个可信CA签名的,并且和相匹配的私钥一起部署在nginx中。你还需要在后端服务器上配置好所有的来源SSL连接都需要客户端证书,并信任这个CA颁发的nginx客户端证书。 然后当nginx连接后端时,将提供客户端证书,并且后端将会接收这个连接。
配置nginx首先,改变相应URL到支持SSL连接的后端服务器组。在nginx的配置文件中,指明proxy_pass指令在代理服务器或后端服务器组中使用”https”协议:
123location /upstream { proxy_pass https://backend.example.com;}
增加客户端证书和私钥,用于验证ngi ...