- 博客(179)
- 资源 (44)
- 收藏
- 关注
原创 HttpClient连接池管理
@Configuration@EnableConfigurationProperties(HttpClientProperties.class)@ConditionalOnProperty(prefix = "myserver.httpclient", value = "enabled", havingValue = "true")public class HttpClientConfig { @Autowired HttpClientProperties httpClientPro
2021-12-20 22:01:20 1064
原创 docker启动elasticsearch问题
问题1:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]答:在宿主机上修改echo "vm.max_map_count=262144" >> /etc/sysctl.confsysctl -w vm.max_map_count=262144https://www.elastic.co/guide/en/elasticsearch/reference/5
2021-10-20 12:50:30 561 1
原创 docker 容器的生命周期
1、检查本地是否存在镜像, 如果不存在即从远端仓库检索2、利用镜像启动容器3、分配一个文件系统,并在只读的镜像层外挂载一层可读写层4、从宿主机配置的网桥接口中桥接一个虚拟接口到容器5、从地址池配置一个ip地址给容器6、执行用户指定的指令7、执行完毕后容器终止...
2021-06-03 09:36:12 309
原创 docker swarm
修改主机名称#修改主机名称hostname # 主机名称hostnamectl set-hostname node1关闭防火墙#关闭防火墙systemctl stop firewalld && systemctl disable firewalldinit swarm#init swarmdocker swarm init创建网络#创建网络docker network create -d overlay mynetdocker ui界面# docker u
2021-06-02 21:46:31 253
原创 docker stack
使用现有网络version: "3.9"services: nginx1: image: zhaokuner/nginx ports: - "91:80" networks: - devopsnet nginx2: image: zhaokuner/nginx ports: - "92:80" networks: - devopsnetnetworks: devopsnet: ext
2021-06-02 21:41:41 90
原创 docker-machine
安装curl -L https://github.com/docker/machine/releases/download/v0.16.2/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine && chmod +x /tmp/docker-machine && sudo cp /tmp/docker-machine /usr/local/bin/docker-machinewget h
2021-06-02 21:41:09 110
原创 Dockerfile
Dockerfile 是一个文本文件,其内包含了一条条的 指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。注: 本文中大部分来自《Docker从入门到实践》如有难懂的地方请移驾原书地址Dockerfile的规则格式#为注释指令(大写)内容(小写)尽管指令是大小写不敏感的,但是,我们强烈建议指令用大写,内容用小写表示Docker是按顺序执行Dockerfile里的指令集合的(从上到下依次执行)每一个Dockerfile的第一 个非注释行
2021-06-02 21:39:54 213
原创 Harbor仓库搭建
官方安装指南软件准备1、docker2、Docker Compose3、sudo yum install Opensslcp docker-compose-`uname -s`-`uname -m` /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-composeharbor需要https访问,因为是自己生成证书的问题,CA不认可vim /etc/docker/daemon.json # 初始化配置{
2021-06-02 21:19:31 115
原创 docker swarm Label
添加标签docker node update --label-add role=masl manager-node查看标签docker node update --label-rm role manager-node删除标签docker node update --label-rm role manager-node服务部署条件约束docker service create \--name masl \-e TZ="Asia/Shanghai" \--network mrp_net
2021-06-02 21:18:21 462 1
原创 docker nginx
DockerfileFROM centos:7MAINTAINER zhaoxkRUN yum -y install wget && yum clean all && \ mkdir -p /etc/yum.repos.d/bak/ && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/ && \ wget -O /etc/yum.repos.d/CentOS-Base.re
2021-06-02 21:13:34 114
原创 docker 安装
《Docker从入门到实践》https://www.yuque.com/grep/kubernetes关闭Swap分区swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstabvim /etc/fstab# 注释掉#/dev/mapper/centos-swap swap swap defaults 0 0#重启reboot#查询状态free -m
2021-06-02 21:10:52 870
原创 docker镜像管理
#登录docker login docker.io/root/.docker/config.json # 密码位置echo emhhb2t1bmVyOjE5ODUxMDF6eGs= | base64 -d# 搜索镜像alpinedocker search alpine#下载镜像 官方可以省去路径和tagdocker pull centosdocker pull centos:7#查看本地镜像docker imagesdocker image ls#打tag#IMAGE.
2021-06-02 21:04:21 96
原创 docker容器的基本操作
查看所有容器docker ps -a #-a全部 默认 查询存活启动容器(运行镜像)docker run是日常用的最频繁用的命令之一,同样也是较为复杂的命令之一 命令格式: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] OPTIONS :选项 -i:表示启动-一个可交互的容器, 并持续打开标准输入 -t:表示使用终端关联到容器的标准输入输出上-d :表示将容器放置后台运行 --rm:退出后即删除容器 --name :表示定义容器唯一名称
2021-06-02 21:02:02 347
转载 Docker Swarm 入门:Service 存储
► 前言介绍为了获得最佳的性能和可移植性,应该避免将重要数据直接写入容器的可写层,而应使用数据卷或绑定挂载。这个原则也适用于服务。可以为集群中的服务创建两种类型的挂载,数据卷挂载(volume mounts)或绑定挂载(bind mounts)。无论使用哪种类型的挂载,在创建服务时使用 --mount 标志进行配置,或者在更新服务时使用 --mount-add 或 --mount-rm 标志。如果不指定一个类型,默认类型是数据卷挂载。tmpfs mount 仅可用于独立容器,不能在 .
2021-04-25 21:05:07 306
转载 MySQL索引类型详解
索引的类型和存储引擎有关,每种存储引擎所支持的索引类型不一定完全相同。MySQL 索引可以从存储方式、逻辑角度和实际使用的角度来进行分类。存储方式区分根据存储方式的不同,MySQL 中常用的索引在物理上分为 B-树索引和 HASH 索引两类,两种不同类型的索引各有其不同的适用范围。1) B-树索引B-树索引又称为BTREE 索引,目前大部分的索引都是采用 B-树索引来存储的。B-树索引是一个典型的数据结构,其包含的组件主要有以下几个:叶子节点:包含的条目直接指向表里的数据行。叶子节..
2021-04-22 18:12:05 183
转载 ServiceMesh
今年,ServiceMesh(服务网格)概念在社区里头非常火,有人提出2018年是ServiceMesh年,还有人提出ServiceMesh是下一代的微服务架构基础。作为架构师,如果你现在还不了解ServiceMesh的话,是否感觉有点落伍了?那么到底什么是ServiceMesh?它诞生的背景是什么?它解决什么问题?企业是否适合引入ServiceMesh?根据近年在一线互联网企业的实践和思考,从个人视角出发,我为大家一一解答这些问题。微服务架构的核心技术问题在业务规模化和研发效能提升等因素的驱动
2021-04-16 10:04:49 167
原创 K8S简介
k8s的前世今生k8s = kubernetesi18n = internationalization云服务Infrastructure As a Service(iaas):基础设施即服务,典型厂商《阿里云》《AWS》。Platform As a Service(paas):平台即服务,典型厂商《新浪云》。Software As a Service(saas):软件设施及服务,典型厂商《office365》。PAAS是一套可以直接提供出来的运行环境最初 服务器(+虚拟机):手
2021-04-02 16:35:00 10319 3
原创 RabbitMQ 简介
2007年,Rabbit技术公司基于AMQP标准开发的RabbitMQ 1.0发布。RabbitMQ采用Erlang语言开发。Erlang语言由Ericson设计,专门为开发高并发和分布式系统的一种语言,在电信领域使用广泛。AMQPAMQP,即advanced Message Queuing Protocol (高级消息队列协议),是一个网络协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端\中间件不同产品,不同的开发语言等条件的限制
2021-03-25 19:28:20 426 1
原创 线程池配置
线程参数public class MyAsyncProperties { private Integer corePoolSize = 10; private Integer maxPoolSize = 300; private Integer queueCapacity = 20; private Integer keepAliveSeconds = 60; private String threadNamePrefix = "MyTaskExecutor-";
2021-03-04 18:37:28 492 1
转载 ElasticSearch——路由(_routing)机制
前言一条数据是如何落地到对应的shard上的?当索引一个文档的时候,文档会被存储到一个主分片中。 Elasticsearch 如何知道一个文档应该存放到哪个分片中呢?首先这肯定不会是随机的,否则将来要获取文档的时候我们就不知道从何处寻找了。实际上,这个过程是根据下面这个算法决定的:shard_num = hash(_routing) % num_primary_shards其中_routing是一个可变值,默认是文档的_id的值 ,也可以设置成一个自定义的值。 _rout...
2021-01-15 19:13:24 1373
转载 spring boot 过滤器、拦截器的区别与使用
拦截器与过滤器的区别:1、过滤器和拦截器触发时机不一样,过滤器是在请求进入容器后,但请求进入servlet之前进行预处理的。请求结束返回也是,是在servlet处理完后,返回给前端之前。如下图:2、拦截器可以获取IOC容器中的各个bean,而过滤器就不行,因为拦截器是spring提供并管理的,spring的功能可以被拦截器使用,在拦截器里注入一个service,可以调用业务逻辑。而过滤器是JavaEE标准,只需依赖servlet api ,不需要依赖spring。过滤器拦截器运行先后步骤:
2020-12-25 19:51:19 151
转载 Elasticsearch-前缀、通配符、正则、模糊搜索详解
1.对于前缀的匹配搜索:GET /forum/article/_search{ "query": { "prefix": { "articleID": { "value": "J" } } }}prefix的匹配一般是处理不分词的场景,将会匹配articleID中以”J”开头的doc。prefix不会计算revelance score,只是作一个过滤的操作,和filter唯一的区别是filter会缓存结果,而prefix不会。前缀
2020-12-25 13:56:10 1237
转载 Invokers copy
转载自:比FastMethod更快的Java反射调用API,以及比Cglib更快的BeanMap实现Invokers /** * 类描述:TODO 详细描述 * * @author 赵希坤 zhaoxikun * @date 2020/12/23 11:47 */import javassist.*;import org.apache.commons.lang3.reflect.MethodUtils;import java.lang.reflect.Method;import
2020-12-23 15:01:45 140
转载 转载:一网打尽 @ExceptionHandler、HandlerExceptionResolver、@controlleradvice 三兄弟!
from:https://www.cnblogs.com/xiang--liu/p/11422504.html把 @ExceptionHandler、HandlerExceptionResolver、@controlleradvice 三兄弟放在一起来写更有比较性。这三个东西都是用来处理异常的,但是它们使用的场景都不一样。看本文给你详细的讲解,再也不怕面试被问到了!这三个注解都是来自于 SpringMVC 的,都能进行异常处理。Java 程序员都非常的痛恨异常,很多人讨厌 Java 就是因为它的
2020-12-15 17:48:59 256
原创 WebMvcConfigurerImpl implements WebMvcConfigurer
package com.zhaokuner.yzmmkia.biz; public class WebMvcConfigurerImpl implements WebMvcConfigurer { // 用于在HandlerMappings中设置路径的匹配样式 public void configurePathMatch(PathMatchConfigurer configurer) { // 配置是否使用通用后缀匹配符(".*") // 如果设为tr.
2020-12-15 17:47:13 2646 2
转载 服务端高并发分布式架构演进之路
1、概述本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。2、基本概念在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍。1)什么是分布式?系统中的多个模块在不同服务器上部署,即可称为分布式系统,如Tomcat和数据库分别部署在不同的服务器上,或两个相同功能的Tomcat分别部署在不同服务器上。2)什么是高可
2020-12-03 14:56:21 216
原创 springboot 拦截器&过滤器
过滤器public class LogWebFilter implements Filter第一种@Configurationpublic class FilterConfig { @Bean public FilterRegistrationBean registFilter() { FilterRegistrationBean registration = new FilterRegistrationBean(); registration
2020-08-20 21:47:44 187
原创 BeanDefinitionRegistryPostProcessor用法-注册自己新bean
BeanDefinitionRegistryPostProcessor继承了BeanFactoryPostProcessor接口,bean工厂的bean属性处理容器,说通俗一些就是可以管理我们的bean工厂内所有的beandefinition(未实例化)数据,可以随心所欲的修改属性。可以在任何获得了BeanDefinitionRegistry或者SingletonBeanRegistry实例的地方进行动态注册。但是如果bean不是在BeanFactoryPostProcessor中被注册,那么该bea
2020-08-20 21:39:40 5598
原创 BeanPostProcessor用法-修改bean属性
每个bean都会调用,可以在这里处理,bean的一些数据public interface BeanPostProcessor { //bean初始化方法调用前被调用 Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException; //bean初始化方法调用后被调用 Object postProcessAfterInitialization(Object b
2020-08-20 21:34:43 1392
转载 ImportBeanDefinitionRegistrar用法
Spring官方通过ImportBeanDefinitionRegistrar实现了@Component、@Service等注解的动态注入机制。很多三方框架集成Spring的时候,都会通过该接口,实现扫描指定的类,然后注册到spring容器中。 比如Mybatis中的Mapper接口,springCloud中的FeignClient接口,都是通过该接口实现的自定义注册逻辑。所有实现了该接口的类的都会被ConfigurationClassPostProcessor处理,ConfigurationClass
2020-08-20 21:27:56 1862
原创 BeanDefinition用法
BeanDefinition 作用一个BeanDefinition描述了一个bean的实例,包括属性值,构造方法参数值和继承自它的类的更多信息。BeanDefinition仅仅是一个最简单的接口,主要功能是允许BeanFactoryPostProcessor 例如PropertyPlaceHolderConfigure 能够检索并修改属性值和别的bean的元数据。BeanDefinition的继承关系父接口:AttributeAccessor, BeanMetadataElement.
2020-08-20 21:25:05 3237
原创 springboot自定义属性源工厂
如果想要更加灵活的自定义属性源,比如实现从中心化的配置服务加载配置,可以通过实现PropertySourceFactory接口,并通过配置PropertySource注解的factory参数来实现。@Configuration@PropertySource(value = ""/*placeholder*/, factory = CompositePropertySourceFactory.class)public class CompositeConfigAutoConfiguration
2020-08-20 21:19:35 372
原创 springboot自定义配置源
概述在Spring boot中可以通过xml或者@ImportResource 来引入自己的配置文件,但是这里有个限制,必须是本地,而且格式只能是 properties(或者 yaml)。那么,如果我们有远程配置,如何把他引入进来来呢。第一种方式这一种方法,相对更简单些,但是相对没那么“优雅”。就是通过EnvironmentPostProcessor接口把我们自定义的propertySource加入environment中public class FrameworkEnvironmentPostPr
2020-08-20 21:10:28 390
原创 springboot 解决jar中的自定义配置加载
优先级小于本地配置 来源自定义属性源工厂,即调用的应用会覆盖整个配置这个用法可以保证以下代码起作用,因为bean加载前加载配置@ConfigurationProperties(prefix = "parentfw.httpclient.poolmanager")@Configuration@EnableConfigurationProperties(HttpclientProperties.class)@ConditionalOnProperty(prefix = "parentfw.ht.
2020-08-20 21:03:33 650
转载 elasticsearch-aggs-top_hits,分组查询,并返回每组数据中特定排序的源数据
对数据分组并返回分组中特定排序的多少个Top Hits Aggregationtop_hits指标聚合器跟踪正在聚合的最相关文档。 此聚合器旨在用作子聚合器,以便可以按桶聚合最匹配的文档。top_hits聚合器可以有效地用于通过桶聚合器按特定字段对结果集进行分组。 一个或多个存储桶聚合器确定结果集被切入的属性。选项from - 要获取的第一个结果的偏移量。size - 每个桶返回的最大匹配匹配数的最大数量。默认情况下,返回前三个匹配的匹配。sort - 如何对最匹配的匹配进行排序。默.
2020-07-30 17:25:34 2892 1
转载 JVM线上监控工具
文章目录简介JVM常见监控工具 & 指令jps进程监控工具jinfo配置信息查看工具jstat信息统计监控工具classcompilergcgccapacitygcmetacapacitygcnewgcnewcapacitygcoldgcoldcapacitygcutiljmap堆内存统计工具heaphistodumpjhat堆快照分析工具jstack堆栈跟踪工具系统线程状态死锁示例dump日志分析简介在线上我们经常会遇见如下几个问题:内存泄露;某个进程突然 CPU 飙升;线程死锁;响
2020-07-04 15:05:52 1503
转载 JDK8之MetaspaceSize配置导致频繁FullGC
转载自:JDK8之MetaspaceSize配置导致频繁FullGC前言新系统上线,由于测试环境机器配置太低,所以单独找了一台预发机做接口压测,但是QPS达到30时候cpu就满了,简直慌了,新系统这么垃圾的么~背景介绍新的账务系统,角色定位是内部户机构账,所以根据不同的金融交易场次会有一次记账请求中存在多借多贷,也就是一次请求会出现给18个账户在一个事务中做记账处理,可想这里面会有多少要注意的坑,详细的不做展开找问题top 命令因为这个接口实现上多次用到数据库悲观锁select for
2020-06-24 09:36:19 2020
原创 dubbo服务降级限流
服务降级解决高并发的三把利器:降级、限流、缓存。服务降级基础什么是服务降级服务降级,当服务器压力剧增情况下,根据当前业务的情况及流量对一些服务有策略地降低服务级别,以释放服务器资源,保证核心人物的正常运行。服务降级方式部分服务暂停全部服务暂停随机拒绝服务部分服务延迟服务降级埋点服务降级与Mock机制Dubbo的服务降级,采用Mock机制。其具有两种降级处理方式:Mock Null降级处理,与Mock Class降级处理Mock Null降级处理消费者服务降级代
2020-06-14 22:15:29 782
原创 dubbo做服务器端main启动方法
java代码public class AppRun{ public void main(String[] args){ Main.main(args); }}配置文件目录结构/resources/META-INF/spring/spring-provide.xmlspring-provide.xml是dubbo的配置文件
2020-06-14 15:56:08 270
原创 zookeeper理论基础
zookeeper简介Zookeeper有雅虎研究院开发,后来捐赠给apache。zookeeper是一个开源的分布式应用程序协调服务器,其为分布式系统提供一致性服务。其一致性是通过基于Paxos算法的ZAB协议完成的。官网:http://zookeeper.apache.org一致性zk通过以下特点保证一致性顺序一致性同一个客户端发起的多个事务请求(写操作请求),最终会严格按照其发起顺序记录到zk原子性所有事务请求的结果在集群中所有的server上的应用情况是一致的。要么
2020-06-10 20:28:52 245
tomcat_jndi_hibernate.txt
2009-03-07
集体智慧编程中文版.pdf
2018-05-03
统计学习方法.pdf
2018-05-03
推荐系统实践(中文版).pdf
2018-05-03
微服务设计 pdf
2018-05-03
peopleware 中文版 第三版
2018-05-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人