- 博客(113)
- 资源 (2)
- 收藏
- 关注
转载 架构师必备技能:教你画出一张合格的技术架构图
点击上方“民工哥技术之路”选择“星标”每天10点为你分享不一样的干货读者福利!多达 2048G 各种资源免费赠送当我们想用一张或几张图来描述我们的系统时,是不是经常遇到以下情况: 对着画布无从下手、删了又来? 如何用一张图描述我的系统,并且让产品、运营、开发都能看明白? 画了一半的图还不清楚受众是谁? 画出来的图到底是产品图功能图还是技术图又或是大杂烩? 图上的框框有点少是不是要找点儿框框加进来? 布局怎么画都不满意……...
2020-09-14 18:09:39 876
转载 REDIS缓存穿透,缓存击穿,缓存雪崩原因+解决方案
一、前言在我们日常的开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题,可是一旦涉及大数据量的需求,比如一些商品抢购的情景,或者是主页访问量瞬间较大的时候,单一使用数据库来保存数据的系统会因为面向磁盘,磁盘读/写速度比较慢的问题而存在严重的性能弊端,一瞬间成千上万的请求到来,需要系统在极短的时间内完成成千上万次的读/写操作,这个时候往往不是数据库能够承受的,极其容易造成数据库系统瘫痪,最终导致服务宕机的严重生产问题。为了克服上述的问
2020-09-09 16:53:33 202
转载 elasticsearch安装
https://baijiahao.baidu.com/s?id=1660378168326026215&wfr=spider&for=pc
2020-08-14 14:57:24 208
转载 OAuth 2.0 与 OpenID Connect 协议的完整指南
本文由 Haseeb Anwar 发表在 medium,经原作者授权由 InfoQ 中文站翻译并分享。我们都在网站或者手机应用中见过“谷歌登陆”和“绑定 Facebook“这样的按钮。如果你点击这个按钮,就会有一个窗口弹出并显示“这个应用想要访问你的公共个人主页、通讯录……“,同时它会询问你是否授权。概括而言,这就是 OAuth。对于每个软件工程师、安全专家甚至是黑客,理解这些协议都是非常重要的。前言本文是一篇关于 OAuth 2.0 与 OpenID Connect 协议的完整指南,这两个协议
2020-07-17 16:48:51 2827
转载 自定义聚集函数
对于一些业务,需要连接函数把内容拼接文本文件的时候,借助合适的函数,非常重要,减少很多工作。目前常用的连接函数有wmsys.wm_concat()和LISTAGG()函数,当然还有看拼接内容的长度来选。oracle数据库中,还有一个根据版本选择。最新的两个版本中,11G中,自带有两个函数,但在12C中,oracle不再自带wmsys.wm_concat(),如果实际业务中需要到,需要自己创建上。当然,如何创建,会在本文的最后,会提供两个版本的wmsys.wm_concat()和w...
2020-07-12 17:31:14 245
转载 自定义聚集函数接口简介
Oracle提供了很多预定义好的聚集函数,比如Max(), Sum(), AVG(), 但是这些预定义的聚集函数基本上都是适应于标量数据(scalar data), 对于复杂的数据类型,比如说用户自定义的Object type, Clob等, 是不支持的。但是,幸运的是, 用户可以通过实现Oracle的Extensibility Framework中的ODCIAggregate interface来创建自定义聚集函数,而且自定义的聚集函数跟内建的聚集函数用法上没有差别。通过实现 ODCIAggreg
2020-07-12 17:29:58 195
转载 十二要素应用宣言
简介:如今,软件通常会作为一种服务来交付,它们被称为网络应用程序,或“软件即服务”(SaaS)。“十二要素应用程序”(12-Factor App)为构建如下的SaaS应用提供了方法论:使用标准化流程自动配置,从而使新的开发者花费最少的学习成本加入这个项目; 和操作系统之间尽可能的划清界限,在各个系统中提供最大的可移植性; 适合部署在现代的云计算平台,从而在服务器和系统管理方面节省资源; 将开发环境和生产环境的差异降至最低,并使用持续交付实施敏捷开发; 可以在工具、架构和开发流程不发生明显变化
2020-06-17 09:07:22 168
转载 springboot项目集成大众点评cat
什么是CATCat是基于Java开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务• CAT作为服务端项目基础组件,提供了java, c/c++, node, python, go等多语言客户端,已经在美团点评的基础架构中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。• CAT很大的优势是它是一个实时系统,CAT大部分系统是分钟级统计,但是从数据生成到服务端处理结束是秒级...
2020-06-16 09:15:03 493
转载 pinpoint监控springboot应用性能
一,前提条件maven 3.2.x+ git java 6+ (推荐jdk8)二,准备工具Hbase 下载地址:http://apache.mirror.cdnetworks.com/hbase/ pinpoint下载地址:https://github.com/naver/pinpoint.git三,部署1,部署Hbase,由于Pinpoint以Hbase作为数据的存储,因此首先安装Hbase,如下:下载Hbase并解压 编辑/work/install/hbase-1....
2020-06-15 09:15:35 678
原创 pinpoint 安装配置
https://blog.csdn.net/qq_21816375/article/details/80455681https://www.cnblogs.com/yyhh/p/6106472.html
2020-06-12 18:59:55 154
转载 HBase基本概念与基本使用
1. HBase简介1.1 什么是HBase HBASE是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群。 HBASE的目标是存储并处理大型的数据,更具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的行和列所组成的大型数据。 HBASE是Google Bigtable的开源实现,但是也有很多不同之处。比如:Google Bigtable使用GFS作为其文件存储系统,HBASE利用Hadoop HDFS
2020-06-12 16:32:09 399
转载 Pinpoint分布式系统性能监控工具
Pinpoint分布式性能监控工具(docker安装)在做性能压测的时候,你是不是有只能看到测试报告?在做性能压测的时候,你是不是想知道每一个方法执行了多长时间?Pinpoint几乎可以帮助你查看你想看到的每一个细节。Pinpoint是什么?Pinpoint是一款全链路分析工具,提供了无侵入式的调用链监控、方法执行详情查看、应用状态信息监控等功能。基于GoogleDapper论文进行的实现,与另一款开源的全链路分析工具Zipkin类似,但相比Zipkin提供了无侵入式、代码维度的监控等.
2020-06-11 15:30:04 438
转载 SpringBoot整合Swagger2,再也不用维护接口文档了!
前后端分离后,维护接口文档基本上是必不可少的工作。一个理想的状态是设计好后,接口文档发给前端和后端,大伙按照既定的规则各自开发,开发好了对接上了就可以上线了。当然这是一种非常理想的状态,实际开发中却很少遇到这样的情况,接口总是在不断的变化之中,有变化就要去维护,做过的小伙伴都知道这件事有多么头大!还好,有一些工具可以减轻我们的工作量,Swagger2就是其中之一,至于其他类似功能但是却收费的软件,这里就不做过多介绍了。本文主要和大伙来聊下在Spring Boot中如何整合Swagger2。工程创建当然
2020-06-11 14:12:57 231
转载 Spring Boot Starter 理解
Spring Boot Starter是在SpringBoot组件中被提出来的一种概念,stackoverflow上面已经有人概括了这个starter是什么东西,想看完整的回答戳这里Starter POMs are a set of convenient dependency descriptors that you can include in your application. You get a one-stop-shop for all the Spring and related techn
2020-06-11 10:38:39 191
转载 Linux(CentOS7)使用 RPM 安装 mysql 8.0.11
阅读目录一、安装准备工作 1、查看 Linux 相关信息(Linux 命令行操作) 2、下载 mysql 二、开始安装 1、传输文件到 /opt 目录下 2、RPM 安装 mysql 3、启动 mysql 服务 4、连接 mysql 5、修改初始密码 回到顶部一、安装准备工作1、查看 Linux 相关信息(Linux 命令行操作)(1)查看 Linux 版本,用于下载对应的 mysql。【查看 Linux 信息:】 uname -a.
2020-06-09 14:51:38 242
转载 vm下NAT模式连接网络的设置
NAT模式的具体配置NAT方式:虚拟机可以上外网,可以访问宿主计算机所在网络的其他计算机(反之不行)。1.1.1.查看虚拟机的网络参数1)打开虚拟机,选择菜单“编辑”》“编辑虚拟网络”,如下图:2)选中列表中的“VMnet8NAT”,点击“NAT设置”按钮,如下图:3)记录虚拟网络的子网IP:192.168.72.0、网关IP:192.168.72.21.1.2.设置物理主机的虚拟网络参数1)打开本机的网络和共...
2020-06-06 10:11:02 313
转载 Spark入门——什么是Hadoop,为什么是Spark?
#Spark入门#这个系列课程,是综合于我从2017年3月分到今年7月份为止学习并使用Spark的使用心得感悟,暂定于每周更新,以后可能会上传讲课视频和PPT,目前先在博客园把稿子打好。注意:这只是一个草稿,里面关于知识的误解还请各大网友监督,我们互相进步。总而言之,网络上的知识学会断舍离,学会带着辩证的眼光去学习就能进步。 谈到Spark,实际上从16年本科实习的时候就已经开始接触,那个时候是从Pig入门大数据Hadoop的,有兴趣的朋友可以看Hadoop家族之Pig入门;当时大家基本都在使用Pig
2020-06-03 10:30:56 333 1
转载 分布式数据库中间件、产品——sharding-jdbc、mycat、drds
一般对于业务记录类随时间会不断增加的数据,当数据量增加到一定量(一般认为整型值为主的表达到千万级,字符串为主的表达到五百万)的时候,性能将遇到瓶颈,同时调整表结构也会变得非常困难。为了避免生产遇到这样的问题,在做系统设计时需要预估可能产生的数据量:预估记录主体个数*预估记录主体产生的记录数(e.g.用户订单表预估数据量=预估用户数*单用户产生订单数),预估达到一定量时,就不得不考虑分库分表了,目前国内比较成熟的开源数据库中间件有sharding-jdbc、mycat;而drds是阿里云最近推出的商业产...
2020-06-01 20:15:00 218
转载 SPRING 之7种重要设计模式
Spring中涉及的设计模式总结1.简单工厂(非23种设计模式中的一种)实现方式:BeanFactory。Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。实质:由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。实现原理:bean容器的启动阶段:读取bean的xml配置文件,将bean元素分别转换成一个BeanDefinition对象。 然后通过B
2020-06-01 19:54:32 147
转载 关于Spring 中常用的那些设计模式
Spring 中常用的设计模式1、我们通常说的 23 中经典设计模式可以通过下表一目了然:创建型工厂方法模式(FactoryMethod)、抽象工厂模式(AbstractFactory)、 建造者模式(Builder)、原型模式(Prototype)、单例模式(Singleton)结构型适配器模式(Adapter)、桥接模式(Bridge)、组合模式(Composite)、 装饰器模式(Decorator)、门面模式(Facade)、享元模式(Flyweight)、 代理模式(Proxy)...
2020-06-01 19:52:26 183
原创 CAT实时监控预警系统
项目地址:https://github.com/dianping/catCAT 简介CAT 是基于 Java 开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务。 CAT 作为服务端项目基础组件,提供了 Java, C/C++, Node.js, Python, Go 等多语言客户端,已经在美团点评的基础架构中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。 CAT 很大的优势是
2020-06-01 19:42:42 2197
转载 链路追踪工具Zipkin整合
前言Zipkin 是一个开放源代码分布式的跟踪系统,每个服务向zipkin报告计时数据,zipkin会根据调用关系通过Zipkin UI生成依赖关系图。Zipkin提供了可插拔数据存储方式:In-Memory、MySql、Cassandra以及Elasticsearch。为了方便在开发环境我直接采用了In-Memory方式进行存储,生产数据量大的情况则推荐使用Elasticsearch。基本术语Span:基本工作单元,例如,在一个新建的span中发送一个RPC等同于发送一个回应请求给RPC,
2020-06-01 19:39:30 242
转载 ELK-概念
点击上方"Java软件编程之家",还没关注的赶紧关注了,关注后回复"资源"还可以免费获取大量电子书概念ELK是Elasticsearch、Logstash、Kibana三大开源框架首字母大写简称。市面上也被成为Elastic Stack。其中Elasticsearch是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架。像类似百度、谷歌这种大数据全文搜索引擎的场景都可以使用Elasticsearch作为底层支持框架,可见Elasticsearch提供的搜索能力.
2020-06-01 19:36:11 194
转载 Pinpoint分布式系统性能监控工具
Pinpoint分布式性能监控工具(docker安装)在做性能压测的时候,你是不是有只能看到测试报告?在做性能压测的时候,你是不是想知道每一个方法执行了多长时间?Pinpoint几乎可以帮助你查看你想看到的每一个细节。Pinpoint是什么?Pinpoint是一款全链路分析工具,提供了无侵入式的调用链监控、方法执行详情查看、应用状态信息监控等功能。基于GoogleDapper论文进行的实现,与另一款开源的全链路分析工具Zipkin类似,但相比Zipkin提供了无侵入式、代码维度的监控等.
2020-06-01 19:28:49 231
转载 spring boot 工作原理
一,springspring iocioc(inversion of control,控制反转)有两种实现方式,一种是di(dependency injection),另一种是dl(dependency lookup,依赖查找),前者是当前软件实体被动接受其依赖的其他组件被ioc容器注入,而后者则是当前软件实体主动去某个服务注册地查找其依赖的那么服务。任何一个使用spring框架构建的独立的Java应用,通常会存在一些类似于context.getBean(...)的代码,实际上,这行代码做的就是..
2020-05-31 15:50:19 106
转载 springboot核心原理
1.基于你对springboot的理解描述一下什么是springboot它是一个服务于spring框架的框架,能够简化配置文件,快速构建web应用,内置tomcat,无需打包部署,直接运行。2.约定优于配置指的是什么?maven 的目录结构a) 默认有 resources 文件夹存放配置文件b) 默认打包方式为 jarspring-boot-starter-web 中默认包含 spring mvc 相关依赖以及内置的 tomcat 容器,使得构建一个 web 应用更加简单默认提供 ap
2020-05-31 11:46:19 115
转载 SpringCloud五大核心组件
Spring Cloud由众多子项目组成,如Spring Cloud Config、Spring Cloud Netflix、Spring Cloud Consul 等,提供了搭建分布式系统及微服务常用的工具,如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性token、全局锁、选主、分布式会话和集群状态等,满足了构建微服务所需的所有解决方案。服务发现——Netflix Eureka客服端负载均衡——Netflix Ribbon断路器——Netflix Hystrix服务网关—
2020-05-29 10:16:51 276
转载 Dubbo学习笔记7:Dubbo的集群容错与负载均衡策略
Dubbo的集群容错策略正常情况下,当我们进行系统设计时候,不仅要考虑正常逻辑下代码该如何走,还要考虑异常情况下代码逻辑应该怎么走。当服务消费方调用服务提供方的服务出现错误时候,Dubbo提供了多种容错方案,缺省模式为failover,也就是失败重试。Dubbo提供的集群容错模式下面看下Dubbo提供的集群容错模式:Failover Cluster:失败重试当服务消费方调用服务提供者失败后自动切换到其他服务提供者服务器进行重试。这通常用于读操作或者具有幂等的写操作,需要注意的是重试会带来
2020-05-29 10:14:37 169
转载 Java多线程超详解
引言随着计算机的配置越来越高,我们需要将进程进一步优化,细分为线程,充分提高图形化界面的多线程的开发。这就要求对线程的掌握很彻底。那么话不多说,今天本帅将记录自己线程的学习。程序,进程,线程的基本概念+并行与并发:程序:是为完成特定任务,用某种语言编写的一组指令的集合,即指一段静态的代码,静态对象。进程:是程序的一次执行过程,或是正在运行的一个程序,是一个动态的过程,有它自身的产生,存在和消亡的过程。-------生命周期线程:进程可进一步细化为线程,是一个程序内部的一条执行路径即:线程《
2020-05-29 10:11:26 187
转载 Dubbo服务治理之灰度发布方案(版本发布控制影响范围)
1、方案背景 背景:基于Dubbo服务的治理,是否可以支持业务级别的灰度发布、是否基于业务参数的路由转发。例如以GIS为例,当发布一个新版本时,是否可以以按照解析地址或合作伙伴来区分,版本发布之初,只希望地址为:广东省的解析请求发送到新版本,而其他的地址请求还是使用旧版;或者根据合作伙伴例如UCP(优享寄)的请求转发到新版本服务器,其他合作伙伴还是转发到旧版,达成业务级别的灰度发布,控制新版本的影响范围。例如OMS系统,可以根据合作伙伴,将重量级客户的请求转发到单独的服务器集群,确保其高可用。 ..
2020-05-29 10:10:12 599
转载 dubbo服务降级(五)
什么是服务降级?当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的不处理或换种简单的方式处理,从而释放服务器资源以保证核心交易正常运作或高效运作。可以通过服务降级功能临时屏蔽某个出错的非关键服务,并定义降级后的返回策略。说的直白点就是:比如在公司,咱们领导最喜欢干的事情就是,牺牲基层员工的利益,保住核心领导层的利益8.3.1 第一种方式实现服务降级image.pngmock=force:return+null 表示消费方对该服务的方法调用都直接返回 nul
2020-05-29 10:09:09 260
转载 高并发下接口幂等性解决方案
一、背景我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。例如1. 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果;2. 我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱;3. 发送消息,也应该只发一次,同样的短信发给用户,用户会哭的;4. 创建业务订单,一次业务请求只能创建一个,创建多个就会出大问题等等很多重要的情况都需要幂等的特性来支持。二、幂等性概念幂等(idempote...
2020-05-29 10:00:39 222
原创 分布式事务
本文转载自:https://draveness.me/distributed-transaction-principle事务是数据库系统中非常有趣也非常重要的概念,它是数据库管理系统执行过程中的一个逻辑单元,它能够保证一个事务中的所有操作要么全部执行,要么全不执行;在 SOA 与微服务架构大行其道的今天,在分布式的多个服务中保证业务的一致性就需要我们实现分布式事务。640?wx_fmt=jpeg在这篇文章中,我们将介绍 事务的实现原理、分布式事务的理论基础以及实现原理。1、事务在文章的开头,我们已
2020-05-28 21:19:50 120
转载 基于Docker+Jenkins实现自动化部署
使用码云搭建Git代码存储仓库https://gitee.com/login使用码云创建私有私有git仓库 将本地springboot项目上传到git仓库中基于Docker安装Jenkins环境1.使用docker 安装jenkins docker run -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean 2.访问jenkins地址 8080...
2020-05-15 16:30:27 945
转载 使用Docker安装Jenkins
要想查看镜像的版本好TAG,需要在docker hub查看地址如下:https://hub.docker.com/r/library/JenkinsJenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。环境准备腾讯云硬件配置:2核4G 1M带宽。50G硬盘。系统配置:CentOS 7.2Docker安装请移步查看:CentOS 7 安装 Docker安装Jenki.
2020-05-15 16:29:11 333
转载 docker 安装jenkins
基于docker 进行安装 软件,首先需要有docker环境。1.docker 下载 jenkins 镜像 指定版本 ,因为低版本的后面安装 软件会失败(亲测)。docker pull jenkins/jenkins:2.832.查看jenkins 是否下载成功docker images3. 运行jenkinsmkdir /home/jenkins 创建文件夹ls -nd jenkins/ 查看文件权限chown -R...
2020-05-15 16:25:49 120
转载 基于Docker+Jenkins实现自动化部署
用码云搭建Git代码存储仓库https://gitee.com/login使用码云创建私有私有git仓库 将本地springboot项目上传到git仓库中基于Docker安装Jenkins环境1.使用docker 安装jenkins docker run -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean 2.访问jenkins地址 8080...
2020-05-15 15:53:55 274 1
转载 使用Dockerfile安装JDK8
一、简介本文主要介绍docker如何安装jdk8并配置环境变量;本文采用dockerfile方式安装二、安装步骤2.1 下载jdk并上传服务器先去oracle官网【https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html】下载jdk安装包;上传到服务器,此处我是上传到/usr/local/env/jdk8[root@yuanshushu local]# mkdir /usr/loca
2020-05-15 14:01:23 1167
转载 Dubbo安装控制台和监控中心
先安装Zookeeper教程:https://blog.csdn.net/ws_kfxd/article/details/87901482进dubbo,下载源码dubbo地址:http://dubbo.apache.org/en-us/源码下载地址:https://github.com/apache/incubator-dubbo-ops一、安装控制台1.打开并编辑application.properties文件集群地址配置:dubbo.registry.address=zook
2020-05-15 09:03:35 200
转载 CentOS7安装Nginx并配置自动启动的方法步骤
1、官网下载安装包http://nginx.org/en/download.html,选择适合Linux的版本,这里选择最新的版本,下载到本地后上传到服务器或者centos下直接wget命令下载。切换到/usr/local目录,下载软件包 1 2 # cd /usr/local # wget http://nginx.org/download/nginx-1.11.5.tar.gz 2、安装nginx先执行以下命令,安装nginx依
2020-05-13 10:49:13 234
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人