- 博客(68)
- 收藏
- 关注
原创 k8s启动、就绪、存活探针
启动探针探测时长:failureThreshold * periodSeconds。启动探针:即探测容器是否启动起来。然后才会启用就绪探针和存活探针。
2024-04-22 19:07:04 568
原创 java服务使用kubernetes注意jdk版本
不知道被分配了多少 CPU,认为可用 CPU 数量就是宿主机的 CPU 数量,导致 JVM 创建过多线程,容易高负载被 Cgroup CPU 限流(throttle)。不知道被分配了多少内存,很容易造成消耗过多内容而触发 Cgroup OOM 被杀死。如果使用的 Oracle JDK,确保版本大于等于 8u191。如果使用的 OpenJDK,确保版本大于等于 8u212。
2023-06-20 16:30:24 398
转载 FeignClient响应体读取字节流大小异常
进行各种资料查找后,观察到文件的生成是先通过response.asInputStream,再通过response.availabel()生成一个字节数组,然后进行返回,但是这里有一个问题,InputStream类的available()方法读取字节的时候,能知道有多少字节需要读取,这个方法从本地读取数据一般不会出现什么问题。通过postman调用系统二的接口并下载文件并没有出现之前问题,也就是文件损坏或者是文件丢失数据问题。然后进行系统一的调查,每次请求响应体的长度都不一致,导致文件输出失败。
2023-06-15 22:05:56 122
原创 基于kubernates的发布
就像ECS是阿里云的基本调度单元一样,Pod(容器组)是 Kubernetes 中最小的调度单元,可以通过 yaml 定义文件直接创建一个 Pod。但 Pod 本身并不具备自我恢复(self-healing)功能。如果一个 Pod 所在的节点出现故障,或者调度程序自身出现问题,以及节点资源不够或节点进入维护而驱逐 Pod 时,Pod 将被删除,且不能自我恢复。因此,Kubernetes 中我们一般不直接创建 Pod, 而是通过 Controller(控制器)来管理 Pod。同理,在基于云的ECS、EC2实例
2022-09-09 14:43:04 298 1
原创 日志可视化之ELKF--logstash
上篇介绍了通过filebeat将日志直接写入到elasticsearch中去。但大多时候我们需要对日志的不同字段拆分后写入elasticsearch中,方便查询和统计,这就需要用到logstash了。安装logstash(centos)这里介绍通过yum方式安装:执行 sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch在/etc/yum.repos.d/目录下添加logstash.repo文件,内容如下:.
2020-07-16 10:32:24 409
原创 日志可视化之ELKF--filebeat
filebeat、elasticsearch、logstash、kibana此为日志可视化的基础设施。不过根据业务系统的体量不同,这些组件不是全都必须的。这里介绍EKF的部署方式,即elasticksearch、kibana、filebeat。filebeat这里不再具体介绍,filebeat可以把应用产生的日志文件发送到logstash或者elasticsearch中去。这里主要介绍一些...
2020-04-20 09:32:18 350
原创 并发之Actor模型
并行与并发 Erlang 之父 Joe Armstrong并发(concurrency) 并发的关注点在于任务切分。单核CPU也可以并发,只需要将不同的task按时间片切分。在没个时间段内就会有多个task被执行过。一些被阻塞的task也可以让出CPU时间片给其他task执行。并行(parallelism) 并行的关注点在于同时执行。多核CPU。可以将多个task同时执行。我们代码里...
2020-04-17 11:26:45 610
原创 多jvm进程的参数配置策略(持续更新)
关于单台服务器实例启动多个jvm程序(多个Java应用)。需要配置适当的最大内存大小,防止单个服务故障把实例内存占完,当时多个服务都出现内存不可用而宕机。结合前面文章,通过进程守护将服务启动时加入jvm参数,限制服务最大内存。java -Xmx1024m -server -jar xxx,这样就把应用的heap内存最大值限制为1024m。注意,应用总的内存占用会大于这个值,因为还有非hea...
2020-02-25 15:09:36 742
原创 Failed to execute 'appendBuffer' on 'SourceBuffer': The HTMLMediaElement.error attribute is not null
今天在使用flv js播放视频时出现如title错误。已经有人提了issue 但没有解决。今天意外发现是因为自己的chrome关闭了硬件加速,在设置中开启即可。
2020-02-21 16:36:34 34657 17
原创 应用服务器用户权限管理最佳实践(一)
创建普通用户用root登录服务器创建一个普通用户组 groupdd demogroup创建一个普通用户adduser demouser -g demogroup,区别于useradd命令,adduser会创建用户家目录shell等将普通用户demouser加入sudoer(方便执行一些应用治理相关的工作,又不用暴露root权限。)。执行visudo,如果没有权限,查看/et...
2020-01-21 11:09:54 937
原创 Java文件上传下载异常(IO Error/Permission denied)
java服务出现IO Error,如下:Caused by: java.io.IOException: Permission denied at java.io.UnixFileSystem.createFileExclusively(Native Method) ~[na:1.8.0_232] at java.io.File.createTempFile(Fil...
2020-01-20 11:14:53 3062
原创 Redis数据结构介绍
目录redis的数据结构redis的数据结构字符串string,字符串 string 是 Redis 最简单的数据结构。Redis 所有的数据结构都是以唯一的 key 字符串作为名称,然后通过这个唯一 key 值来获取相应的 value 数据。不同类型的数据结构的差异就在于 value 的结构不一样。Redis 的字符串是动态字符串,是可以修改的字符串,内部结构实现上类似于 Java 的 ...
2019-08-07 10:06:23 218
原创 DevOps之shell常规用法
作为一个新世纪的程序员,尤其是后端程序员,经常会接触到Linux服务器。并做一些发布、部署、运维、问题排查等工作,这个时候就会用到shell命令。但今天讲的主要是主要是devops相关的shell脚本文件的编写。先放一个简单的demo#!/bin/bashDEVSTACK="$(pwd)"if [[ -z "${DEVSTACK_WORKSPACE}" ]]; then ...
2019-07-25 15:05:21 578
原创 CI/CD结合AWS实践
概览JenkinsAWS服务器设置AWS s3 和IAM Role的设置可以参考AWS 文档,非常清晰。此篇主要是介绍一种结合AWS实现的能达到一定敏捷和安全诉求的CI/CD方案。Jenkins首先需要在内网(云内网或公司内网)配置一台jenkins服务器,这不是本文介绍的重点,如果不会可以Google给应用配置task,例如Java应用,通过Jenkins编译打包完之后,把jar包...
2019-07-16 15:49:33 1540
原创 在centos7上为应用添加进程守护supervisor
目录安装守护程序supervisord修改配置文件添加守护程序设置supervisor开机启动控制进程守护控制被守护的应用本文主要记录在centos7上为应用添加进程守护程序,防止因系统重启或应用意外退出导致程序不再运行。安装守护程序supervisordyum install python-setuptoolseasy_install supervisorecho_supervis...
2019-07-16 15:22:24 3015
原创 介绍一些基础云设施----基于AWS
internet网关internet网关是从外访问VPC内部服务的桥梁,我们的私有子网段的服务如果对外提供API,外面是不能直接访问到的,正确的操作是创建面向internet的ELB对外暴露服务。而ELB所属子网必须有internet Gateway路由。像这种需要被外界访问到的服务所属的子网的路由一定要配置有internet网关。NAT网关NAT网关是反过来的,属于VPC内部的私有网段的...
2019-07-05 16:16:13 395
原创 构建基于aws的标准网络架构
标准的云平台网络架构设计需要一下步骤:构建VPC,建议使用标准内网网段(10.*, 172.*),这里是172.31.0.0/16。VPC之间默认是隔离的,基于这个性质,可以将测试环境和PD环境分布在不同的VPC内。VPC是跨越可用区的,说到可用区,那在构建VPC之前先说明一下可用区的概念。可用区:一般是在同一地区的不同数据中心,可用区间之间的网络延迟应该在毫秒级。所以一个VPC内的两个可用区...
2019-07-05 13:26:43 2194
原创 大数据相关的概念
在准备开始撸大数据的理论知识之前,我需要构建一个大概的轮廓技术框架大数据相关的框架或者说生态有Hadoop、Spark、Storm、Flink等等。在开始之前我先整理了这些名词的含义和区别。Apache Hadoop 批处理框架Storm 流处理框架Spark、Flink 混合框架...
2019-05-11 22:07:04 273
原创 fatal: The remote end hung up unexpectedly解决
在git clone 过程中如果遇到: fatal: The remote end hung up unexpectedly 解决办法:运行 git config http.postBuffer 524288000 试试估计是文件总量太大导致
2019-03-29 18:01:50 2177
原创 java 免证书调用https
引入Apache HttpClient<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.7</version></de...
2019-03-28 11:25:11 1083
原创 jdk版本管理工具jenv
摘要:jenv是跨平台的java版本管理工具。当然,pyenv仿的rbenv,jenv也是仿的rbenv,功能和用法也很类似。KaTeX parse error: Expected 'EOF', got '#' at position 16: brewinstalljenv#̲添加pathecho’exportPATH=“HOME/.jenv/bin:HOME/.jenv/bin:HOME/.je...
2019-03-26 13:49:03 3661 1
原创 webflux RouterFunction方式下载文件demo
public Mono<ServerResponse> test(ServerRequest request) throws Exception { File excel = new File("tmp"); var out = new FileOutputStream(excel); var writer = new ExcelWrit...
2019-03-15 13:42:42 1769
原创 DevOps实践
1. 适合的才是最佳的2. 唯一不变的是不停改变3. 永无止境微服务:将单体服务根据业务边界进行分离,单个微服务能够以独立的、对外透明的方式提供服务。能够独立的持续集成和交付。通过REST API/SDK方式暴露服务,会兼容2-3个版本。REST优势是简单、交付快。SDK优势是可以在调用端做出优化和限制。 服务发现与注册。eureka、consul 服务隔离与降级。hy...
2018-12-29 14:47:43 264
原创 Server did not recognize the value of HTTP Header SOAPAction 解决
当你在使用Java调用.net实现的webservice出现如标题的exception时,恰好你正在使用https://spring.io/guides/gs/consuming-web-service/ 进行soap对接,不要慌。我刚踩过这个坑。经过查找之后发现JAX-WS规范不需要SoapAction,但是.NET需要,所以产生了这个错误。解决办法:首先获取wsdl: 然后...
2018-12-28 13:33:42 9003
原创 centos6 服务器上为应用进程添加守护
为应用进程添加守护,在应用意外退出或服务器重启时,保证应用会被自动重启安装和配置守护程序(supervisor)easy_install supervisor (下载安装supervisor) /usr/local/bin/echo_supervisord_conf > /etc/supervisord.conf (添加配置文件,从default复制) printf "[inc...
2018-04-04 11:29:24 3296
转载 Java项目乱码解决
在做java项目(特别是web项目)的过程中,中文乱码一直是我们开发人员比较头疼的问题,因为涉及到编码,解码,字符集,以及国际化等诸多问题,所以在着手解决的时候也缺乏相关的知识。我花了一些时间自己动手实验了一把,虽然没有洞悉编码,解码这些底层原理,但是解决实际问题应该足够了。这里主要针对java web项目中的文乱码问题。 从浏览器采用form方式提交数据到服务器,可以分为post和
2014-09-17 16:19:34 770
转载 ehcache.xml简介
ehcache.xml文件是用来定义Ehcache的配置信息的,更准确的来说它是定义CacheManager的配置信息的。根据之前我们在《Ehcache简介》一文中对CacheManager的介绍我们知道一切Ehcache的应用都是从CacheManager开始的。在不指定配置信息参数创建CacheManager时,CacheManager将首先在类路径的根目录下寻找一个叫ehcache.xml的
2014-09-05 15:54:11 2665
转载 事物的原理
事务管理是对企业应用最紧要的要求之一。在贸易、金融和电子商业领域中,多数大的企业应用依赖于递送它们的商务的事务处理功能。 鉴于当今商务对灵活性的要求,在建造、部署和维护企业级别的分布式应用中,事务处理占据的是其中最复杂的部分之一。 本文把以下内容介绍给读者: 什么是事务? 什么是 ACID? 建造一个事务应用的要点是什么? 事务管理中间件为什么很重要? 事务处理应用的典型的
2014-08-18 16:59:42 737
转载 struts2请求过程源码分析
Struts2是Struts社区和WebWork社区的共同成果,我们甚至可以说,Struts2是WebWork的升级版,他采用的正是WebWork的核心,所以,Struts2并不是一个不成熟的产品,相反,构建在WebWork基础之上的Struts2是一个运行稳定、性能优异、设计成熟的WEB框架。 我这里的struts2源码是从官网下载的一个最新的struts-2.3.15.1-src.z
2014-07-29 17:11:35 583
转载 myeclipse使用经验总结
0. 快捷键=============================================================编辑:Ctrl+Shift+L显示所有快捷键Ctrl+K参照选中的词(Word)快速定位到下一个Ctrl+Shift+K参照选中的词(Word)快速定位到上一个Ctrl+O快速显示OutLine Ctrl+T快速显示当前类的继
2014-07-24 16:01:08 800
转载 在java web项目中集成webservice
公司要求在项目中加入webservice服务,因为项目中使用了spring框架,所以在这里使用与spring兼容性较好的cxf来实现cxf所需jar包spring的jar包就不贴了一:创建webservice服务器1)创建一个服务接口package com.service; import javax.jws.WebParam;impor
2014-07-24 15:39:28 1034
转载 JAVA程序获取Tomcat的运行状态
用浏览器来查看Tomcat的运行状态: 配置Tomcat的管理用户和权限。 打开%Tomcat_Home%/conf/目录下的tomcat-user.xml文件,配置以下内容: ?12345678910role rol
2014-07-24 14:57:10 7681
转载 log4j配置祥解
第一步:加入log4j-1.2.8.jar到lib下。第二步:在CLASSPATH下建立log4j.properties。内容如下:?1234567891011121314151617181920
2014-07-24 14:50:40 509
转载 深入理解HashMap
Hashmap是一种非常常用的、应用广泛的数据类型,最近研究到相关的内容,就正好复习一下。网上关于hashmap的文章很多,但到底是自己学习的总结,就发出来跟大家一起分享,一起讨论。 1、hashmap的数据结构 要知道hashmap是什么,首先要搞清楚它的数据结构,在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构
2014-07-23 10:04:46 388
转载 java中HashMap的用法
重点介绍HashMap。首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。在下文中会有例子具体说明。 再来看看HashMap和TreeMap有什么区别。HashMap通过hashcode对其内容进行快速查找,而TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个
2014-07-23 09:30:46 487
转载 Hibernate 的各种保存方式的区别 (save,persist,update,saveOrUpdte,merge,flush,lock)
hibernate的保存 hibernate对于对象的保存提供了太多的方法,他们之间有很多不同,这里细说一下,以便区别: 一、预备知识: 在所有之前,说明一下,对于hibernate,它的对象有三种状态,transient、persistent、detached 下边是常见的翻译办法: transient:瞬态或者自由态 persistent:持久化状态 detache
2014-07-22 15:00:44 506
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人