- 博客(31)
- 问答 (1)
- 收藏
- 关注
原创 Java Dependence Analysis(Java静态依赖分析)
在Java项目项目中,经常会面临依赖升级,依赖变更的情况。通常情况下,无法做到全面的检查,java8以上版本自带的jdeps命令可以对依赖进行分析,但受限于JDK的版本,jdeps功能有一定差异,虽然可以检测到类依赖确实,但通常无法检查到方法的缺失。此工具就是为了全面的解决依赖问题,可以提供成员变量类型、方法参数、方法返回值、方法异常捕获、字节码指令中涉及到类和方法的内容的全面检查。.........
2022-06-09 15:57:27 1681 1
原创 通过Kubernetes Admission Controllers机制实现灵活低侵入式挂载Skywalking Java Agent
前言官方资料:https://kubernetes.io/zh/docs/reference/access-authn-authz/extensible-admission-controllers/#admission-webhooksJsonPach:http://jsonpatch.com基于Kubernetes Admission Controllers的Java Agent自动挂载方式目前仅支持Java Agent的挂载材料Skywalking InjectionDockerH
2020-08-13 22:20:04 5367
原创 Skywalking Java Agent在Kubernetes项目中的常见挂载及启动模式
前言Skywalking Java Agent: https://github.com/apache/skywalking/blob/master/docs/en/setup/service-agent/java-agent/README.mdSkywalking Java Agent可以通过在项目代码中引入以及使用Java Agent机制挂载。针对于在Kubernetes中挂载Skywalking Java Agent,所采用的方式为使用Java Agent机制,对原系统侵入性较小,挂载方便。相
2020-08-13 22:17:12 2297 1
原创 Kubernetes Ingress 集成 Skywalking 实现全链路追踪
前言Kubernetes Ingress: https://github.com/kubernetes/ingress-nginxSkywalking: https://github.com/apache/skywalkingSkywalking Lua Agent: https://github.com/apache/skywalking-nginx-lua可使用Skywalking Nginx Lua 或 Skywalking Zipkin Receiver接收数据并分析。Kubernete
2020-08-13 22:14:54 1661
原创 Kubernetes已部署集群切换kube-apiserver等核心容器镜像仓库地址
背景使用Kubeadm在国内部署Kubernetes集群时,由于无法访问k8s.gcr.io,就修改了默认的仓库地址,直接使用了Azure 提供的gcr.azk8s.cn/google_containers仓库。部署信息操作系统:Centos7Kubernetes:v1.17.0 单Master节点问题docker pull gcr.azk8s.cn/google_containers...
2020-04-20 12:54:29 2111
原创 Docker 启动Mysql
#!/usr/bin/env bashdocker run -itd --name mysql --net=host --restart=always \ -e MYSQL_ROOT_PASSWORD=XXXX \ -v /data/service/mysql/data:/var/lib/mysql \ -v /data/service/mysql/config:/etc/
2017-10-17 10:26:01 692
原创 清理Elasticsearch中过期的日志索引
使用命令主要使用$(date -d ‘-10days’ +’%Y.%m.%d’)对日志进行格式化,从而拼出需要删除的日志索引名字。curl -XDELETE http://172.16.21.101:9200/*-$(date -d '-10days' +'%Y.%m.%d')
2017-06-08 09:56:40 4809
原创 基于Gitlab实现的配置中心(支持Docker)
项目介绍项目地址: https://github.com/lipg/config-agent配置中心工具,目前支持通过http,https的方式从git中下载配置文件。gitlab支持在线Web修改文件,遂使用该方式可实现一个支持传统应用的配置中心。使用shell 脚本也可是实现该功能,但是为了提供更好的兼容性,遂使用Go专门写的Agent,不依赖与系统环境组件,如:curl、wget等。基本流程
2017-06-07 11:32:21 1669
原创 Docker+Mesos+Marathon(弹性云平台)基础选型
介绍很多大公司是有实力进行弹性云的底层开发的,但是作为一个不是那么大的公司,相比很多公司是没有那么多的人力、物力进行弹性云的底层开发,通常采用一些开源方案是更好地选择。后面我会陆陆续续对这方面做个分享的。今天先分享一个基础的选型/架构图。
2016-08-24 00:15:17 1141
原创 基于Mesos、Docker、Marathon实现的可伸缩微服务思路
前言今天主要和大家分享一个基于Mesos、Docker、Marathon进行微服务话改造的思路。服务发现在整个架构中扮演了非常重要的角色。大家都知道服务发现分为客户端服务发现与服务端服务发现。而提到服务发现又不能不提到服务注册,服务注册分为自注册方式与第三方注册方式。相信很多人已经接触过dubbo,dubbox,Zeroc Ice这些rpc框架了。就以dubbo为例,dubbo就可以使用Zookee
2016-08-05 02:36:18 3344
原创 Spring Boot 的彩色日志
我们在开发项目时经常要自定义日志存放路径,保存方式,而Spring Boot的彩色Console日志是非常好看的。 <!-- 彩色日志 --> <!-- 彩色日志依赖的渲染类 --> <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.Col
2016-08-03 16:18:44 17993 5
原创 Spring Boot默认的日志格式
在做新项目的时候,发现Spring Boot默认的日志格式还挺好看的,就把他的日志格式整理出来,好留着在以后自定义日志的时候可以使用。pattern:%d{yyyy-MM-dd HH:mm:ss.SSS} -%5p ${PID:-} [%15.15t] %-40.40logger{39} : %m%n效果如下:2016-08-03 15:56:01.387 - INFO 1485 [
2016-08-03 16:00:54 6661 4
原创 GitLab忘记管理员密码/重置密码
还是建议大家把密码找个地方好好保存下来吧,不要像我一样…找回密码步骤 如果是以docker方式启动的,先执行docker exec -it <容器id> bash进入容器之中。执行gitlab-rails consoleuser = User.where(username: ‘root’).firstuser.password = ‘password’user.save!
2016-08-02 14:18:55 6448
原创 机械键盘(可编程键盘)无效、串键、连键问题解决偏方
我的键盘是雷蛇黑寡妇终极版,属于可编程的机械键盘,最近发生了一件奇怪的事情: 小键盘区的4键没反应,或者按4键的时候会很多键按顺序自动按下,而触发的这些键有两组,像是有两组宏,每次按键有可能触发不同的宏,但是看雷云的设置里面是没有添加任何宏的。并且我把键盘接到我的Macbook Pro上面,是一样的现象。排除了操作系统的原因。最后问题解决了,初步怀疑是操作系统问题。
2016-07-31 19:04:27 16717
转载 Java的SPI(Service Provider Interface)规范
Java的SPI(Service Provider Interface)规范:规范内容当服务的提供者,提供了服务接口的一种实现之后,在jar包的META-INF/services/目录里同时创建一个以服务接口命名的文件。该文件里就是实现该服务接口的具体实现类。而当外部程序装配这个模块的时候,就能通过该jar包META-INF/services/里的配置文件找到具体的实现类名,并装载实例化,完成模块的注入。
2016-05-23 12:38:30 1478
原创 Docker在linux中的快速安装
有一个神奇的网站 https://get.docker.com 这是docker在linux中的安装脚本。## This script is meant for quick & easy install via:# 'curl -sSL https://get.docker.com/ | sh'# or:# 'wget -qO- https://get.docker.com/ |
2016-03-07 11:47:10 708
原创 seaweedFS之Master节点挂掉导致部分Volume节点消失
今天在测试Seaweedfs时候发现一个恐怖的现象。我启动了6个Master和10个Volume。当其中一个Master挂掉的时候,会有N个Volume也看不到了。问题重现步骤配置信息Master节点配置: 六个Master节点。占用端口 9001-9006启动命令: /data/weed/bin/weed master -defaultReplication="100" -mdir="
2016-02-29 17:24:53 4405
原创 Mesosphere官方提供的安装文档
从mesos.apache.org的文档里面,安装Mesos都是编译安装的,安装过程繁琐,不适合在批量部署。最终在github中找到了Mesosphere提供的安装地址,支持centos和ubuntu。文档地址:http://mesosphere.io/downloads/需要安装哪个点击对应的Get Started即可。
2016-01-05 15:25:54 970
原创 Memcached 的静态编译(Mac OS X)
起因每次重做系统都要重新编译Memcahed等软件,还要重新配置,麻烦的要死。肯定有朋友想说了,用brew呀,小弟不是很了解brew等软件的运作,并且这对于一个使用电脑有洁癖的人来说,不能保证文件都是在自己定义的路径下是很难接受的。于是就想“为啥不能像Windows那样复制过来直接用呢?”,于是就有了静态编译Memcached的想法。 静态编译: 编译器在编译可执行文件的时候,将可执行文件需要调
2015-08-23 13:13:37 1376
原创 IntelliJ IDEA 14 注册机源码
import java.math.BigInteger;import java.util.Date;import java.util.Random;import java.util.zip.CRC32;/** * used by idea 14 */public class Keygen{ /** * @param s * @p
2015-08-15 10:30:15 1078
转载 Mac OS X 系统下多Jdk版本冲突解决
Get into /System/Library/Frameworks/JavaVM.framework/Versionsand update the CurrentJDK symbolic link to point to/Library/Java/JavaVirtualMachines/YOUR_JDK_VERSION/Contents/E.g.cd /Sy
2015-05-29 15:00:55 1394
原创 HashMap中的get方法注意事项
get方法会调用对象的hashcode方法,而Integer和Long的hashcode方法是不一样的。所以调用get方法的时候一定要匹配好key类型。
2014-03-21 14:25:24 993
原创 缓存查询列表并提供更新处理方案
package cn.com.iboyaa.ifservice.client.cache.util;import java.io.Serializable;import java.util.List;import java.util.Map;import javax.annotation.PostConstruct;import org.springframework.beans.
2014-03-21 14:18:54 1379
原创 在spring data jpa中使用redis的通用list及entity存储方法
/** * 从redis中获取对象。注意:未进行haskey检测 * * @param e * @param redis * @param KEY * @param KEY_LIST * @param INDEX * @return * @version 1.0 * @since Service
2014-02-11 11:27:59 5428
原创 memcached与redis对性能对比
Long l1 = System.currentTimeMillis(); for (int i = 0; i < 10000; i++) { client.safeSet("test" + i, "test"); } logger.debug(System.currentTimeMillis() - l1 + "memcac
2014-01-29 20:08:41 872
转载 spring aop 失效问题
在使用了SpringMvc后,如果在application.xml中配置的可能会导致切入点使用@annotation失效。这个失效原因可能在于Spring的AOP对SpringMvc有其特殊的拦截机制,即并非完全与我们自定注解机制一个管道,所以会导致失效,而解决的方法也很简单,只需要将的配置写道spring-mvc的xml配置文件中即可。
2014-01-23 12:32:18 1495
原创 Jeckson使用技巧
多看api是有好处的。记录下自己使用的配置:private static JsonMapper amapper = new JsonMapper(Include.ALWAYS); //转换所有SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //转换时日期格式amapper.getMapper()
2014-01-20 10:51:32 1410
原创 HashMap使用中注意事项
1.从HashMap中索引键值的时候使用的是哈希值。几种基本类型的包装类型都重写了哈希方法,如果是按自定义对象作为key的话,注意重写哈希方法。
2014-01-20 10:47:28 767
原创 持续集成(jenkins)中的持续发布配置.(Deploy to container Plugin插件)
参数详解:第一项(WAR/EAR files):是war包的相对路径(相对于工作区路径,即在工作区中war包的相对路径.)如我的maven执行完成之后会在工作区的target目录下生成项目.war,所以这里我的路径就写target\项目.war.第二项:(content path):tomcat的发布路径,即使用localhost/(content path设置的名字)来访问项目.最后
2013-12-16 10:09:11 10328 3
原创 shiro-ehcache在持续集成无法发布问题
开启了shiro-ehcache缓存的话,在使用jenkins做持续集成并发布项目的时候,如果载入了自己的ehcache缓存配置文件的话,可能会报告如下错误.ERROR: Publisher hudson.plugins.deploy.DeployPublisher aborted due to exceptionorg.codehaus.cargo.container.Containe
2013-12-16 09:39:59 8368 1
空空如也
使用spring的Spel表达式遇到的问题
2014-02-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人