
高性能WEB网站
文章平均质量分 63
shrek11
我好 才是大家好
展开
-
k8s 离线安装(一) 前期规划,docker ,etcd安装
1,下载k8s离线包需要的可以私我2,环境架构ip节点部署程序192.168.145.180k8s-masterdocker etct master192.168.145.181k8s-work1docker etct slave1192.168.145.182k8s-work2docker etct slave23,docker 安装3.1 上传docker-20.10.0.taz包到各个服务器。mkdir /usr/local/docker原创 2021-05-15 10:20:25 · 511 阅读 · 1 评论 -
微服务 java 中的一些优化建议
根据平常的工作和日常学习,总结一些java中用到的比较多的优化方向1,池化技术 池化技术在java中应用非常多,像我们常说的数据库连接池,线程池,内存池,对象池,资源池,应用池等等。这些技术其实就像我们生活中常见的共享技术:共享单车,共享充电宝,首先这些东西就已经生成好了,放在那里,当你需要用的时候扫码使用即可,不需要临时去创建,销毁,回收。这样我们的JVM的内存碎片就会少。 对于我们平常的工作中,如果遇到类似的情况,也可以采取类似的方案。举个例子: 拿我们...原创 2021-01-19 15:31:37 · 444 阅读 · 0 评论 -
修改Linux句柄,提高linux大并发
在liunx的世界里,万物皆文件,比如我们在Linux上跑了一个java服务,输入jps,看到他的进程ID是7980,那在/proc的目录下一定会有一个对于的目录7980,一般是/proc/${pid}这个文件下就有所有关于这个进程的信息。里面有个task目录,里面的每个目录对应你进程里的每一个线程而linux里,一个进程能够操作的文件句柄数是有限制的,一般操作系统默认是1024...原创 2020-09-10 21:57:18 · 2152 阅读 · 0 评论 -
Dubbo源码解读与实战
最近在学习Dubbo的源码(拉钩网的杨四正),先把目录列出来,立个flag,学完之后,再一节一节慢慢补充。第一部分:基础知识 Dubbo 源码环境搭建 Dubbo 的配置总线:抓住 URL,就理解了半个 Dubbo Dubbo SPI 精析,接口实现两极反转(上) Dubbo SPI 精析,接口实现两极反转(下) 海量定时任务,一个时间轮搞定 ZooKeeper 与 Curator,求你别用 ZkClient 了(上) ZooKe...原创 2020-08-18 17:44:16 · 3508 阅读 · 0 评论 -
linux 上将 文本格式 dos和unix相互转换
我们经常将window上编辑的shell脚本上传到liunx上执行,发现会报一些错。[root@node5 ods-app-ansun-first-init]# sh first-input-ansun-e_mb_member.sh first-input-ansun-e_mb_member.sh: line 2: $'\r': command not foundfirst-input-ansun-e_mb_member.sh: line 6: $'\r': command not found2原创 2020-07-24 11:23:32 · 289 阅读 · 0 评论 -
JAVA ( 二 ) jvm垃圾回收和回收算法
前沿之前讲过jvm的内存,程序计算器,本地方法栈,java虚拟机栈,堆。从下图可以看出,程序计算器,本地方法栈,java虚拟机栈都是线程隔离的,也就是这些区域是随线程而生,也随线程而灭,所以不需要做过多的回收考虑,而对于 Java 堆和方法区,我们只有在程序运行期间才能知道会创建哪些对象,这部分内存的分配和回收都是动态的,垃圾收集器所关注的正是这部分内存。了解之前,我们先看几个常见的面试问题。JAVA中的创建出来的对象进入到JVM的哪个区域?堆大致又可以分为那些区域,分别大概原创 2020-07-10 15:09:57 · 282 阅读 · 0 评论 -
springboot 原理 (一) 启动
springboot 近年来很火,因为他的一些特性。springboot 特性官方原话: Create stand-alone Spring applications (能创建独立运行的应用) Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)(内嵌tomcat,jetty,underow容器) Provide opinionated 'starter' dependencies t.原创 2020-07-02 14:29:06 · 386 阅读 · 0 评论 -
mysql 的一些 优化经验 记录
将一个大连接查询(JOIN)分解成对每一个表进行一次单表查询,然后将结果在应用程序中进行关联,这样做的好处有:让缓存更高效。对于连接查询,如果其中一个表发生变化,那么整个查询缓存就无法使用。而分解后的多个查询,即使其中一个表发生变化,对其它表的查询缓存依然可以使用。 分解成多个单表查询,这些单表查询的缓存结果更可能被其它查询使用到,从而减少冗余记录的查询。 减少锁竞争; 在应用层进行连接...原创 2020-06-29 12:19:48 · 257 阅读 · 0 评论 -
分布式和微服务的区别
分布式和微服务有什么区别: 分布式是整个系统的一个顶层设计概念,我们常说分布式设计,分布式系统等, 从概念理解,分布式服务架构强调的是服务化以及服务的分散化, 微服务则更强调服务的专业化和精细分工; 从实践的角度来看,微服务架构通常是分布式服务架构, 反之则未必成立。所以,选择微服务通常意味着需要解决分布式架构的各种难题。 分布式里包含很多东西...原创 2020-01-15 13:27:34 · 428 阅读 · 0 评论 -
springboot 秒杀系统(三)百万级高并发服务间同步通讯优化
分布式系统的思想就是:如果一个系统的压力过大,可以把一个服务拆分成多个服务,这个叫垂直拆分。也可以考虑做镜像集群,负载平衡,这个叫水平拆分。这个系统我们可以考虑垂直拆分,将订单相关的功能拆分出来。我们将订单的逻辑拿出来,放到order-service中,通过backend来调用order-service来创建订单。服务:backend 接受客户端请求,判断useri...原创 2019-12-16 16:38:28 · 3776 阅读 · 4 评论 -
springboot 秒杀系统(二)redis
上一步我们做的秒杀虽然在操作上没问题,但性能上能有很大的提升空间。我们可以先把秒杀数据加载到内存中,考虑到以后服务集群化,所以加载的数据不存放在JVM中,而存在放redis首先,我们都知道,redis在数据存取方面远远大于mysql所以我们第一步优化是:可以将秒杀数据加载至REDIS中,然后我们在查询数据的时候,优先从redis里查找。注意:这里redis和MySQL最...原创 2019-12-13 16:55:34 · 1007 阅读 · 0 评论 -
springboot 秒杀系统(一)
秒杀系统应该是很检验一个人的能力的项目。包括从前端到运营商到nginx到后端等等,很多地方可以优化。前端的页面控制,运营商的CDN加速,nginx的动静分离等下面我来一步一步实现后端的秒杀功能的一步一步实现和优化。后端接口1,获取商品详情,2,秒杀接口获取商品:参数 商品ID 通过商品ID返回商品详情。秒杀接口:参数 商品ID 后端接收商品I...原创 2019-12-13 14:38:42 · 578 阅读 · 0 评论 -
redis 的 应用场景
redis的特性:访问速度快,单线程,超时删除,易扩展等所以redis在现在的应用中应用越来越广泛1,缓存一些热点数据,比如查询多的字典,商城里的商品,工作流的处理人员等,同时可以设置一些失效时间,这个会大大提升系统的性能,减少数据库的访问压力在大部分的项目中应该都有用到(我们公司很少用)。2,缓存一些时效性的东西,比如登录时用户的token,发送的短信验证码等这类,基本上...原创 2019-12-04 09:30:07 · 409 阅读 · 0 评论 -
springcloud 学习六 增加vue-element-admin 作为前端 springcloud 后端
后端的认证服务器,UPMS(用户权限服务)已完成。前端选择vue-admin-template 进行改造,代码提交更新至GIT库: shrek 后端: https://github.com/wushu0725/shrekshrek-ui 前端 : https://github.com/wushu0725/shrek-ui 线上DEMO : http://www.shrek1...原创 2019-01-11 15:44:57 · 1439 阅读 · 1 评论 -
springcloud 学习七 项目打包 报 没有主清单属性
项目通过MVN打包,发现打包的文件很小,大概几十KB,估计打包有问题,执行JAVA -JAR 的时候发现果然报错,报 没有主清单属性,网上找了一堆,都说加<build> <plugins> <plugin> <groupId>org.springframework.boot</...原创 2019-01-22 14:54:39 · 1276 阅读 · 2 评论 -
springboot+vue 架构 (一)
springboot+vue 一般是采用前后端分离模式,不像传统模式,通过页面表单FORM BODY上传参数,前后端通讯一般都是采取标准的JSON格式来交互。现在RAP定义JSON格式,如下图:定义这个格式 就是前端调用地址为scCharterBustop/doAddbody JSON 参数为{ "stopName": "test", "stopAddress...原创 2019-04-04 11:34:30 · 7135 阅读 · 0 评论 -
springboot+vue 架构 (二)
很多后端项目互相调用都是传实体对象,比如增加,修改等 insert(BusSotp busStop)等。最近在GITHUB上看见也有很多人现在不传实体对象了像我上篇,VUE传到后端的是JSON格式,一般的做法是通过SPRINGBOOT的把JSON转成实体对象。那为什么不直接用JSON对象了controller层service层dao层myb...原创 2019-04-04 11:47:42 · 3080 阅读 · 0 评论 -
springboot+vue 架构 (三) springboot 多数据源配置
springboot里配置多数据源写2个数据源配置类,分别指到不同的DAO操作数据库文件mysql的@Configuration@MapperScan(basePackages = {"com.heeexy.example.dao.mysql"},sqlSessionFactoryRef = "mysqlsqlSessionFactory")public class MyBati...原创 2019-04-04 17:29:55 · 419 阅读 · 0 评论 -
多线程编程(1)Semaphore 多资源的并发访问
需求,3个打印机,多个打印任务,要求,如果有打印任务,打印机打印,3个打印机都在调用的时候其他打印任务等待,打印机任务结束,调用其他排队的打印任务。打印线程类public class Job implements Runnable { /** * 打印队列对象 */ private PrintQueue printQueue; /**...原创 2019-05-29 16:26:00 · 180 阅读 · 0 评论 -
多线程编程(2)等待多个并发事件的完成 CountDownLatch
场景:一个会议,10个参与者同时出发,到达会议室时间不一致,会议需要10个人都到达才开始1,视频会类/** * 视频会类 * 使用倒计时闩来控制所有参与者都到达后才发生事件 */public class VideoConference implements Runnable { /** * 倒计时闩对象 */ private fina...原创 2019-05-29 16:44:11 · 218 阅读 · 0 评论 -
mysql 调优 (慢查询,执行计划和索引)
在程序中难免会遇到查询很慢,有时你知道你哪个SQL,有时 你可能调用其他的api不知道SQL,那么你可以用mysql 的慢查询再结合EXPLAIN 的执行计划,看看SQL有没有走索引再优化。1,MYSQL 慢查询默认是不支持,可以在mysql 客户端 show variables like '%slow%'; 查看2,修改mysql的启动配置文件my.cnf ...原创 2019-07-15 17:07:17 · 486 阅读 · 0 评论 -
总结 项目中的技术方案选型和为什么
1,为什么要前后端分离。 1.1 前后端分离可以让开发人员更专注于自己的专业,开发效率更高 1.2 前端和后端分开部署在各自的服务器,性能更好2, 前端为什么用vue。 2.1 国人产的,支持国货 2.2 响应式编程,前端给客户体验更好 2.3 社区活跃度非常高,众多大神在后面支持你, ...原创 2019-09-21 18:46:21 · 1447 阅读 · 0 评论 -
MAVEN 引入外部包,并打包时引入外部JAR
最近做一个钉钉项目,引用官方的jar包,taobao-sdk-java-auto_1479188381469-20190926.jar需要项目引入外部包,而不是直接依赖引入maven库1,在项目下建立个LIB目录,把下载的包放进入,如下: 2,POM.XML文件引入本地包;<dependency> <groupId>com.dingtalk...原创 2019-10-11 20:05:39 · 2685 阅读 · 1 评论 -
一些平常可注意的性能优化
1:循环体的优化比如: for(int i=0;i原创 2012-08-01 10:19:03 · 145 阅读 · 0 评论