1 | 下载安装包 wget http://nginx.org/download/nginx-1.14.2.tar.gz |
jenkins
如何从零开始搭建Jenkins及项目部署
Jenkins 原名Hudson,2011年改为现在的名字,它是一个用Java编写的开源的持续集成工具。
本文带你从零开始安装和使用Jenkins部署项目。
配置jenkins_home
vi /etc/profile
export JENKINS_HOME=/home/soft/jenkins/jenkinshome
1 | java –jar Jenkins.war --httpPort=80 |
相关文章
https://mp.weixin.qq.com/s/-Wdx-g5vln0aGUmh6uofoA
https://mp.weixin.qq.com/s/EAgNfLQGo_d1hq1b3E1x6w
https://www.cnblogs.com/yanxinjiang/p/10026390.html
https://blog.csdn.net/testinggdr/article/details/82414379
http://www.mixfate.com/tools/tomcat/2016/05/07/jenkins-tomcat-deploy.html
https://blog.csdn.net/youyouwoxing1991/article/details/84192756
spring
HandlerMethodArgumentResolver
https://www.cnblogs.com/yangzhilong/p/7605889.html1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59package com.btg.core.config;
import com.btg.core.Constants;
import com.btg.core.support.Token;
import com.btg.core.util.TokenUtil;
import org.springframework.core.MethodParameter;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.support.WebDataBinderFactory;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.ModelAndViewContainer;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.List;
public class CurrentUserMethodArgumentResolver implements HandlerMethodArgumentResolver {
@Override
public boolean supportsParameter(MethodParameter parameter) {
return parameter.getParameterType() == Token.class;
}
@Override
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest,
WebDataBinderFactory binderFactory) throws Exception {
String token = webRequest.getHeader(Constants.TOKEN);
if(StringUtils.isEmpty(token)) {
token = webRequest.getParameter(Constants.TOKEN);
}
if(StringUtils.isEmpty(token)) {
token = getTokenFromCookie(webRequest);
}
if(StringUtils.isEmpty(token)) {
return null;
}
return TokenUtil.getTokenInfo(token);
}
private String getTokenFromCookie(NativeWebRequest webRequest) {
String token = null;
HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class);
List<Cookie> cookies = Arrays.asList(request.getCookies());
if(!CollectionUtils.isEmpty(cookies)) {
for(Cookie cookie : cookies) {
String name = cookie.getName();
if(Constants.TOKEN.equals(name)) {
token = cookie.getValue();
break;
}
}
}
return token;
}
}
spring循环引用问题及解决方式
https://blog.csdn.net/chejinqiang/article/details/80003868
Spring IOC Bean 生成过程
DefaultBeanDefinitionDocumentReader 类
// Process the given bean element, parsing the bean definition
// and registering it with the registry.
processBeanDefinition();方法
DefaultListableBeanFactory 类
registerBeanDefinition()
成员变量
/* Map of bean definition objects, keyed by bean name /
private final Map<String, BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<String, BeanDefinition>(256);
/* List of bean definition names, in registration order /
private volatile List
Spring MVC 框架主要角色
DispatcherServlet
HandlerMapping 负责查找相应的Handler以处理Web请求
Controller
ModelAndView
ViewResolver
View
HandlerInterceptor
Bean 生命周期
Bean factory implementations should support the standard bean lifecycle interfaces as far as possible. The full set of initialization methods and their standard order is:
1.BeanNameAware’s setBeanName
2.BeanClassLoaderAware’s setBeanClassLoader
3.BeanFactoryAware’s setBeanFactory
4.EnvironmentAware’s setEnvironment
5.EmbeddedValueResolverAware’s setEmbeddedValueResolver
6.ResourceLoaderAware’s setResourceLoader (only applicable when running in an application context)
7.ApplicationEventPublisherAware’s setApplicationEventPublisher (only applicable when running in an application context)
8.MessageSourceAware’s setMessageSource (only applicable when running in an application context)
9.ApplicationContextAware’s setApplicationContext (only applicable when running in an application context)
10.ServletContextAware’s setServletContext (only applicable when running in a web application context)
前面10个都是XxxAware接口的方法
11.postProcessBeforeInitialization methods of BeanPostProcessors
12.InitializingBean’s afterPropertiesSet
13.a custom init-method definition
14.postProcessAfterInitialization methods of BeanPostProcessors
On shutdown of a bean factory, the following lifecycle methods apply:
1.postProcessBeforeDestruction methods of DestructionAwareBeanPostProcessors
2.DisposableBean’s destroy
3.a custom destroy-method definition
elasticsearch-head
linux下.xz文件的解压方式
安装xz:yum -y install xz
xz -d .tar.xz //生成了.tar文件
tar -xvf .tar
elastic-search
全文检索
Apache Lucene 提供一个全文检索的功能库。
文档(document):索引和搜索时使用的主要数据载体,包含一个或多个存有数据的字段(field)。
字段(field):文档的一部分,包含名称和值两部分。
词(term):一个搜索单元,表示文本中的一个词。
标记(token):表示在字段文本中出现的词,由这个词的文本、开始和结束偏移量以及类型组成。
Apache Lucene 将所有信息写到一个称为倒排索引(inverted index)的结构中,倒排索引建立索引中词和文档之间的映射。
elasticsearch官网
主要概念:
- 近实时(Near Realtime、NRT):Elasticsearch 是一个近实时的搜索平台,这意味着从搜索文档到可搜索文档的时间有一点延迟(通常是1s)。
- 集群(Cluster)
- 节点(Node)
- 索引(Index)
索引(index)是ElasticSearch对逻辑数据的逻辑存储,可以把索引看成关系型数据库的数据库。ElasticSearch 可以把索引放在一台机器或者分散在多台机器上,每个索引有一个或多个分片(shard),每个分片可以有多个副本(replica)。
-文档类型(Type)
在ElasticSearch中,一个索引对象可以存储很多不同用途的对象。文档类型(type)可以让我们轻易区分单个索引中的不同对象。
每个文档可以有不同的结构, - 文档(Document)
- 分片和副本(Shards and Replicas)
java-interview
https://www.w3cschool.cn/u/56375
线程池用过哪些,线程池有哪些参数,线程池的用法和实际应用场景
分布式下redis如何保证线程安全
redis持久化方式及区别
zookeeper 如何实现分布式锁,其他分布式锁怎么实现
dubbo中的zookeeper是做什么的
kafka 的架构,如何用kafka保证消息的有序性
Cloneable接口实现原理
zookeeper
分布式环境的特点
分布性
并发性:程序运行过程中,并发操作是很常见的,比如同一个分布式系统中的多个节点,同时访问一个共享资源,比如数据库、分布式存储。
无序性:进程之间的消息通信,会出现顺序不一致问题。
分布式环境下面临的问题
网络通信:网络本身的不可靠性。
网络分区(脑裂):当网络发生异常,分布式系统中部分节点之间的网络延迟不断增大,最终导致组成分布式架构的所有节点,只有部分节点能够正常通信。
三态:在分布式架构里面,除了成功、失败、超时。
分布式事务
Zookeeper 是什么
Zookeeper 是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。
Zookeeper 是一个基于观察者模式的分布式服务管理框架,它负责存储和管理应用的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,
Zookeeper 就将负责通知已经在Zookeeper 上注册的那些观察者做出相应的反应,从而实现集群中类似Master/Slave管理模式。
Zookeeper = 文件系统 + 通知机制。
数据结构