- 博客(33)
- 资源 (5)
- 收藏
- 关注
原创 Mysql 读写分离java实现
日常系统开发中,数据库往往是大多数系统最终性能瓶颈,最终业务操作都在数据库中完成,除了一些热点数据我们往往会把它放入缓存数据库中,提高系统查询效率,但是当数据量大,Redis往往不能解决所有的问题,所以我们会对数据库做一个双机读写操作,同时也提供了数据的一个备份操作。同时我们的业务往往都是读多写少,这样我们更加有必要做一个数据库的读写分离。好了,话不多说,直接上代码:代码工程是基于Spring ...
2019-03-07 15:45:33 2072
原创 Nginx + FastDFS文件存储系统服务映射架构设计
由于我们做的国外游戏运营业务,有大量的游戏文件,图片等资源都需要存储,而考虑到成本问题,我们都是自己买阿里云服务器,然后自己手工搭建文件存储服务,之前都是按教程安装,然后使用;后来我们为了安全,下载游戏链接防盗链,然后游戏下载链接都是动态生成,而且想做到游戏链接2分钟有效,所以必须自己在Nginx到FastDFS中有一个文件路径映射,并且在映射服务中可以自定义做一些逻辑校验,后来几经查找资料,才通...
2018-12-10 18:53:14 992
原创 Spring Boot 结合 Sharding-Jdbc做分库分表示例
对于一些大系统,数据库数据量很大,业务量特别大的时候,而我们的数据库及表的对于大数据量的时候,处理的性能就不容乐观,这个时候我们就需要对我们的数据和表做分库分表处理了。一般分库分表都会采用数据库中间件,像Mycat这种中间件,它帮我们做数据源,路由映射控制。而今天介绍的Sharding-Jdbc是一个java的应用程序包,所以两者一比较,中间件肯定更加重量级一些。添加POM依赖:<?xm...
2018-12-06 16:33:05 780
原创 Log4J2 日志链实现
Log4J2 日志链实现背景:日志是系统出现问题,最关键的信息,让开发人员快速找到日志信息,定位问题,我们需要有一个完整的日志系统,业界有ELK等日志系统,特别在分布式(微服务)中,日志就变得更加复杂,服务器资源多,日志打印开发无法快速找到日志信息在哪一台机器上,这时就需要我们记录日志的信息链路(路由),日志跟踪ID(TraceID)等信息,返回跟前端,开发通过查看接口就能快速找到日志信息方便...
2018-12-03 11:30:05 1102
原创 Docker Compose介绍
docker compose 是一个整合发布应用的利器。而使用 docker compose 时,懂得如何编排 docker compose 配置文件是很重要的。1,介绍1,docker compose 技术可以查看官方文档 Docker Compose2, Docker Compose 的官方安装教程 Install Docker Compose2,Docker Compose 配置文件...
2019-04-04 16:14:10 509 1
原创 Jackson对泛型的序列化和反序列化方法
平时我们一般使用阿里的Fastjson库,但是也会使用Jackson对于简单泛型是可以正常操作的,但是如果对于太过于复杂的泛型类有时会不成功。目前还在找着更合适的Json库。不过这一点在dotnet原生方案JavaScriptSerializer可以完美解决这一些问题,无论泛型多复杂。这里我们就列举一些常用的序列化和反序列的示例: ObjectMapper mapper = new Obje...
2018-12-29 11:08:20 1946
原创 修改NGINX版本并伪装任意WEB SERVER
一般Nginx有哪些内部名称展示,如有通过HTTP Response Header中的Server、错误页的footer、FPM-FastCGI等。而且一般我们业务在生产环境下,一般都需要用nginx做服务负载或者反向代理等,所以为了不想暴露我们的nginx版本号,以及负载Server名称也是一种信息安全的体现。这个时候我们修改nginx的Server名称,应用版本号等信息;正常nginx的应用...
2018-12-29 10:39:00 1329
原创 搭建自己的文件服务器FastDFS
平时应用的文件存储一般都是需要自己的文件服务器来保存,当然你也可以买阿里云的文件存储,但是我们为了节省成本,并且能更好的控制我们的文件存储管理,所以我们选择了自己搭建文件服务器器,并选择了FastDFS作为搭建工具。1,安装依赖包zlib-1.2.11.tarlibfastcommon 下载并安装libfastcommontar -zxvf V1.0.7.tar.gz[root@ec...
2018-12-24 19:14:02 1486
原创 Quartz Cron表达式解释
Cron范例:*/10 * * * * ? 每10秒执行一次0 */1 * * * ? 每隔1分钟执行一次0 0 8 * * ? 每天8点执行一次0 0 1 * * ? 每天凌晨1点执行一次:0 0 1 1 * ? 每月1号凌晨1点执行一次0 0 23 L * ? 每月最后一天23点执行一次0 0 1 ? * L 每周星期天凌晨1点实行一次0 26,29,33 * *...
2018-12-21 17:18:05 265
原创 Spring Boot集成MyBatis并打成Jar方式运行时无法启动
当我们使用Spring Boot构建项目,并以Jar方式启动,如果我们自己集成了MyBatis,并设置自动扫描Mapper和xml,这个时候我们项目启动就会报无法初始化DataSource,找不到xml文件;之前一直困扰了好久,后来查找资料发现有两种方式可以解决该问题。第一种解决方式手工一个一个在mybatis-config.xml配置文件添加xml文件,并设置domain别名<?xm...
2018-12-21 17:12:34 792
原创 Linux下以jar方式启动Spring Boot项目,并以后台方式启动
一、Linux 下使用 nohup一般我们将Spring Boot项目打包成jar包的时候,然后用java命令方式启动,如下:java -jar myproject.jar --spring.profiles.active=dev解释java -jar java运行jar包的命令--spring.profiles.active 指定启动参数(实例中指定项目中环境配置文件)no...
2018-12-21 16:31:29 3056
原创 Docker与微服务-使用Maven插件构建Docker镜像
1. Docker与微服务-使用Maven插件构建Docker镜像前提:自己搭建的私有Docker仓库需要开放远程API端口,要不然你无法推送镜像到私有仓库下,开放Docker远程私有仓库端口步骤:Ubuntu系统下:1. 配置$ sudo vim /lib/systemd/system/docker.service修改ExecStart一行,改为:ExecStart=/usr/bi...
2018-12-13 10:00:10 604
原创 HttpClient 网络发送工具使用技巧
平时项目中一般用来发送Http请求的工具可以用HttpConnectionURL工具,但是它是Java自带的,在net包下,而且一般连接不能重用,所以用起来比较麻烦,所以apache下有一个已经封装好的HttpClient工具包,它的每个版本变化都比较大,使用起来都不一样,我目前使用的是4.5.3版本。添加POM依赖&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;...
2018-12-12 12:09:11 214
原创 Shell程序文件上传以及自动备份部署脚本
DMZ机器程序文件上传到服务器指定目录脚本#!/bin/bash#author Pine Chown#任务分发脚本#2017-08-25instance1=gcharging1-insidedeploy_file=gcharging.zipTIME=`date +%F`timestamp=`date +%Y%m%d%H%M%S`root_dir=/usr/deploy/gcha...
2018-12-06 10:50:58 362
原创 Java 应用程序启动停止暂停启动脚本
#!/bin/sh # Author Pine Chown# date 2018-12-06# desc 程序启动暂停脚本 APP_HOME=/usr/local/java/application#启动的程序名称APP_NAME=charging# 配置文件生产环境PROFILE=proLOG_PATH=/usr/local/java/logsLOG_FILE=pat...
2018-12-06 10:23:17 1026
原创 Linux配置DMZ机器远程免密码登录
当我们环境中服务器数量较多,特别是对于我们生产环境下,当然我们在服务器数量较多时,一般都会有一台DMZ的可信机器,然后通过DMZ机器SSH远程到各个服务器上进行操作,但是每次SSH都要输入用户名,密码等信息,比较繁琐,特别是对于服务运维很不方便,这时候我们就可以通过设置各个服务和DMZ机器为可信机器,这样我们就可以通过DMZ远程免密码登录,非常方便。原理通过Linux的ssh-keygen在...
2018-12-04 18:54:27 949
原创 Docker私有仓库搭建
Docker私有仓库搭建现在微服务盛行,基本大一点,访问流量高的项目都采用微服务的架构方式进行设计,当我们采用像Spring Boot或者Spring Cloud的方式进行项目开发,然后再结合Docker容器的方式进行部署。虽然Docker提供dockerhub中央仓库,而且业界也有相应的网易蜂巢,阿里的Docker镜像仓库。 但是考虑到信息安全,公司内部自己特有的一些私有Docker容器,都想...
2018-12-03 16:08:52 217
原创 Log4J2基本配置
Log4j2环境搭建1.去官方下载log4j,导入jar包 log4j-core-xx.jar log4j-api-xx.jar2.开始使用: 如果要在某个类下使用log4j做日志记录(强烈建议使用slfj的API,不要使用其他日志的系统API): private static Logger logger = LogManager.getLogger(MyApp.class.ge...
2018-12-03 11:48:06 426 1
原创 Nginx环境搭建以及一些基本配置
Nginx环境搭建listen 8889; 监听端口,如果配置多个server的时候,端口需要配置不一样server_name 192.168.0.52; # Nginx中的server_name指令主要用于配置基于名称的虚拟主机,server_name指令在接到请求后的匹配顺序#配置启动进程(和CPU总核数一致)worker_processes 1;#charse...
2018-12-03 11:42:32 639
原创 让自己的Tomcat支持APR插件
TOMCAT安装APR插件配置介绍Tomcat可以使用Apache Portable Runtime来提供卓越的性能及可扩展性,更好地与本地服务器技术的集成。Apache Portable Runtime是一个高度可移植的库,位于Apache HTTP Server 2.x的核心。APR有许多用途,包括访问高级IO功能(如sendfile,epoll和OpenSSL),操作系统级功能(随机数...
2018-12-03 11:36:15 445
原创 SpringBoot配置支持HTTPS
让自己的网站支持HTTPS获取证书用Java自带的keytools工具生成证书keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650参数说明1.-storetype 指定密钥仓库类型2.-keyalg 生证书的算法...
2018-12-03 11:34:15 269
原创 H5前端文字的一些小技巧
-webkit-text-size-adjust: none; 解决 Chrome 浏览器中设置小于 12px 的字体大小问题,在Chrome 浏览器中默认会把小于12px的字体变成12字体,设置该属性可以解决此问题...
2018-12-03 10:04:00 432 1
原创 JVM调优笔记
JVM参数调优整理 1.调优工具JVisualVM 和 JConsole 以上两个工具都是JDK自带的,在JDK安装目录下就可以找到对应的exe可执行文件 通过 JVisualVM 连接到某个JVM以后, 切换到 MBeans 标签, 展开 “java.lang/GarbageCollector” . 就可以看到GC行为信息, 下图是 JVisualVM 中的...
2018-12-01 19:47:55 313
原创 Docker 容器监控环境(Influxdb + Cadvisor + Grafana)搭建
由于服务器环境上运行的Docker容器比较多,有时候一些容器的运行情况需要监控,特别是生产环境下的容器监控,这个时候我们安装Influxdb + Cadvisor + Grafana服务特别有用。一、Influxdb 用于数据存储 InfluxDB 是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。所以我们要使用influxdb将这些实时监控到的...
2018-12-01 18:23:09 451
原创 s2sh整合
org.springframework.beans.factory.BeanCreationException: Error creating bean......Caused by: java.lang.NoSuchMethodError: org.springframework.core.annotation.等出现错误时,只要
2014-04-16 13:41:36 502
转载 s2sh整合出现的问题
Caused by: Unable to load configuration. - [unknown location] at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:69) at org.apache.struts2.
2014-04-16 13:36:41 441
原创 c3p0 的详细配置
C3P0连接池详细配置 3 30 1000 false 属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操作,它将只供c3p0测试 使用。Default: null--> Test 保留,并在下次调用getConnection()的时候继续尝试获取连
2014-04-09 22:38:59 406
转载 SSH框架中的使用OpenSessionInView的问题
观点一: 今天有一个朋友问了我一个问题,他使用的是Hibernate/Spring/Struts架构,配置使用Spring的 OpenSessionInView Filter,但是发现不生效,lazy的集合属性在页面访问的时候仍然报session已经关闭的错误。我和他一起检查了所有的配置和相关的代码,但是 没有发现任何问题。经过调试发现,应用程序使用的Session和OpenSessionInVi
2014-03-25 21:31:11 518
原创 s2sh配置技巧----------------------------OpenSessionInViewFilter
OpenSessionInView和你说的业务类没有什么关系。OpenSessionInView实际上就是在你每个*.do的请求之前打开Session,在*.do的整个URL请求执行完毕关闭Session而已,还是仔细检查一下你的MVC控制逻辑吧。所以吧struts的中央控制器配置在OpensessionInView的后面。如下OpenSessionInViewFilter 的配置情况(web
2014-03-25 21:29:01 410
原创 SSH框架项目出现java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I错误的解决方案
在做s2sh整合的时候,他老是报java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I异常,java.lang.NoSuchMethodError: antlr.collections.AST.getLine()看来是antlr这个语法解析包出错 因为Struts自带的antlr-2.7.2.jar,比Hibernate3.3
2014-03-25 17:30:03 604
转载 createQuery is not valid without active transaction异常
很多时候我们使用hibernate的session时,都是让session在某一运行环境中保持其唯一。例如在同一线程内用同一个session,在同一方法内用同一session,这样我们就可以用session里面缓存好的数据。但,我想说的不是缓存,且听我一一道来。 最近试用spring3.0.2+struts2.18+hibernate3.3.2学习搭建一个web项目,出现了一个相
2014-03-25 16:32:37 918
翻译 在网页中嵌入编辑器
用FCKEditor就可以了,下面是以前收集的一篇关于FCKEditor的配置资料,希望对楼主能有帮助: FCKeditor是sourceforge.net上面的一个开源项目,主要是实现在线网页编辑器的功能,可以让web程序拥有如MS Word这样强大的编辑功能。官方网站为http://www.fckeditor.net ,在服务器端支持ASP.Net、ASP、ClodFusion、PHP
2013-11-30 19:31:04 1072
原创 hibernate4.0的开发创建SessionFactory
创建SessionFactory,SessionFactory是线程安全,所以整个SessionFactory应该基于单例的模式来创建Configuration cfg = new Configuration().configure();//读取配置文件//在hibernate3中都是使用该种方法创建,但是在4中被禁用了//cfg.buildSessionFactory()
2013-11-30 19:08:52 504
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人