- 博客(204)
- 资源 (1)
- 收藏
- 关注
原创 关于项目总结
关于常量在代码中出现数字或者具体的字符串,绝对是一件不好的事情。但是如果业务复杂,常量很多,那么怎么组织常量又是一个问题。其中有两个问题要考虑,第一个是命名。如果模块很多,那么为了区分模块中某个业务下的某个常量,常量名称会边的巨长,显得很臃肿。第二个是常量的聚合。如果常量很多,可能会有很多常量是按需才写的,导致表达同一意义的常量分布在很多地方,如果之后阅读代码,就完全搞不清楚某处的数据(比如状态)...
2018-06-27 16:17:05
320
原创 关于项目优化
项目优化毫无止境,但是常用的一些,可以有很多出众的效果。首先是功能服务模块化,独立部署。微服务带来的便利很多很多。具体的优化可以分块说明。借助网上的一些优秀文章,以及项目经历过的坑,简单总结下。分离技术1. 模块分离监控服务,日志服务,消息服务等。业务分开开发和部署。2. 数据库读写分离对于大部分业务,都是读多写少,可以充分利用分库的资源。3. 数据库按照业务细分按照主要业务拆分不同的数据库,结合...
2018-06-27 16:16:03
376
转载 kafka API详解
1. 生产者apiProducer是Kafka三大组件中的一个,用于发送消息到kafka集群中Producer提供了丰富的配置(见后面的配置项)用于控制它的行为在编码之前先使用命令创建topic./kafka-topics.sh --create --zookeeper hadoop01,hadoop02,hadoop03:2181 --partitions 2 --replication-fac...
2018-06-25 14:03:27
29847
5
原创 springBoot(4) aop
1. 切面与切点 定义切面@Aspect@Configurationpublic class AopConfiguration {} 切面内定义切点@Pointcut("execution(* com.test.service.*.*(..))")public void executeService(){}切面内定义通知@Pointcut("within(com.cjm.model.Person)...
2018-06-11 16:30:42
228
原创 spring-cloud(7)【Sidecar整合其他服务】
可以使用sidecar来整合其他web项目到springCloud中。1. 为web项目添加健康检查接口提供http接口,返回json:{"status" : "up"},status用于描述微服务的状态,常见的取值有UP,DOWN,OUT_OF_SERVICE,UNKNOWN等2. 编写sidecar微服务创建项目添加eureka,sidecar,zuul的依赖启动类上加上@EnableSide...
2018-06-06 16:22:54
2719
1
原创 springBoot(5) springBoot的/error的自定义处理
在springboot项目里,如果没有统一异常处理,或者如果没有处理全面,又或者在springCloud zuul中调用微服务接口出错时,spring会自动把错误转发到默认给/error处理。 正常情况下,可以配置错误页面来给用户提示错误,如404,500等。但是在前后分离项目中,可能更期望给前台返回一个特定格式的json来展示错误信息。所以可以用代码来自定义异常错误信息。 /...
2018-06-05 17:51:44
15641
1
原创 spring-cloud(5)【zuul】
1. 概述 API网关是 一 个更为智能的应用服务器, 它的定义类似于面向对象设计模式中的Facade模式, 它的存在就像是整个微服务架构系统的门面 一 样,所有的外部客户端访问都需要经过它来进行调度和过滤。它除了要实现请求路由、 负载均衡、 校验过滤等功能之外, 还需要更多能力, 比如与服务治理框架的结合、 请求转发时的熔断机制、 服务的聚合等 一 系列高级功能。 SpringClo...
2018-06-04 15:57:40
210
原创 spring-cloud(6)【config】
1.简述springcloud中的配置中心为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持, 它分为服务端与客户端两个部分。 其中服务端也称为分布式配置中心, 它是 一 个独立的微服务应用, 用来连接配置仓库并为客户端提供获取配置信息、 加密/解密信息等访问接口;而客户端则是微服务架构中的各个微服务应用或基础设施, 它们通过指定的配置中心来管理应用资源与业务相关的配置内容,并在启动的时...
2018-05-25 15:33:50
237
转载 分布式架构的基本思想汇总
在互联网大行其道的今天,各种分布式系统已经司空见惯。搜索引擎、电商网站、微博、微信、O2O平台。。凡是涉及到大规模用户、高并发访问的,无一不是分布式。关于分布式系统,并没有一个标准答案,说某某架构一定是最好的。不同的业务形态所面对的挑战不一样,使用的架构设计也不一样,通常都需要具体业务具体分析。但不管那种业务,不管何种分布式系统,有一些基本的思想还是相通的。本文将对这些基本思想进行一个梳理汇总。分...
2018-05-25 11:57:59
2455
原创 关于zuul,feign和hystrix的整合
1. feign和hystrixfeign整合出错回退的功能,FeignClient的注解中,加入fallbackFactory = UserServiceFallback.class的设置,其中UserServiceFallBack需要实现FallbackFactory<UserServFeign>的接口。在UserServiceFallBack中会接受一个Throwable的对象,...
2018-05-24 11:48:23
5889
3
转载 kafka消费者
kafka客户端从kafka集群消费消息(记录)。它会透明地处理kafka集群中服务器的故障。它获取集群内数据的分区,也和服务器进行交互,允许消费者组进行负载平衡消费。(见下文)。 消费者维持TCP连接到必要的broker来获取消息。故障导致消费者关闭使用,会泄露这些连接,消费者不是线程安全的,可以查看更多关于Multi-threaded(多线程)处理的细节。偏移量和消费者的位置kafka为每个分...
2018-05-10 17:13:08
387
转载 kafka生产者
kafka客户端发布record(消息)到kafka集群。新的生产者是线程安全的,在线程之间共享单个生产者实例,通常单例比多个实例要快。一个简单的例子,使用producer发送一个有序的key/value(键值对),放到java的main方法里就能直接运行,Properties props = new Properties(); props.put("bootstrap.servers", "l...
2018-05-10 17:13:00
224
转载 阿里架构师”kafka 数据可靠性深度解读(转)
1 概述Kakfa起初是由LinkedIn公司开发的一个分布式的消息系统,后成为Apache的一部分,它使用Scala编写,以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark等都支持与Kafka集成。Kafka凭借着自身的优势,越来越受到互联网企业的青睐,唯品会也采用Kafka作为其内部核心消息引擎之一。Kafka作为一个商...
2018-05-10 17:12:04
461
转载 SpringMvc实战--在一个页面显示Controller中所有的方法信息
0.说明本博客记录的是如何显示SpringMVC框架中所有使用@RequestMapping注解标注的方法.由于项目需要,web框架使用SpringMVC.前端\客户端\后端是分开的不同组的人,所以不可避免的要编写\更新大量的接口说明文档.这大大降低了效率,因此实现了显示SpringMVC中所有接受请求的方法的信息的功能.总体思想:从Spring容器中找到所有加了RequestMapping注解的...
2018-05-08 16:18:32
1979
原创 kafka java安装出现的问题
在云服务器上安装的kafka服务器,在本地java代码访问时,发不出消息,也获取不到数据。发送消息时会抛出异常:Exception in thread "main" Failed to send requests for topics test with correlation ids in [0,12]kafka.common.FailedToSendMessageException: Fai...
2018-03-27 21:54:52
1299
转载 kafka使用
问题导读1.Kafka独特设计在什么地方?2.Kafka如何搭建及创建topic、发送消息、消费消息?3.如何书写Kafka程序?4.数据传输的事务定义有哪三种?5.Kafka判断一个节点是否活着有哪两个条件?6.producer是否直接将数据发送到broker的leader(主节点)?7.Kafa consumer是否可以消费指定分区消息?8.Kafka消息是采用Pull模式,还是Push模式?...
2018-03-27 21:51:06
8509
3
转载 安装mysql
Centos7安装并配置mysql5.6完美教程 Centos7将默认数据库mysql替换成了Mariadb,对于我们这些还想使用mysql的开发人员来说并不是一个好消息。然而,网上关于Linux安装mysql数据库的教程数不胜数,但是,大多教程都是漏洞百出。今天,为了帮助各位需要的人,从而写下Centos7安装配置mysql5.6的教程。好了,话不多说,上教程:在接下来的mysql安装过程中,请...
2018-02-11 14:29:13
213
转载 关于阿里云服务器Linux安装Tomcat后,外网不能访问解决方案
http://blog.csdn.net/qq_28336351/article/details/74665130这里需要提及三个方面的问题第一个方面:Linux上启动防火墙的问题 当下比较流行的Linux镜像是CentOS,所以防火墙也随之变成了firewall,那么怎么操作这个防火墙呢?#停止firewallsystemctl stop firewalld.service #开启fire...
2018-02-11 13:10:15
403
原创 go语言[7] 函数,方法和接口
函数函数的定义与使用 参数,返回值,多个返回值不定长变参 func Add(a int, args ...int) (result int) 不定长参数只能放在最后,使用时,可以当成一个切片传递值类型和引用类型 go语言中的引用类型有:切片、字典(map)、接口、函数类型 以及 通道(chan) 匿名函数与闭包 d
2018-02-02 17:45:13
352
原创 go语言[5]-map
1. map的创建方式make函数 m := make(map[string]int)map字面值的语法 : m := map[string]int{"a":1, "b":2}2. map的操作新增/修改 m["a"] = 2删除 delete函数 delete(m, "a")获取 a := m["a"]如果一个查找失败将返回value类型对应的
2018-01-22 16:58:07
238
原创 go内置函数
append函数用法 append主要用于给某个切片(slice)追加元素如果该切片存储空间(cap)足够,就直接追加,长度(len)变长;如果空间不足,就会重新开辟内存,并将之前的元素和新的元素一同拷贝进去第一个参数为切片,后面是该切片存储元素类型的可变参数第二个参数也可以直接写另一个切片,将它里面所有元素拷贝追加到第一个切片后面。要注意的是,这种用法函数的参数只能接收两个slic
2018-01-19 17:34:28
315
原创 go语言[4]-slice
1. 创建make函数 make(类型,长度,容量) 容量可以省略,省略则和长度一样通过数组生成2. 使用超过容量之后重新分配内存append函数
2018-01-18 14:18:23
227
原创 go语言[2]-控制结构
1. if不加括号变量初始化2. for无限循环只有一个条件完全的三个语句3. switchswitch后面有表达式switch后面没有表达式,那么case后面需要有 fallthrough
2018-01-17 13:45:44
184
原创 go语言[1]-基础
1. go语言结构Go 语言的基础组成有以下几个部分:包声明引入包函数变量语句 & 表达式注释第一行代码 package main 定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。下一行 import "fmt"
2018-01-15 15:54:31
373
原创 requirejs的使用
AMD规范AMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义"。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。AMD也采用require()语句加载模块,但是不同于CommonJS,它要求两个参数:require([module],
2018-01-14 10:39:22
384
转载 requirejs的API文档
RequireJS API中文版2013-5-13PRE: 3update: 2013-05-13这是 RequireJS 2.0 的API,对应的官方文档版本号是2.1.6§ 1用法§ 1.1加载JavaScript文件RequireJS的目标是鼓励代码的模块化,它使用了不同于传统标签
2018-01-13 10:56:08
4536
原创 springBoot(3) springBoot文件上传后端配置
1. 文件上传配置@Configurationpublic class FileUploadConfiguration { @Bean public MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory
2017-12-28 16:19:33
1499
原创 前端图片转base64,转格式,转blob,上传的总结
1. 图片文件转base64$(function() { $("#up").change(function() { var file = this.files[0]; if(undefined == file){ return ; } r = new FileReader(); r.readAsDataURL(file
2017-12-28 16:11:24
21664
转载 jquery.lazyload.js实现图片懒加载
转自:https://www.cnblogs.com/yzg1/p/5051554.html简介lazyload.js用于长页面图片的延迟加载,视口外的图片会在窗口滚动到它的位置时再进行加载,这是与预加载相反的。优点:它可以提高页面加载速度;在某些情况清晰它也可以帮助减少服务器负载。注意:img标签不要再写sec属性了,亲测效果,写了就不会显示了安装bower安装:$ bower install
2017-12-25 11:34:47
625
转载 服务熔断、降级、限流、异步RPC -- HyStrix
转自:http://blog.csdn.net/chunlongyu/article/details/53259014在今天,基于SOA的架构已经大行其道。伴随着架构的SOA化,相关联的服务熔断、降级、限流等思想,也在各种技术讲座中频繁出现。本文将结合Netflix开源的Hystrix框架,对这些思想做一个梳理。背景伴随着业务复杂性的提高,系统的不断拆分,一个面向用户端的A
2017-12-19 16:19:33
340
原创 spring-cloud(4)【Hystrix】
1. 断路器逻辑转换2. Hystrix简介3. 整合Hystrix1. 添加依赖spring-cloud-starter-hystrix2. 启动类添加注解@EnableCircuitBreaker @EnableHystrix
2017-12-15 18:15:30
317
原创 vue学习进度记录
HTML是大小写不敏感的,HTML中的属性@addList会被解析为@addlist,js再用@addList去找,是找不到的。2017-11-27vue的demovue的数据绑定el属性v-model与data选项vue声明周期createdmountedbeforeDestroy插值与表达式最基本的文本插值方法:{{}}
2017-11-27 21:26:21
731
原创 ID生成方案
1. 自增型id1. 优点InnoDB 使用两种索引来组织数据,Clustered Index 和 Second Index Clustered Index 与 主键有千丝万缕的关系,可以简单认为是相等关系,数据存储会按照主键来进行排序。如果在建表的时候不提供主键,InnoDB 会自动生成一个主键,这个主键是字符式的,所以当有新数据进来的时候,原先的排序会被打乱,中间的开销会
2017-11-24 14:37:32
3595
原创 js实现webSocket客户端
1. websocket由于http请求只能由客户端发起,所有当服务器资源有变化时,客户端只能通过轮询的方式。非常浪费资源。websocket的特点:服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种建立在 TCP 协议之上,服务器端的实现比较容易可以发送文本,也可以发送二进制数据没有同源限制,客户端可以与任
2017-11-22 15:32:36
81816
3
原创 你的解耦战术,决定了架构高度!
转自:http://developer.51cto.com/art/201711/557827.htm架构设计中,大家都不喜欢耦合,但有哪些典型的耦合是我们系统架构设计中经常出现的,又该如何优化?这里列举了 6 个点:IP、jar 包、数据库、服务、消息、扩容。这些点,如果设计不慎,都会导致系统出现一些耦合问题,基本都是大家实际遇到的痛点。本文将与大家分享如何用常见
2017-11-22 12:06:07
3742
原创 springBoot(2) 关于SpringBoot的配置文件
1. springBoot自动扫描的配置文件路径1、默认位置: Spring Boot默认的配置文件名称为application.properties,SpringApplication将从以下位置加载application.properties文件,并把它们添加到Spring Environment中:当前目录下的/config子目录,当前目录。一个clas
2017-11-17 17:44:23
764
原创 spring-cloud(3)【Feign】
1. Feign简介2. 整合Feign3. 手动创建feign4. Feign对继承的支持5. Feign对压缩的支持6. Feign的日志7. 使用Feign构建多参数请求
2017-11-16 17:05:09
477
原创 spring-cloud(2)【Ribbon】
1. Ribbon简介2. 整合Ribbon3.自定义Ribbon配置4. 脱离eureka使用Ribbon
2017-11-16 16:59:28
498
原创 spring-cloud(1)【eureka】
1. eureka简述2. 编写eureka server3. 将服务注册到eureka上4. eureka的高可用5. 为eureka添加用户认证
2017-11-16 16:54:56
224
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅