Java
文章平均质量分 79
CleverApe
Love technology, love life!
I am familiar with Java, Linux, Spring Cloud, Spring Boot, RPC, Thrift, Redis, RocketMQ, Sentinel, Elasticsearch, Docker, MyBatis, MySQL, JS, H5.
展开
-
Spring mvc项目改造为Spring boot 问题
1. 打包方式jar warjar的方式比较简单,是springboot 默认的。如果打包war, 部署到外部的tomcat, 需要做以下调整:启动类@SpringBootApplicationpublic class WebApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplication原创 2020-11-09 15:25:56 · 1126 阅读 · 3 评论 -
服务架构的核心点归纳
1. 概述架构分两种,一种是技术架构,也就是我们常说的基础架构;一种是业务架构。技术架构是与业务逻辑无关的,技术架构的前期是设计的,业务架构是演进的;当然随着业务的多样化和扩大,业务架构也会反向推动技术架构的提升和改进。无论是什么架构,最终都是服务于业务,伴随着业务的发展,都会有演进,只不过技术架构要求初始就要设计的合理、可扩展,否则后期根本无法演进或者很难演进,毕竟大型系统的重构,都是一本血泪史!!!有过大型系统重构经历的同学都知道,简直要骂人~~~架构的改变,往往是因为业务规模的扩张。原创 2020-07-21 17:05:55 · 641 阅读 · 0 评论 -
Spring Cloud集成Nacos生产环境使用
Nacos 是阿里开源的 RCP 服务注册发现、配置中心等功能的一个框架。使用Nacos可以作为spring cloud 服务注册中心和配置中心,如果在生成环境使用,需要搭建集群,实现高可用,并且通过域名实现负载均衡。集群架构图官方参考文档:集群部署Nginx配置upstream nacos { server 127.0.0.1:8848; server 127.0.0.1:8849; server 127.0.0.1:8850;}server { lis..原创 2020-06-03 11:08:39 · 644 阅读 · 0 评论 -
Codis高可用客户端连接及使用封装
Codis 是 redis高可用集群的一种实现方式,是豌豆荚开源的。相对其他方式,更容易实现水平扩展、扩容、分片等操作。项目连接codis,常用的方式是使用 Jedis.一、配置文件#codiscodis.zkAddr=192.168.1.10:2181,192.168.1.11:2181,192.168.1.12:2181codis.zk.proxy.dir=/jodis/ap...原创 2020-03-21 17:15:21 · 782 阅读 · 5 评论 -
RocketMQ高并发调优
前言 阿里消息团队一直致力于RocketMQ的性能优化,双十一前进行了低延时(毛刺)优化,保障了双十一万亿消息的流转如丝般顺滑,在2016年双十一中,MetaQ以接近万亿的消息总量支撑着全集团数千个应用,在系统解耦、削峰填谷、数据库同步、位点回滚消费等多种业务场景中,MetaQ都有精彩、稳定的表现。高可用低延迟,高并发抗堆积,2016双11的MetaQ真正做到了如丝般顺滑。...转载 2020-03-09 16:09:08 · 2302 阅读 · 0 评论 -
性能压测与调优
性能压测是当服务上线前,或者之后重要需求发布流程中,需要做的必要测试;以模拟真实流量的方式,获取当前系统的性能指标、是否存着高并发隐患、瓶颈等信息的手段。性能压测处于什么位置?或者说什么时候去做呢?如何做?如何做好线上环境的性能压测、全链路压测,如何做到压测结果准确无误,不影响外部环境、不污染数据,需要深入思考。一、测试分类按照上线流程:单元测试 集成测试 ...原创 2020-01-15 16:52:25 · 3311 阅读 · 0 评论 -
我的日常阅读社区和网址
分享以下本人日常翻看的社区和网址,也是平时处理问题时的必要参考资料。1.Github:https://github.com/2.stackoverflow:https://stackoverflow.com/ (Java 开发必看)3.InfoQ:https://www.infoq.cn/(中文技术第一站)4.开源中国:https://www.oschina.net/proje...原创 2019-12-11 20:25:10 · 2513 阅读 · 0 评论 -
VisualVM远程连接失败踩坑之JMX最全配置
史上最全JMX远程连接失败问题踩坑和总结,涉及多种环境:本地、局域网测试环境、线上生产环境。这里不介绍VisualVM的基本教程,那些随便搜一下都有,主要介绍一下博主在不同环境使用,自己遇到的坑。想要查看和监控JVM运行情况,VisualVM是一种不错的选择。显示如下:VisualVM远程连接JVM,最方便的方法是通过jmx,即在jvm启动参数增加jmx配置。网上...原创 2019-11-05 17:20:25 · 5087 阅读 · 7 评论 -
IDEA注视模版
一、类注释模版IDEA 设置:使用时,请将以下@Author 后填写自己的姓名或者 git 帐号设置后,每次新建class 都会自动增加类、接口等注释。以下模版 eclipse 也适用Class: #if(${PACKAGE_NAME} && ${PACKAGE_NAME} !="")package${PACKAGE_NAME};#e...原创 2019-08-09 20:03:49 · 678 阅读 · 1 评论 -
RPC服务熔断、限流、降级等容灾技术
本篇博客主要包括:限流方式、微服务容灾技术选型、Sentinel的使用、Sentinel动态规则持久化Zookeeper 等。Sentinel动态规则持久化到Zookeeper的代码实现我已经共享到本人的github,有需要的可以下载使用。github地址:https://github.com/Force-King/sentinel-dashboard-zk持久化zk的sentinel...原创 2019-07-09 11:38:46 · 5215 阅读 · 0 评论 -
RPC-Thrift 协议
简介 Thrift是Facebook于2007年开发的跨语言的rpc服框架,提供多语言的编译功能,并提供多种服务器工作模式;用户通过Thrift的IDL(接口定义语言)来描述接口函数及数据类型,然后通过Thrift的编译环境生成各种语言类型的接口文件,用户可以根据自己的需要采用不同的语言开发客户端代码和服务器端代码。一、序列化协议 Thrift可以让你选择客...原创 2019-07-03 15:02:45 · 518 阅读 · 0 评论 -
Redis 迁移 Codis 集群方案
Redis集群主要有五种方案:官方cluster方案、twemproxy代理方案、哨兵模式、Codis、客户端分片。其中以豌豆荚的Codis使用最多,本文主要介绍Codis。一、Codis 安装1. 安装最新版 3.21) java 环境yum -y install java-1.8.02)go环境tar zxvf /root/go1.8.3.linux-a...原创 2019-06-04 16:50:47 · 631 阅读 · 0 评论 -
Netty 基本原理
之前在看rocketmq源码时,发现底层用了Netty,顺便学习了一下,网上不少博客讲的有错误之处,而且大部分一模一样,估计大部分都是复制别人的。为了不被误导,我专门买了本《Netty权威指南》,仔细阅读了一遍,而且微信请教了锋哥(李林锋),遂整理出这篇分享。本人一直秉承原则:宁愿不写、少写,也尽量不写错的知识!以免误人子弟!希望转载的同学,标出原文链接。谢谢!同时非常欢迎指出错误,本人及...原创 2019-01-18 17:54:52 · 3804 阅读 · 1 评论 -
NIO
本文针对不了解NIO的同学,主要对IO模型、NIO的概念以及基本原理做简述,没有深入源码解析。 1. NIO基本概念NIO官方叫法为 New I/O,原因在于它相对之前的I/O类库是新增的。但是,由于之前老的I/O类库是阻塞I/O,New I/O的目标就是让Java支持非阻塞I/O,所以,更多的人喜欢称之为非阻塞I/O(Non-block I/O)。Java NIO 主要由以下三个...原创 2019-01-18 17:00:47 · 273 阅读 · 0 评论 -
RocketMQ底层原理和源码解析
本文的内容主要包括:MQ的对比和选型、RocketMQ原理、RocketMQ源码解析、事务消息。如发现本文中所写有错误或者不准确之处,非常欢迎指出,我会及时调研修正!ps:转载的同学请标出原文链接,尊重别人的劳动成果,谢谢原创 2019-01-18 16:34:13 · 21207 阅读 · 11 评论 -
JVM 调优命令大全
Sun JDK监控和故障处理命令有jps、 jstat、 jmap、 jhat、 jstack 、jinfo。具体请点击链接,跳转到本人的云笔记。链接:http://note.youdao.com/noteshare?id=96eaec791f7831ab70430659fdb14a8d...原创 2019-01-17 20:27:06 · 269 阅读 · 0 评论 -
性能测试Jmeter
一、Jmeter安装(Mac环境)1.java 环境:jdk1.8 及以上。如果想用jdk1.8以下版本,则Jmeter 选3.0以下版本,建议使用高版本,功能全。2.下载地址:http://jmeter.apache.org/download_jmeter.cgihttp://mirror.bit.edu.cn/apache/jmeter/binaries/下载原创 2017-07-28 11:26:20 · 319 阅读 · 0 评论 -
Java中的各种数据类型在内存中存储的方式
1.Java是如何管理内存的java的内存管理就是对象的分配和释放问题。(其中包括两部分)分配:内存的分配是由程序完成的,程序员需要通过关键字new为每个对象申请内存空间(基本类型除外),所有的对象都在堆(Heap)中分配空间。释放:对象的释放是由垃圾回收机制决定和执行的,这样做确实简化了程序员的工作。但同时,它也加重了JVM的工作。因为,GC为了能够正确释放对象,GC必须监控原创 2017-05-27 13:00:51 · 561 阅读 · 0 评论