log4j

spring3.2.2+mybatis3.2.3+c3p0项目整合

為{幸葍}努か 提交于 2020-04-27 17:37:22
在搭建项目之前,创建数据库,以及数据库表,我用的数据库是mysql 5.6.11 创建数据库语句为: Sql代码 CREATE TABLE `orders` ( `id` bigint ( 20 ) NOT NULL AUTO_INCREMENT, `company_id` varchar ( 255 ) DEFAULT NULL , `charge` decimal ( 18 , 4 ) NOT NULL DEFAULT ' 0.0000 ' , `state` int ( 11 ) DEFAULT ' 0 ' , `remark` varchar ( 500 ) DEFAULT NULL , PRIMARY KEY (`id`) ); 搭建项目需要以下的包, 好了,简单的准备工作已经准备就绪,现在来创建一个java项目或者java web项目 首先,创建dao接口类。 Java代码 package com.yunix.dao; public interface IOrderDao { public int getOrderCount(); } 然后在com.yunix.dao.impl包下创建OrderDaoMapper.xml 内容为: Xml代码 <? xml version="1.0" encoding="UTF-8" ?> <! DOCTYPE mapper

sharding-jdbc之——分库分表实例

倾然丶 夕夏残阳落幕 提交于 2020-04-26 13:56:22
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/79368021 一、概述 之前,我们介绍了利用Mycat进行分库分表操作,Mycat分表操作是利用分库来进行的,单个库中的分表操作可结合MySQL的分区进行,这也是Mycat官方提倡的方式。那么,如何利用Mycat真正实现数据库的分库分表,可以私信我。今天,我们来看看sharding-jdbc,sharding-jdbc也是一款分库分表的“中间件”,不过,它并不向Mycat那样作为一个真正的中间件,它是一款以jar包的形式整合到业务中的插件,这就决定了它是轻量级的,用法也是十分简单的。 二、分库分表实战 接下来,我们就利用sharding-jdbc进行数据库的分库分表操作。 1、创建数据库 首先我们创建相应的数据库 create database sharding_0; create database sharding_1;    这样我们就创建了两个数据库sharding_0和sharding_1; 接下来我们在两个库中创建相应的数据表,在两个库中分别进行如下SQL: SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for t_student_00 -- ---

MYBATIS框架

匆匆过客 提交于 2020-04-25 17:02:54
1. MyBatis 简介 1.1. MyBatis 概述 ? 1.1.1. MyBatis 是什么? MyBatis 由 apache 的 ibatis 演变而来,可以从如下几个方面加强理解与应用。 1) 软件框架 (Framework): 用于 解决 软件 中的通用型 (共性) 问题 2) 持久层框架(数据 访问层 ):用于 更好 解决 数据 持久 化问题 3) 半 自动的 ORM 框架 : 解决对象关系映射问题。 思考 : 1) 如何 理解 ORM ( 对象 关系映射) : 实现对象 以及对象与对象关系的映射。 课后 了解 :JAVA 生态项目中常用的持久层框架 hibernate (ORM 框架) :用于解决数据的持久化问题(数据库操作) 1.1.2. MyBatis 应用场景 MyBatis 主要应用于 Java 技术生态项目的研发。例如: 1) Java传统桌面型项目(例如传统的计费系统等) 2) Java web 互联网项目 ( 例如电商项目,企业互联网业务系统 ) 1.1.3. MyBatis 应用优势 思考: 1) 互联网项目的硬性要求是什么?(快速交付) 2) 互联网项目如何进行技术选型? 第一:稳定,可靠,性能 ; 第二:学习成本。 第三:是否可持续发展,社区支持的力度 思考: 传统 JDBC 开发劣势? 1) 编程步骤 , 参数配置及读取相对繁琐 (

Springboot 配置Slf4j + Logback

心不动则不痛 提交于 2020-04-24 23:37:31
一、Logback Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J, Log4J2和Logback。每种Logger都可以通过配置使用控制台或者文件输出日志内容。 Logback是log4j框架的作者开发的新一代日志框架,它效率更高、能够适应诸多的运行环境,同时天然支持SLF4J。因为logback的效率显著高于log4j,而且logback也是Springboot推荐并且默认使用的日志系统。 默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。 日志输出内容元素具体如下: -时间日期:精确到毫秒 -日志级别:ERROR, WARN, INFO, DEBUG or TRACE -进程ID -分隔符:--- 标识实际日志的开始 -线程名:方括号括起来(可能会截断控制台输出) -Logger名:通常使用源代码的类名 -日志内容 添加日志依赖: 假如maven依赖中添加了spring-boot-starter-logging < dependency >    < groupId > org.springframework.boot </ groupId >    < artifactId > spring-boot-starter

Spark2.1.0——Spark初体验

别来无恙 提交于 2020-04-24 23:02:05
学习一个工具的最好途径,就是使用它。这就好比《极品飞车》玩得好的同学,未必真的会开车,要学习车的驾驶技能,就必须用手触摸方向盘、用脚感受刹车与油门的力道。在IT领域,在深入了解一个系统的原理、实现细节之前,应当先准备好它的运行环境或者源码阅读环境。如果能在实际环境下安装和运行Spark,显然能够提升读者对于Spark的一些感受,对系统能有个大体的印象,有经验的工程师甚至能够猜出一些Spark在实现过程中采用的设计模式、编程模型。 考虑到大部分公司在开发和生产环境都采用Linux操作系统,所以笔者选用了64位的Linux。在正式安装Spark之前,先要找台好机器。为什么?因为笔者在安装、编译、调试的过程中发现Spark非常耗费内存,如果机器配置太低,恐怕会跑不起来。Spark的开发语言是Scala,而Scala需要运行在JVM之上,因而搭建Spark的运行环境应该包括JDK和Scala。 本文只介绍最基本的与Spark相关的准备工作,至于Spark在实际生产环境下的配置,则需要结合具体的应用场景进行准备。 安装JDK 自Spark2.0.0版本开始,Spark已经准备放弃对Java 7的支持,所以我们需要选择Java 8。我们还需要使用命令getconf LONG_BIT查看linux机器是32位还是64位,然后下载相应版本的JDK并安装。 下载地址: http://www

五分钟学Java:可变参数究竟是怎么一回事?

别等时光非礼了梦想. 提交于 2020-04-24 20:15:53
在逛 programcreek 的时候,我发现了一些专注基础但不容忽视的主题。比如说:Java 的可变参数究竟是怎么一回事?像这类灵魂拷问的主题,非常值得深入地研究一下。 我 以前很不重视基础,觉得不就那么回事嘛,会用就行了。就比如说今天这个主题,管它可变不可变呢,不就是个参数嘛,还能有多大学问——抱着这种态度,我一直横行江湖近十载(苦笑)。可等到读者找我提一些基础的问题时,我几乎回答不上来,感觉知识是散的,或者是浮于表面的。幸好最近一段时间,我开始幡然醒悟,开始不放过任何一个细节,渐渐地,有点“知识储备”了。 好了,牛逼吹完,让我们来步入正题。Java 的可变参数究竟是怎么一回事? 可变参数是 Java 1.5 的时候引入的功能,它允许方法使用任意多个、类型相同( is-a )的值作为参数。就像下面这样。 public static void main (String[] args) { print( "沉" ); print( "沉" , "默" ); print( "沉" , "默" , "王" ); print( "沉" , "默" , "王" , "二" ); } public static void print (String... strs) { for (String s : strs) System.out.print(s); System.out.println

Spring Boot整合SLF4j+log4j

五迷三道 提交于 2020-04-23 09:17:25
一 点睛 SLF4j作为日志门面,log4j作为日志实现。 二 pom 需要排除自带的logback依赖,引入springboot-log4j <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.cakin</groupId> <artifactId

Spring Boot整合SLF4j+log4j2

走远了吗. 提交于 2020-04-23 09:16:47
一 点睛 SLF4j作为日志门面,log4j2作为日志实现。 二 pom <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.cakin</groupId> <artifactId>springbootlog4j2</artifactId> <version

spring cloud gateway cpu使用异常问题排查

☆樱花仙子☆ 提交于 2020-04-21 21:35:57
问题 生产环境发现spring cloud gateway服务cpu使用过高,接近100% 使用top命令查询占用CPU较高的线程,发现4个线程CPU异常 spring cloud gateway 基于Netty 实现,默认情况创建一个线程监听端口,accept连接,多个线程(数量等于CPU核心数)处理socket数据,因此怀疑是做路由 转发的四个线程出现问题 使用 jstack 查看java线程栈信息,发现了对应线程确实是做路由转发的线程(jstack中线程是16进制展示的) 排查log4j日志,发现大量日志输出,日志级别为debug,怀疑是请求处理线程输出大量日志导致CPU占用过高 处理方式 调整日志级别到info,重新部署服务,CPU 恢复正常 结论 1、大量日志会影响服务性能,高并发场景,谨慎处理日志级别 2、网关是后台所有请求的入口,基于单一职责原则,只做代理,不要添加认证等业务相关的服务,以防系统出现瓶颈 来源: oschina 链接: https://my.oschina.net/canghaidekongjian/blog/3288464

搭建node服务(一):日志处理

前提是你 提交于 2020-04-21 18:53:46
对于一个应用程序来说,日志记录是非常重要的。日志可以帮助开发人员快速定位线上问题,定制解决方案;日志中包含大量用户信息,通过日志分析还可以获取用户行为、兴趣偏好等信息,通过这些信息可以得到用户画像,对公司战略的制定提供参考。本文将要介绍如何在node服务中处理日志。 一、技术选型 选择了3种主流的技术进行对比: 1.1 log4js log4js是一种node日志管理工具,可以将自定义格式的日志输出到各种渠道。对于控制台的日志输出可以呈现彩色日志,对于文件方式的日志输出,可以根据文件大小或者日期进行日志切割。 熟悉java的开发人员会发现log4js与一种常用的java日志工具log4j很像。没错,log4js是log4j的JavaScript版,使用方式也相似。 1.2 winston winston也是一种非常流行的node日志管理工具,支持多传输。默认输出格式为json,也可以自定义输出格式。如果想要对日志进行切割还需要使用 winston-daily-rotate-file 模块。 1.3 PM2 PM2实际是node进程管理工具,具有性能监控、进程守护、负载均衡、日志管理等功能。使用PM2进行日志管理,只需要项目中增加console方法调用,无需添加额外的代码。要对日志进行切割,需要使用pm2-logrotate。 由于团队内部服务端系统很多是基于java的