博文

目前显示的是 一月, 2019的博文

JVM与linux系统时间不一致问题 – 上善若水 – CSDN博客

图片
原 JVM与linux系统时间不一致问题 2018年09月04日 17:47:36 ImChong 阅读数:313 版权声明:本文为博主原创文章,未经博主允许不得转载。 http://bit.ly/2HBBMv9 Java运行打印日志与系统时间不一致问题解决方法: 1.修改/etc/sysconfig/clock文件,若没有该文件则创建。 1 #编辑/etc/sysconfig/clock 2 sudo vim /etc/sysconfig/clock 3 #添加如下内容 4 ZONE= "Asia/Shanghai" 5 UTC= false 6 ARC= false 复制 2.设置linux的时区设置为上海时区 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/ localtime 3.对准时间 ntpdate cn .pool .ntp .org 4.设置硬件时间和系统时间一致并校准 /sbin/hwclock --systohc 5.修改/etc/timezone文件(关 键,若不进行此处设置,系统时间是正确的,但JVM获取的时间仍然是之前时间 ) 1 2 #编辑/etc/timezone文件 3 sudo vi /etc/timezone 4 #替换其中内容为 5 Asia/Shanghai

linux下如何解决jvm执行取得的时间和系统时间不一致的问题 – 学而思(xiejava的blog) – CSDN博客

图片
原 linux下如何解决jvm执行取得的 时间和系统时 间不一致的问题 2017年11月23日 22:56:39 xiejava1018 阅读数:4288 版权声明:本文为博主原创文章,未经博主允许不得转载。 http://bit.ly/2Scd1cT 今天在和对端系统调试接口的时候发现一个怪问题。用本地环境调试调用接口没有问题,发到服务器上问题就来了参数解析不了。确认了版本没有问题以后,一步步分析。这接口对端要求我们参数通过AES加密传过去,秘钥是一串字符加年月日的时间戳。怀疑是 服务器时间 不对引起的,但是通过date命令查看发现服务器的时间是正常的。通过打日志才发现通过Java程序代码new Date()取得的时间比服务器的时间少了近8个小时,所以加密后对端解密解密不了。 现在就要办法解决jvm执行取得的时间和系统时间不一致的问题。通过在网上查阅资料,应该是jvm运行的时区设置问题。 解决的办法有几种: 1、在程序中使用java的函数设定时区。 2、在启动java程序时加参数-Duser.timezone=GMT+8 3、调整系统的时区设置 1).vi /etc/sysconfig/clock #编辑时间配置文件 ZONE=”Asia/Shanghai” UTC=false #设置为false,硬件时钟不于utc时间一致 ARC=false 2).ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #linux的时区设置为上海时区 3).ntpdate cn.pool.ntp.org #对准时间 4)./sbin/hwclock –systohc #设置硬件时间和系统时间一致并校准 发现/etc/sysconfig/clock 配置文件的时区还是 纽约 时间,难怪会差近8个小时咯。可能是装系统的时候没有没有选择时区默认的纽约时间。 通过第三种方法调整好系统的时区设置,果然执行后一切正常。

本机安装mysql服务,步骤教程(另附SQLyog和Navicat工具) – dukeShi – 博客园

图片
本机安装mysql服务,步骤教程(另附SQLyog和Navicat工具)   因为这段时间不是装系统就是换硬盘,导致装了还几次MySql,每次都记不住都要上网找教程,着实麻烦,所以这次干脆直接写到博客上好了,便于自己也便于他人:   百度云:http://bit.ly/2ngivo0 password:qcls   1.首先下载以上云盘,资源是这样子的:      2.根据各自系统选择32还是64,解压文件;   3.解压之后的目录如下,先删除如图所示的”my-default.ini”文件;      4.然后把百度云资源里的”my.ini”文件拷贝到当前目录下,右键打开编辑( 注意: 图中所标记处需改为自己本机文件目录);         5.编辑完成后保存,回到桌面,右键”我的电脑”–“属性”–“高级系统设置”–“环境变量”–打开”PATH”编辑框,在尾部(当然,中部也行)追加刚才的mysql解压文件的bin目录,并以”;”结尾’,编辑完后点确定关闭窗口;      6.现在,基本已经配置好了,就差安装服务和启动服务了;   7.打开”命令提示符”,”cmd”进入控制台,输入”mysqld –install”安装mysql服务;   8.安装成功后会出现类似”success”的标记;      9.继续输入”net start mysql”,等待…出现”服务启动成功”则说明大功告成了;   10.此时,我们需要为mysql默认管理员”root”设置密码:执行”mysqladmin -u root password 123456″即可;   11.现在,本地服务安装好了,我们需要用可视化工具Nacicat或者SQLyog来管理;(安装包已经一并放在百度云资源)   12.根据提示安装好软件后,都需要新建连接,mysql安装好后都有一个默认管理员,用户名为”root”,密码为”root”,连接成功即可! 好文要顶 关注我 收藏该文 dukeShi 关注 – 35 粉丝 – 5 +加关注 1 0 » 下一篇: java中==和equels的区别 posted @ 2017-03-14 00:30 dukeShi 阅...

拜托!面试请不要再问我Spring Cloud底层原理 – 掘金

图片
石杉的架构笔记 2018年11月07日 阅读 16874 拜托!面试请不要再问我Spring Cloud底层原理 欢迎关注微信公众号: 石杉的架构笔记(id:shishan100) 每周一至五早8点半,精品技术文章准时送上! 目录 一、业务场景介绍 二、Spring Cloud核心组件:Eureka 三、Spring Cloud核心组件:Feign 四、Spring Cloud核心组件:Ribbon 五、Spring Cloud核心组件:Hystrix 六、Spring Cloud核心组件:Zuul 七、总结 概述 毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。 因此本文将通过大量的手绘图 ,给大家谈谈Spring Cloud微服务架构的底层原理。 实际上,Spring Cloud是一个全家桶式的技术栈,包含了很多组件。本文先从其最核心的几个组件入手,来剖析一下其底层的工作原理。 也就是Eureka、Ribbon、Feign、Hystrix、Zuul这几个组件。 一、业务场景介绍 先来给大家说一个业务场景,假设咱们现在开发一个电商网站,要实现支付订单的功能,流程如下: 创建一个订单后,如果用户立刻支付了这个订单,我们需要将订单状态更新为”已支付” 扣减相应的商品库存 通知仓储中心,进行发货 给用户的这次购物增加相应的积分 针对上述流程, 我们需要有订单服务、库存服务、仓储服务、积分服务 。整个流程的大体思路如下: 用户针对一个订单完成支付之后,就会去找订单服务,更新订单状态 订单服务调用库存服务,完成相应功能 订单服务调用仓储服务,完成相应功能 订单服务调用积分服务,完成相应功能 至此,整个支付订单的业务流程结束 下图这张图,清晰表明了各服务间的调用过程: 好!有了业务场景之后,咱们就一起来看看Spring Cloud微服务架构中,这几个组件如何相互协作,各自发挥的作用以及其背后的原理。 二、Spring Cloud核心组件:Eureka 咱们来考虑第一个问题 :订单服务想要调用库存服务、仓储服...

上班划水神器:一个可以在控制台玩斗地主的项目! – 掘金

图片
矢泽妮可 2018年11月12日 阅读 27238 上班划水神器:一个可以在控制台玩斗地主的项目! 这是什么? 这是Ratel,它可以在命令行内进行简单的斗地主游戏,来张图体验一下: 怎么开始玩? Ratel分客户端和服务端,你可以在本地启动一个客户端让小伙伴们的客户端都连接你的服务器进行游戏,又或者可以直接连接作者公网服务器进行游戏,IP 39.105.65.8 Port 1024 ,不过作为玩家,我们最看重的还是客户端的使用! 你可以将Ratel项目Clone到本地并导入你的IDE中进行游戏! git clone https://github.com/ainilili/ratel.git 复制代码 之后打开 landlords-client 模块中的 SimpleClient 类启动运行。 你可以使用jar包启动 下载Release版本 github.com/ainilili/ra… 之后进入下载目录中执行一下指令 java -jar landlords-server/target/landlords-server- #{version}.jar -p 1024 java -jar landlords-client/target/landlords-client- #{version}.jar -p 1024 -h 127.0.0.1 复制代码 上述#{version}为当前Release版本, -p 指定端口, -h 执行Host,这里可以切换为 39.105.65.8 开始玩? Ratel客户端采用命令行输入指令的方式与服务端进行交互,连接服务器之后要做的第一件事就是设置昵称 Connection to server successful, welcome to ratel !! Please set your nickname [ratel@nickname]$ Nico 复制代码 我将昵称设置为Nico,之后将会进入选项板 Options: 1. Create Room 2. Room List 3. Join Room Please enter the number of options [ratel@options]$ 复制代码 这...

JavaScript 复杂判断的更优雅写法 – 掘金

Think. 2018年11月06日 阅读 30118 JavaScript 复杂判断的更优雅写法 前提 我们编写js代码时经常遇到复杂逻辑判断的情况,通常大家可以用if/else或者switch来实现多个条件判断,但这样会有个问题,随着逻辑复杂度的增加,代码中的if/else/switch会变得越来越臃肿,越来越看不懂,那么如何更优雅的写判断逻辑,本文带你试一下。 举个例子 先看一段代码 javascript /** * 按钮点击事件 * @param {number} status 活动状态:1 开团进行中 2 开团失败 3 商品售罄 4 开团成功 5 系统取消 */ const onButtonClick = ( status )=> { if (status == 1 ){ sendLog( 'processing' ) jumpTo( 'IndexPage' ) } else if (status == 2 ){ sendLog( 'fail' ) jumpTo( 'FailPage' ) } else if (status == 3 ){ sendLog( 'fail' ) jumpTo( 'FailPage' ) } else if (status == 4 ){ sendLog( 'success' ) jumpTo( 'SuccessPage' ) } else if (status == 5 ){ sendLog( 'cancel' ) jumpTo( 'CancelPage' ) } else { sendLog( 'other' ) jumpTo( 'Index' ) } } 复制代码 通过代码可以看到这个按钮的点击逻辑:根据不同活动状态做两件事情,发送日志埋点和跳转到对应页面,大家可以很轻易的提出这段代码的改写方案,switch出场: javascr...