
系统架构
ranjio_z
会修水龙头、会通马桶,赚着6万一个月的工资洗了一年碗后,潜心学习外语的别人的老公
展开
-
为什么推荐jdk11?
一、G1 GC(Garbage-First Garbage Collector)相对jdk1.8的CMS性能提高16.1%G1 GC是设计用来取代CMS的,同CMS相比G1有以下优势:1、可预测的停顿模型2、避免了CMS的垃圾碎片3、超大堆的表现更出色二、并行GC相对jdk1.8性能提高4.5%三、更好的适用环境:并行GC面向吞吐量,G1则侧重于低延迟...原创 2020-12-16 18:25:32 · 799 阅读 · 0 评论 -
用jdk1.8还是用jdk11
跟着公司CTO冒进了一回:把代码jdk从1.8升级到了jdk11(公司CTO的原意是更新到最新版本jdk,甚至直接使用最新版kotlin)。如果不搞rocketmq,不会发现什么问题,而且会感觉这是一个很好的改进,编码写法改进了,甚至性能提高了……然后,一搞rocketmq,发现:不说jdk11,甚至jdk9都无法让最新版的rockemq起起来。回想一下,这几年,各个大厂都推出了自己的jdk版本,华为有自己的jdk、阿里有自己的jdk,但殊路同归的是都用的是jdk1.8这个版本。要想用大厂优化过原创 2020-12-12 11:20:13 · 44327 阅读 · 9 评论 -
Intellij Idea诡异报红解决办法
1、Idea Preferences配置Java Compiler(这步必做)钩上:Use '--release' option for cross-compilation (Java 9 and later)2、Idea Preferences配置Javac Options(这步可以跳过)钩上:Generate no warnings3、Idea Preferences配置Annotation Processors(这步必做)钩上:Enable annotation processin原创 2020-12-08 11:12:57 · 6627 阅读 · 0 评论 -
张人杰的Git代码库与Jenkins发布管理
我最近都在小公司,周末加班累了,写了两个总结ppt,总结了微服务开发、有条件的中大型公司应该具备的开发手册,另一个ppt是《张人杰的代码、版本管理及开发规约 2020-09-20》完美实现流水线开发管理:...原创 2020-09-20 09:14:13 · 1558 阅读 · 1 评论 -
张人杰的代码、版本管理及开发规约 2020-09-20
原创 2020-09-20 01:56:44 · 1673 阅读 · 0 评论 -
为什么在我的系统中,用的还是openJdk8,而spring cloud是最新的release版本
对于Spring Cloud来说,每个新的Release版本都会修复以前的一些bug,对于大版本一致的情况下,不会新增特性,比如:2.3.1.Release版本和2.3.2.Release版本,它们的功能特性是一致的,无非就是修复bug。所以,对于同一个大版本的Spring Cloud来说,要用最新的Release版本,比如:对于大版本2.x.x,尽量用最新的2.x.x,这样现存的bug会最少,稳定性会最高。而对于jdk,类似:每一个jdk的大版本都会有新增的特性,比如:jdk9与jdk8就会.原创 2020-07-30 17:21:05 · 682 阅读 · 0 评论 -
张人杰的微服务项目开发架构规约
原创 2020-06-13 09:51:58 · 205 阅读 · 0 评论 -
微服务项目架构及项目开发过程总结
最近,总结了一遍我的微服务架构在项目开发中的经验,仅供分享:。。。。原创 2020-04-08 14:31:20 · 1377 阅读 · 0 评论 -
Redis持久化方案
Redis持久化方案RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化)AOF持久化(原理是将Reids的操作日志以追加的方式写入文件)Rdb恢复容易,恢复效率更高Aof更高的数据安全性,每秒同步、每修改同步、不同步,在redis下一次启动之前,需要通过redis-check-aof工具来解决数据一致性问题,如果日志过大可以自动启动rewr...原创 2020-04-06 20:05:40 · 127 阅读 · 0 评论 -
Redis缓存穿透和缓存雪崩的解决办法
缓存穿透:(数据库中没对应数据,所以每次都查数据库)解决办法:对同一查询条件如果没有数据则缓存空对象缓存雪崩:(同一时间,大量缓存对象ttl同时到期)解决办法:设置ttl时,加上一个随机值,或每次get后更新ttl...原创 2020-04-06 19:51:36 · 146 阅读 · 0 评论 -
redis缓存穿透,瞬间并发,缓存雪崩的解决方法
一.缓存穿透: 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。 解决办法: 1.布隆过滤 对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃。还有最常见的则是采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bit...转载 2020-04-06 19:38:14 · 217 阅读 · 0 评论 -
Redis至少是3节点的哨兵集群sentinal
Redis至少是3节点的哨兵集群sentinalquorum=2,有两个哨兵(两个slave)认为master已宕机,可以选举一个来执行故障转移 Sentinel cluster MasterSlave Slave减少异步复制和脑裂导致的数据丢失min-sl...原创 2020-04-06 19:24:30 · 1238 阅读 · 0 评论 -
Redis常用命令总结
Redis常用命令info server可以看到run idauth登录config set requirepass 1234Redis同步机制:有一个backlog文件记录了同步的offsetMaster先发送rdb文件,再发送发送rdb文件时缓存在内存中的写命令client-output-buffer-limit slave 256MB 64MB 60如...原创 2020-04-06 19:00:02 · 185 阅读 · 0 评论 -
Redis的性能瓶颈在哪里
Redis的性能瓶颈在哪里单机Redis,能承载QPS大概在上万到几万如果需要支撑更大的QPS,可以做主从、可以按key的hash做分布式Redis主从master做持久化如果redis做了主从,那么建议必须开启master node的持久化,而slave不持久化Master宕机,重启后,会从本地磁盘中恢复数据如果master空了,而slave做了持久化,那maste...原创 2020-04-06 18:09:21 · 1980 阅读 · 0 评论 -
Redis研究总结
Redis删除策略定期删除+惰性删除定期:每100ms随机抽取一些设置了过期时间的key,检查是否过期,如果过期那就删除惰性删除:当获取某个key时,redis检查一下这个key是否已过期,如果过期那就删除内存不够时,走redis的内存淘汰机制:no eviction、allkeys-lru(对所有的key删除最近最少使用的key)、alleys-random(对所有的key随机删...原创 2020-04-06 17:44:55 · 290 阅读 · 0 评论 -
ES调研笔记
每次操作:写入index buffer->每1秒钟refresh到os cache->每30分钟flush os cache中的数据到segment文件每次操作:都会写入translog每1秒钟将index buffer写入一个新的os cache中的segment一次,清空buffer这个操作叫refresh可以手动refresh将内存中的数据刷到os cache而f...原创 2020-04-05 17:17:10 · 291 阅读 · 0 评论 -
Mq保证顺序消费的方法
RabbitMq保证顺序消费:顺序消息扔到一个queue,一个消费者进行消费Kafka保证顺序:Kafka一个partition只能对应一个消费者设定一个只有一个partition的topic需要顺序消费的数据设定相同的topic,进入到同一个partiton中...原创 2020-04-04 17:22:24 · 2788 阅读 · 2 评论 -
Mq选型总结
activemqJava开发的,在内嵌到项目中比较方便单机吞吐量万级可以做主从、高可用可能丢消息官方维护已经很少Rabbitmq(非分布式)(支持消息的事务)在rabbitmq中创建几万的topic是很容易的,所以可以做到每个硬件订阅不同的topic而kafka的topic在分布式情况下需要同步到其他broker,还需要经过zookeeperr...原创 2020-04-04 17:05:45 · 3317 阅读 · 0 评论 -
activemq、rabbitmq、kafka原理和比较
一、activemq 虽然是java写的消息队列,但是提供Java, C, C++, C#, Ruby, Perl, Python, PHP各种客户端,所以语言上是没什么问题的。配置和使用,基本上是java xml这一套。同时对jms、spring之类的支持很友好。 而且因为是Java写的,所以可以作为一个jar包,放到java项目里,用代码启动和配置,这个对于java开发者而...转载 2020-04-03 11:57:20 · 217 阅读 · 0 评论 -
直装mongodb复制集配置
mongod.conf# for documentation of all options, see:# http://docs.mongodb.org/manual/reference/configuration-options/# where to write logging data.systemLog:destination: filelogAppend: true...原创 2020-03-30 15:18:27 · 120 阅读 · 0 评论 -
确保金融系统中的BigDecimal数据转换为json的精度不丢失
我们知道数值2.9传递给一个double型的变量a时,a就变成了2.899999999999999911182158029987476766109466552734375,而不是2.9。所以,也有了double值比较是否相等时需要比较一个范围的if判断方式。而在金融系统中,数值计算往往需要精确的计算和表达,这就在java系统中引入了BigDecimal数据类型,但是普通的程序员会记得在java...原创 2019-11-15 09:50:27 · 1832 阅读 · 0 评论 -
不可逆双钥加密通信-张人杰版
在现代通信中往往采用https方式来实现加密通信。https通信通道的建立需要首先交换服务器与客户端的公钥,而谁来确保这个交换过程不被替换呢?对了那就是内置在浏览器中的根证书以及服务器端从该证书颁发机构获取保存的服务器端证书。当然证书颁发机构如果拦截了你们之间的通信数据,是完全可以在中间知道你们的公钥的并且模拟发送数据的,但其他人不能,因为其他人没有解密你们的公钥的密钥。那怎样才能确保绝对的安全呢...原创 2019-11-06 12:46:10 · 237 阅读 · 0 评论 -
【转】spring boot整合RabbitMQ(Topic模式)
spring boot整合RabbitMQ(Topic模式)转载 2017年09月07日 14:33:462591.Topic交换器介绍Topic Exchange 转发消息主要是根据通配符。 在这种交换机下,队列和交换机的绑定会定义一种路由模式,那么,通配符就要在这种路由模式和路由键之间匹配后交换机才能转发消息。在这种交换机模式下: 路由键必须是一串字符,用句号(.) 隔开,比如说 agr...转载 2018-04-24 16:21:50 · 513 阅读 · 0 评论 -
Spring Cloud微服务架构 讲解ppt
点击下载原创 2018-03-16 14:30:34 · 8721 阅读 · 0 评论 -
完成管理平台的bootstrap界面布局
此次研发的是单独的后台管理系统,能够自动适配手机屏幕及电脑屏幕,功能上包括角色的管理、用户的管理、权限的分配、权限项的管理,所有操作记入操作日志。原创 2017-02-03 19:08:16 · 9477 阅读 · 18 评论 -
电商、博客平台的互联网系统的分层次开发
在很多系统的开发中,系统的设计过于考虑了灵活性、可配置性,导致系统的安全性不高、设计复杂。这似乎成了一个司空见惯的现象。大量的系统直接通过前端业务系统就可以配置用户的权限、管理用户的帐号、甚至重新修改系统的业务流程。假如某一天由于管理员的疏忽,某个后台操作人员的密码和账号发生了泄漏,那么我们的系统会导致哪些隐患呢?其他账号发生泄漏?流程引擎被恶意修改?这些都有可能。原创 2016-02-29 20:22:36 · 606 阅读 · 0 评论 -
今天很有成效,代码优化,性能提高了近10倍
beanutil的性能是我们的系统的性能瓶颈,虽然,我们的平台已经固化,我们只能不改变现有结构的方式下进行优化,但是,优化的空间还是很大的。经过优化,我们的系统性能提高超过了一倍。原创 2016-02-29 11:00:46 · 533 阅读 · 0 评论 -
互联网大负载系统开发中的session管理
互联网的系统需要考虑的方面特别多,淘宝的架构师给了我们很多的参照:http://m.youkuaiyun.com/article/2013-08-27/2816716。而在我们的程序的实现上,分布式的session管理机制成为了高可扩展性、高效集群的关键。本小短文讲述了分布式session管理机制的实现方式,为日常架构的开发实现提供一点参考。原创 2016-02-28 12:57:11 · 814 阅读 · 0 评论 -
java虚拟机运行参数
-Xms3550m -Xmx3550m -Xmn2g -Xss128k -XX:PermSize=512m -XX:MaxPermSize=1024m -XX:+UseParallelGC -XX:ParallelGCThreads=8原创 2016-03-17 13:21:05 · 296 阅读 · 0 评论 -
spring cloud 学习(5) - config server
spring cloud 学习(5) - config server 分布式环境下的统一配置框架,已经有不少了,比如百度的disconf,阿里的diamand。今天来看下spring cloud对应的解决方案:如上图,从架构上就可以看出与disconf之类的有很大不同,主要区别在于:配置的存储方式不同disconf是把配置信息保存在mysql、zookeeper中,而spring cloud co...转载 2018-05-03 13:44:41 · 137 阅读 · 0 评论 -
Spring Cloud Config
https://blog.youkuaiyun.com/w_x_z_/article/details/69214763为什么要统一管理配置?1、集中管理 2、不同环境不同配置 3、运行期间动态调整配置 4、自动刷新简介Spring Cloud Config为分布式系统外部化配置提供了服务器端和客户端的支持,它包括Config Server和Config Client两部分。由于Config Server和Co...转载 2018-05-03 17:12:36 · 157 阅读 · 0 评论 -
Spring Cloud Config 配置刷新
https://www.cnblogs.com/hfultrastrong/p/8562320.htmlSpring Cloud Config 配置刷新客户端进行刷新操作。1、添加 actuator包,这样 /refresh url才处于可用状态。1234<dependency> <groupId>org.springframework.boot</groupI...转载 2018-05-03 19:33:15 · 1185 阅读 · 0 评论 -
开源了自己开发的后台管理系统
因为面试的时候一个项目经理问用户中心为什么要重复造轮子呢?我顿时觉得我应该开源我自己的Java后台管理系统项目。我很想问那个项目经理:你发现过国内有开源的、安全的、完全满足需求的用户中心系统吗?你觉得国外的一个authinterceptor用设计模式没有三四个文件互相调用很高大上很好用吗?但我没有那么说,只是离开了。因为,人家也许是为了减少人力成本的开支而省去了此部分。实践中的项目告诉我们,没有固...原创 2018-05-21 19:13:32 · 32172 阅读 · 58 评论 -
Hikari+Spring Config+jpa不兼容,会包hikari错误
实战经验,去掉jpa,spring config+hikari就能从config server读取配置文件原创 2018-05-23 09:59:10 · 901 阅读 · 0 评论 -
【转】简单的WebRTC示例
原文地址: https://blog.youkuaiyun.com/lishuaichen/article/details/78520941网上关于WebRTC的示例大多代码较多,以下是参考那些代码简化的一个WebRTC一对一的示例,在chrome 37下测试通过。其中iceServer可省略,没有iceServer时在同一个局域网下仍可通讯。客户端代码:<html><body...转载 2018-11-29 14:58:49 · 940 阅读 · 0 评论 -
带header的Adapter
package com.upTask.ut.uptask;import android.content.Context;import android.content.Intent;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import andro...原创 2019-08-04 00:48:46 · 292 阅读 · 0 评论 -
Up Task前后端架构
http://www.up-task.com/经过一个人一年的业余时间的奋斗。终于搞出了相对早期的整体系统,包括:www.up-task.com的网站、Up Task的mac桌面版、Up Task的windows版、Up Task的iOS应用,以及基于hybird方式的Android应用,以及一个基于Angular的后台管理系统。唯一缺少的就是还在继续开发中的Up Task的Android应用...原创 2019-08-02 11:53:26 · 222 阅读 · 0 评论 -
经典web系统学习,只有用户-角色,没有权限项
很多web系统都采用了用户-角色-权限项的配置方式,显得功能很强大。但是,往往是这样的系统暴露出的漏洞会很多,比如:同一个url(或者权限项)的删除操作,一旦给某个人赋予了此权限,基本上,这个人就可以完全删除这一类的数据,因为所有这些删除操作的url完全相同,只是参数不同,业务上因为角色的可配置性而无法做任何限制。原创 2016-03-04 15:17:12 · 1274 阅读 · 0 评论